CN112817864A - 一种测试文件的生成方法、装置、设备及介质 - Google Patents

一种测试文件的生成方法、装置、设备及介质 Download PDF

Info

Publication number
CN112817864A
CN112817864A CN202110204833.XA CN202110204833A CN112817864A CN 112817864 A CN112817864 A CN 112817864A CN 202110204833 A CN202110204833 A CN 202110204833A CN 112817864 A CN112817864 A CN 112817864A
Authority
CN
China
Prior art keywords
test
file
tested
component
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110204833.XA
Other languages
English (en)
Other versions
CN112817864B (zh
Inventor
彭志国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202110204833.XA priority Critical patent/CN112817864B/zh
Publication of CN112817864A publication Critical patent/CN112817864A/zh
Application granted granted Critical
Publication of CN112817864B publication Critical patent/CN112817864B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开实施例涉及一种测试文件的生成方法、装置、设备及介质,其中该方法包括:获取Web页面的测试文件生成命令,其中,Web页面包括至少一个待测组件;响应于测试文件生成命令,获取Web页面的待测源码文件;基于对待测源码文件解析得到的解析结果,确定待测组件的待测数据,其中,解析结果为抽象语法树;基于待测数据和单测模板生成待测组件的测试文件,其中,单测模板为针对组件的测试模板。采用上述技术方案,可以自动生成Web页面的组件维度的测试文件,避免了人工编写生成测试文件,提高了开发效率,降低了测试的开发维护成本,并通过脚手架进行命令执行,提高了便捷性和易用性,测试文件可以全量覆盖,进而提高了测试的覆盖率。

Description

一种测试文件的生成方法、装置、设备及介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种测试文件的生成方法、装置、设备及介质。
背景技术
随着前端技术的普及,针对前端样式的测试技术逐渐成熟,通过测试能有效的提高工程质量,避免线上问题的产生,防止异常事件降低用户满意度。
目前,对Web页面测试可以拆分为对其中的各个组件进行测试,可以按照单测测试库的规范来为每个组件编写测试代码创建测试文件,需要较高的人力成本和学习成本,并且当组件数量较多时,测试的开发维护成本较高。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种测试文件的生成方法、装置、设备及介质。
本公开实施例提供了一种测试文件的生成方法,所述方法包括:
获取Web页面的测试文件生成命令,其中,所述Web页面包括至少一个待测组件;
响应于所述测试文件生成命令,获取所述Web页面的待测源码文件;
基于对所述待测源码文件解析得到的解析结果,确定所述待测组件的待测数据,其中,所述解析结果为抽象语法树;
基于所述待测数据和单测模板生成所述待测组件的测试文件,其中,所述单测模板为针对组件的测试模板。
本公开实施例还提供了一种测试文件的生成装置,所述装置包括:
命令获取模块,用于获取Web页面的测试文件生成命令,其中,所述Web页面包括至少一个待测组件;
源码文件模块,用于响应于所述测试文件生成命令,获取所述Web页面的待测源码文件;
待测数据模块,用于基于对所述待测源码文件解析得到的解析结果,确定所述待测组件的待测数据,其中,所述解析结果为抽象语法树;
测试文件模块,用于基于所述待测数据和单测模板生成所述待测组件的测试文件,其中,所述单测模板为针对组件的测试模板。
本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开实施例提供的测试文件的生成方法。
本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开实施例提供的测试文件的生成方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例提供的测试文件的生成方案,获取Web页面的测试文件生成命令,其中,Web页面包括至少一个待测组件;响应于测试文件生成命令,获取Web页面的待测源码文件;基于对待测源码文件解析得到的解析结果,确定待测组件的待测数据,其中,解析结果为抽象语法树;基于待测数据和单测模板生成待测组件的测试文件,其中,单测模板为针对组件的测试模板。采用上述技术方案,可以自动生成Web页面的组件维度的测试文件,避免了人工编写生成测试文件,提高了开发效率,降低了测试的开发维护成本,并通过脚手架进行命令执行,提高了便捷性和易用性,测试文件可以全量覆盖,避免了人工完成可能会造成的遗漏,进而提高了测试的覆盖率。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例提供的一种测试文件的生成方法的流程示意图;
图2为本公开实施例提供的另一种测试文件的生成方法的流程示意图;
图3为本公开实施例提供的一种测试文件生成的整体业务示意图;
图4为本公开实施例提供的一种测试文件生成的示意图;
图5为本公开实施例提供的一种测试文件的生成装置的结构示意图;
图6为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
目前,对Web页面测试可以拆分为对其中的各个组件进行测试,具体可以按照单测测试库的规范来编写配置文件、为每个组件创建测试文件夹,编写测试代码创建测试文件,过程全人工操作,有繁琐的配置,较高的人力成本以及学习成本,并且如果一个前端项目内Web页面的组件太多的话,需要对每个组件进行测试代码开发及维护,开发维护成本高;人工创建测试文件夹,对照单测测试库的规范编写测试文件,人力成本巨大,容易存在遗漏。为了解决上述问题,本公开实施例提供了一种测试文件的生成方法。
图1为本公开实施例提供的一种测试文件的生成方法的流程示意图,该方法可以由测试文件的生成装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中。如图1所示,该方法包括:
步骤101、获取Web页面的测试文件生成命令,其中,Web页面包括至少一个待测组件。
其中,Web页面(Web page)是指万维网上的一个按照HTML格式组织起来的文件,也即网页,用户可以通过浏览器打开Web页面浏览相关信息。本公开实施例对Web页面的具体类型和数量不作限定,例如Web页面可以为搜索页面、登录页面和购物页面等。测试文件生成命令可以为用于启动生成当前项目中Web页面的测试文件的命令。
一个完整的Web页面可以拆分为一个个的区块,每个区块认为是一个完整的区域组件,需要对各个区域组件进行组件样式测试,防止异常修改。上述区域组件即为待测组件,本公开实施例中,一个Web页面可以包括至少一个待测组件,具体的数量不作限定。
本公开实施例中,可以获取用户发送的对Web页面的测试文件生成命令,以进行后续测试文件的生成。
步骤102、响应于测试文件生成命令,获取Web页面的待测源码文件。
待测源码文件可以理解为待测组件对应的采用编程语言编写的程序代码文件,例如采用vue或react编程语言编写的程序代码文件。
具体的,当获取到测试文件生成命令之后,响应于该测试文件生成命令,可以获取当前项目中所有Web页面中包括的待测组件的待测源码文件,待测源码文件的数量可以为多个。
步骤103、基于对待测源码文件解析得到的解析结果,确定待测组件的待测数据,其中,解析结果为抽象语法树。
本公开实施例中,基于对待测源码文件解析得到的解析结果,确定待测组件的待测数据,包括:采用待测源码文件的文件类型对应的解析器,对待测源码文件进行解析,得到解析结果;基于解析结果确定待测组件的待测数据。其中,文件类型包括JS文件类型和TS文件类型,解析结果为抽象语法树。JS文件是一种脚本,可以控制页面达到一些动态效果,TS文件是一种媒体文件的扩展名。可以理解的是上述JS文件类型和TS文件类型仅为示例,还可以包括其他文件类型。抽象语法树(Abstract Syntax Tree,AST)是源代码语法结构的一种抽象表示,它可以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。
如果待测源码文件的文件类型为JS文件类型,则可以采用JS解析器进行解析,得到抽象语法树;如果待测源码文件的文件类型为TS文件类型,则可以采用TS解析器进行解析,得到抽象语法树。
可选的,基于解析结果确定待测组件的待测数据,可以包括:基于解析结果确定待测组件对应的入口参数;基于入口参数生成待测数据。其中,入口参数可以包括对象、字符串和数字中的至少一个。入口参数可以理解为待测组件中需要进行测试的具体数据,入口参数的数量可以为一个或多个。针对JS文件类型的待测源码文件,可以从抽象语法树中直接查找得到入口参数;针对TS文件类型的待测源码文件,深度遍历出所有的TS对象以得到TS参数集合,从抽象语法树中可以得到依赖参数,对依赖参数和TS参数集合进行进一步解析可以得到入口参数。之后根据得到的入口参数通过拼接,可以生成待测数据,其中待测数据中可以理解为待测组件的样式或功能等需要测试的所有的具体数据值,不同待测组件的待测数据不同。
示例性的,入口参数可以“pageName”,入口参数的数据类型为字符串(string),待测数据可以为“const props={pageName:‘默认字符串’}中括号框起来的数据。又如,入口参数包括“A”和“B”,数据类型为数字,待测数据可以为“A”和“B”的具体的值。
步骤104、基于待测数据和单测模板生成待测组件的测试文件,其中,单测模板为针对组件的测试模板。
其中,单测模板是指用于对Web页面中的组件进行测试的测试模板,不同编程语言的单测模板可以不同,例如待测源码文件的编程语音为vue或者react时,单测模板可以包括vue单测模板和react单测模板。
本公开实施例中,基于待测数据和单测模板生成待测组件的测试文件,包括:将单测模板的测试语句中的变量替换为待测数据,生成待测组件的测试文件。确定待测数据之后,根据待测源码文件的编程语言可以确定对应的单测模板,并将单测模板中的测试语句中的变量替换为待测数据,即可生成对应的测试文件。
本公开实施例中,可以将测试文件生成过程中的人为操作均通过工具自动完成,提高开发效率,进而提高组件覆盖面及覆盖度。
本公开实施例提供的测试文件的生成方案,获取Web页面的测试文件生成命令,其中,Web页面包括至少一个待测组件;响应于测试文件生成命令,获取Web页面的待测源码文件;基于对待测源码文件解析得到的解析结果,确定待测组件的待测数据,其中,解析结果为抽象语法树;基于待测数据和单测模板生成待测组件的测试文件,其中,单测模板为针对组件的测试模板。采用上述技术方案,可以自动生成Web页面的组件维度的测试文件,避免了人工编写生成测试文件,提高了开发效率,降低了测试的开发维护成本,并通过脚手架进行命令执行,提高了便捷性和易用性,测试文件可以全量覆盖,避免了人工完成可能会造成的遗漏,进而提高了测试的覆盖率。
在一些实施例中,获取Web页面的测试文件生成命令之后,还可以包括:判断是否存在单测配置文件,若是,则对已有的单测配置文件进行检测和修正;若否,则生成单测配置文件。
其中,单测配置文件可以为包括单测测试库的规范以及单测测试文件存放位置、格式等信息的配置文件,可以表征支持单测执行。如果需要生成组件的测试文件,需要具备该单测配置文件。本公开实施例中对采用的具体单测测试库不作限定,例如可以为Jest。
具体的,在获取测试文件生成命令之后,可以先判断当前项目中是否已经具有单测配置文件,若是,则基于单测测试库的规范检测已有的单测配置文件是否正确,对不正确的单测配置文件进行修正;若否,则基于单测测试库的规范生成单测配置文件。
在一些实施例中,本公开实施例中的测试文件的生成方法还可以包括:判断是否存在测试文件,若是,则对已有的测试文件进行检测和修正;若否,则生成测试文件。
具体的,在对已有的单测配置文件进行检测和修改之后,和/或,生成单测配置文件之后,可以判断当前项目中是否已经存在单测文件,如果已经存在测试文件,则对测试文件的内容进行检测,如果测试文件的内容不正确或不完整则进行修正;如果不存在测试文件,则生成测试文件,测试文件的具体生成过程参见上述步骤。可选的,在判断是否存在单侧文件时,可以先判断是否存在单测目录,再根据该单测目录判断是否存在单测文件,如果不存在单测目录和测试文件,则创建单测目录,并生成测试文件。其中,单测目录是指存储有测试文件相关信息的目录。
上述通过对单测配置文件、单测目录和测试文件的判断,使得在自动生成Web页面的测试文件之前,可以对本地先进行检测,如果本地已经存在测试文件,则后续可以不用生成测试文件,避免了全量化的直接生成测试文件,进一步提高了开发效率,适用性更强。
在一些实施例中,基于待测数据和单测模板生成待测组件的测试文件之后,还可以包括:基于测试文件对Web页面中的待测组件进行测试,得到测试结果。具体的,生成Web页面的测试文件之后,可以基于该测试文件对待测组件执行测试命令进行测试,对Web页面中的样式和功能等需要测试的内容进行逐一测试,得到具体的测试结果。Web页面自动化生成测试文件之后,即可快捷地执行测试,得到测试结果,提高了测试效果。
图2为本公开实施例提供的另一种测试文件的生成方法的流程示意图,本实施例在上述实施例的基础上,进一步对上述测试文件的生成方法进行具体说明。如图2所示,该方法包括:
步骤201、获取Web页面的测试文件生成命令。
其中,Web页面包括至少一个待测组件。
步骤202、判断是否存在单测配置文件,若是,则执行步骤204;否则,执行步骤203。
步骤203、生成单测配置文件。
步骤203之后,可以执行步骤205。
步骤204、对已有的单测配置文件进行检测和修正。
步骤204之后,可以执行步骤205。
步骤205、判断是否存在测试文件,若是,则执行步骤206;否则,执行步骤207。
如果不存在测试文件,则可以生成测试文件。测试文件的生成过程具体可以包括步骤207-步骤209。
步骤206、对已有的测试文件进行检测和修正。
步骤206之后,可以执行步骤210。
步骤207、响应于测试文件生成命令,获取Web页面的待测源码文件。
步骤208、基于对待测源码文件解析得到的解析结果,确定待测组件的待测数据。
其中,解析结果为抽象语法树。
具体的,基于对待测源码文件解析得到的解析结果,确定待测组件的待测数据,包括:采用待测源码文件的文件类型对应的解析器,对待测源码文件进行解析,得到解析结果;基于解析结果确定待测组件的待测数据。其中,文件类型包括JS文件类型和TS文件类型。
可选的,基于解析结果确定待测组件的待测数据,可以包括:基于解析结果确定待测组件对应的入口参数;基于入口参数生成待测数据。其中,入口参数包括对象、字符串和数字中的至少一个。
步骤209、基于待测数据和单测模板生成待测组件的测试文件。
其中,单测模板为针对组件的测试模板。具体的,基于待测数据和单测模板生成待测组件的测试文件,可以包括:将单测模板的测试语句中的变量替换为待测数据,生成待测组件的测试文件。其中,单测模板包括vue单测模板和react单测模板。
步骤210、基于测试文件对Web页面中的待测组件进行测试,得到测试结果。
本公开实施例可以降低学习成本,将测试文件的生成过程中的人工操作均通过工具自动完成,提高开发效果,进而提高了测试的覆盖面及覆盖度;并且可以自动生成复杂场景下的所有配置文件,只需要执行一个命令,一键生成所有需要的测试文件。
接下来通过一个具体的示例对本公开实施例中的测试文件的生成方法进行进一步说明。图3为本公开实施例提供的一种测试文件生成的整体业务示意图,具体过程可以包括:步骤301、执行命令。该命令即为上述的测试文件生成命令。步骤302、是否有单测配置,若是,则执行步骤303;否则,执行步骤309。根据单测测试库的规范判断是否具有单测配置文件。步骤303、单测配置是否正确,若是,则执行步骤304;否则,执行步骤310。根据单测测试库的规范判断已有的单测配置文件是否正确。步骤304、遍历文件。步骤305、是否有单测目录,若是,则执行步骤306;否则,执行步骤311。步骤306、是否有单测文件,若是,则执行步骤307;执行步骤312。步骤307、单测文件是否正确且无遗漏,若是,则执行步骤308;否则,执行步骤313。步骤308、结束。步骤309、生成单测配置。根据单测测试库的规范生成单测配置文件。步骤310、修正单测配置。步骤311、生成单测目录。步骤312、生成单测文件。单测文件即为Web页面中待测组件的测试文件。步骤313、修正单测文件。可以理解的是,图3所述的流程图为测试文件生成的完整流程图,需要判断本地是否已经具有测试文件,当没有时才进行测试文件的生成。本方法只需要执行一个命令即可做到自动生成所有配置文件和测试文件。
步骤312中,单测文件的生成过程,也即测试文件的生成过程可以参见图4。图4为本公开实施例提供的一种测试文件生成的示意图,图4中完整过程是基于当前文件转换成AST树,通过解析AST进行一系列判断,最终生成需要的测试文件,整体步骤如下:1、读取文件内容。读取当前项目中所有Web页面中包括的全部待测组件的待测源码文件。2、判断文件类型,如果是JS文件,则使用JS解析器转成JS-AST树,如果是TS文件则使用TS解析器转成TS-AST树。3、解析AST树,找到具体的待测组件,待测组件的数量可以为多个。4、针对JS文件,解析出待测组件需要的参数,例如图中的对象、数字和字符串等。5、针对TS文件,深度遍历得到所有TS对象以得到TS参数集合,从抽象语法树中可以得到依赖参数,对依赖参数和TS参数集合进行进一步解析,可以解析出待测组件需要的参数,例如图中的对象、数字、字符串和部分TS对象等。6、根据解析出的待测组件需要的参数生成对应的待测数据。7、解析文件语法为vue或者react,根据对应的vue单测模板或react单测模板进行数据替换,生成对应的vue测试文件或react测试文件。8、执行测试命令并得到测试结果。
本公开实施例中,通过脚手架进行命令执行,更加方便易用;将现有的一系列人为的操作和判断均变为由工具实现,极大的提高开发效率,无接入学习成本,一键生成及维护,提高单测代码的可用性;并且通过工具进行全量覆盖,避免了人为遗漏,提高了测试覆盖率。
本公开实施例提供的测试文件的生成方案,获取Web页面的测试文件生成命令,其中,Web页面包括至少一个待测组件;响应于测试文件生成命令,获取Web页面的待测源码文件;基于对待测源码文件解析得到的解析结果,确定待测组件的待测数据,其中,解析结果为抽象语法树;基于待测数据和单测模板生成待测组件的测试文件,其中,单测模板为针对组件的测试模板。采用上述技术方案,可以自动生成Web页面的组件维度的测试文件,避免了人工编写生成测试文件,提高了开发效率,降低了测试的开发维护成本,并通过脚手架进行命令执行,提高了便捷性和易用性,测试文件可以全量覆盖,避免了人工完成可能会造成的遗漏,进而提高了测试的覆盖率。
图5为本公开实施例提供的一种测试文件的生成装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中。如图5所示,该装置包括:
命令获取模块501,用于获取Web页面的测试文件生成命令,其中,所述Web页面包括至少一个待测组件;
源码文件模块502,用于响应于所述测试文件生成命令,获取所述Web页面的待测源码文件;
待测数据模块503,用于基于对所述待测源码文件解析得到的解析结果,确定所述待测组件的待测数据,其中,所述解析结果为抽象语法树;
测试文件模块504,用于基于所述待测数据和单测模板生成所述待测组件的测试文件,其中,所述单测模板为针对组件的测试模板。
可选的,所述待测数据模块503包括:
解析单元,用于采用所述待测源码文件的文件类型对应的解析器,对所述待测源码文件进行解析,得到解析结果;
数据单元,用于基于所述解析结果确定所述待测组件的待测数据。
可选的,所述数据单元具体用于:
基于所述解析结果确定所述待测组件对应的入口参数;
基于所述入口参数生成所述待测数据。
可选的,所述入口参数包括对象、字符串和数字中的至少一个。
可选的,所述测试文件模块504具体用于:
将所述单测模板的测试语句中的变量替换为所述待测数据,生成所述待测组件的测试文件。
可选的,所述单测模板包括vue单测模板和react单测模板。
可选的,所述装置还包括单测配置文件模块,具体用于:所述获取Web页面的测试文件生成命令之后,
判断是否存在单测配置文件,若是,则对已有的单测配置文件进行检测和修正;若否,则生成单测配置文件。
可选的,所述装置还包括单测判断模块,具体用于:
判断是否存在测试文件,若是,则对已有的测试文件进行检测和修正;若否,则生成测试文件。
可选的,所述装置还包括测试模块,具体用于:所述基于所述待测数据和单测模板生成所述待测组件的测试文件之后,
基于所述测试文件对所述Web页面中的所述待测组件进行测试,得到测试结果。
可选的,所述文件类型包括JS文件类型和TS文件类型。
本公开实施例所提供的测试文件的生成装置可执行本公开任意实施例所提供的测试文件的生成方法,具备执行方法相应的功能模块和有益效果。
图6为本公开实施例提供的一种电子设备的结构示意图。下面具体参考图6,其示出了适于用来实现本公开实施例中的电子设备600的结构示意图。本公开实施例中的电子设备600可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的测试文件的生成方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取Web页面的测试文件生成命令,其中,所述Web页面包括至少一个待测组件;响应于所述测试文件生成命令,获取所述Web页面的待测源码文件;基于对所述待测源码文件解析得到的解析结果,确定所述待测组件的待测数据,其中,所述解析结果为抽象语法树;基于所述待测数据和单测模板生成所述待测组件的测试文件,其中,所述单测模板为针对组件的测试模板。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,本公开提供了一种测试文件的生成方法,包括:
获取Web页面的测试文件生成命令,其中,所述Web页面包括至少一个待测组件;
响应于所述测试文件生成命令,获取所述Web页面的待测源码文件;
基于对所述待测源码文件解析得到的解析结果,确定所述待测组件的待测数据,其中,所述解析结果为抽象语法树;
基于所述待测数据和单测模板生成所述待测组件的测试文件,其中,所述单测模板为针对组件的测试模板。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成方法中,基于对所述待测源码文件解析得到的解析结果,确定所述待测组件的待测数据,包括:
采用所述待测源码文件的文件类型对应的解析器,对所述待测源码文件进行解析,得到解析结果;
基于所述解析结果确定所述待测组件的待测数据。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成方法中,基于所述解析结果确定所述待测组件的待测数据,包括:
基于所述解析结果确定所述待测组件对应的入口参数;
基于所述入口参数生成所述待测数据。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成方法中,所述入口参数包括对象、字符串和数字中的至少一个。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成方法中,所述基于所述待测数据和单测模板生成所述待测组件的测试文件,包括:
将所述单测模板的测试语句中的变量替换为所述待测数据,生成所述待测组件的测试文件。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成方法中,所述单测模板包括vue单测模板和react单测模板。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成方法中,所述获取Web页面的测试文件生成命令之后,还包括:
判断是否存在单测配置文件,若是,则对已有的单测配置文件进行检测和修正;若否,则生成单测配置文件。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成方法中,还包括:
判断是否存在测试文件,若是,则对已有的测试文件进行检测和修正;若否,则生成测试文件。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成方法中,所述基于所述待测数据和单测模板生成所述待测组件的测试文件之后,还包括:
基于所述测试文件对所述Web页面中的所述待测组件进行测试,得到测试结果。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成方法中,所述文件类型包括JS文件类型和TS文件类型。
根据本公开的一个或多个实施例,本公开提供了一种测试文件的生成装置,包括:
命令获取模块,用于获取Web页面的测试文件生成命令,其中,所述Web页面包括至少一个待测组件;
源码文件模块,用于响应于所述测试文件生成命令,获取所述Web页面的待测源码文件;
待测数据模块,用于基于对所述待测源码文件解析得到的解析结果,确定所述待测组件的待测数据,其中,所述解析结果为抽象语法树;
测试文件模块,用于基于所述待测数据和单测模板生成所述待测组件的测试文件,其中,所述单测模板为针对组件的测试模板。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成装置中,所述待测数据模块包括:
解析单元,用于采用所述待测源码文件的文件类型对应的解析器,对所述待测源码文件进行解析,得到解析结果;
数据单元,用于基于所述解析结果确定所述待测组件的待测数据。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成装置中,所述数据单元具体用于:
基于所述解析结果确定所述待测组件对应的入口参数;
基于所述入口参数生成所述待测数据。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成装置中,所述入口参数包括对象、字符串和数字中的至少一个。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成装置中,所述测试文件模块具体用于:
将所述单测模板的测试语句中的变量替换为所述待测数据,生成所述待测组件的测试文件。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成装置中,所述单测模板包括vue单测模板和react单测模板。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成装置中,所述装置还包括单测配置文件模块,具体用于:所述获取Web页面的测试文件生成命令之后,
判断是否存在单测配置文件,若是,则对已有的单测配置文件进行检测和修正;若否,则生成单测配置文件。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成装置中,所述装置还包括单测判断模块,具体用于:
判断是否存在测试文件,若是,则对已有的测试文件进行检测和修正;若否,则生成测试文件。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成装置中,所述装置还包括测试模块,具体用于:所述基于所述待测数据和单测模板生成所述待测组件的测试文件之后,
基于所述测试文件对所述Web页面中的所述待测组件进行测试,得到测试结果。
根据本公开的一个或多个实施例,本公开提供的测试文件的生成装置中,所述文件类型包括JS文件类型和TS文件类型。
根据本公开的一个或多个实施例,本公开提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开提供的任一所述的测试文件的生成方法。
根据本公开的一个或多个实施例,本公开提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开提供的任一所述的测试文件的生成方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (13)

1.一种测试文件的生成方法,其特征在于,包括:
获取Web页面的测试文件生成命令,其中,所述Web页面包括至少一个待测组件;
响应于所述测试文件生成命令,获取所述Web页面的待测源码文件;
基于对所述待测源码文件解析得到的解析结果,确定所述待测组件的待测数据,其中,所述解析结果为抽象语法树;
基于所述待测数据和单测模板生成所述待测组件的测试文件,其中,所述单测模板为针对组件的测试模板。
2.根据权利要求1所述的方法,其特征在于,基于对所述待测源码文件解析得到的解析结果,确定所述待测组件的待测数据,包括:
采用所述待测源码文件的文件类型对应的解析器,对所述待测源码文件进行解析,得到解析结果;
基于所述解析结果确定所述待测组件的待测数据。
3.根据权利要求2所述的方法,其特征在于,基于所述解析结果确定所述待测组件的待测数据,包括:
基于所述解析结果确定所述待测组件对应的入口参数;
基于所述入口参数生成所述待测数据。
4.根据权利要求3所述的方法,其特征在于,所述入口参数包括对象、字符串和数字中的至少一个。
5.根据权利要求1所述的方法,其特征在于,所述基于所述待测数据和单测模板生成所述待测组件的测试文件,包括:
将所述单测模板的测试语句中的变量替换为所述待测数据,生成所述待测组件的测试文件。
6.根据权利要求1所述的方法,其特征在于,所述单测模板包括vue单测模板和react单测模板。
7.根据权利要求1所述的方法,其特征在于,所述获取Web页面的测试文件生成命令之后,还包括:
判断是否存在单测配置文件,若是,则对已有的单测配置文件进行检测和修正;若否,则生成单测配置文件。
8.根据权利要求7所述的方法,其特征在于,还包括:
判断是否存在测试文件,若是,则对已有的测试文件进行检测和修正;若否,则生成测试文件。
9.根据权利要求1所述的方法,其特征在于,所述基于所述待测数据和单测模板生成所述待测组件的测试文件之后,还包括:
基于所述测试文件对所述Web页面中的所述待测组件进行测试,得到测试结果。
10.根据权利要求2所述的方法,其特征在于,所述文件类型包括JS文件类型和TS文件类型。
11.一种测试文件的生成装置,其特征在于,包括:
命令获取模块,用于获取Web页面的测试文件生成命令,其中,所述Web页面包括至少一个待测组件;
源码文件模块,用于响应于所述测试文件生成命令,获取所述Web页面的待测源码文件;
待测数据模块,用于基于对所述待测源码文件解析得到的解析结果,确定所述待测组件的待测数据,其中,所述解析结果为抽象语法树;
测试文件模块,用于基于所述待测数据和单测模板生成所述待测组件的测试文件,其中,所述单测模板为针对组件的测试模板。
12.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-10中任一所述的测试文件的生成方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-10中任一所述的测试文件的生成方法。
CN202110204833.XA 2021-02-23 2021-02-23 一种测试文件的生成方法、装置、设备及介质 Active CN112817864B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110204833.XA CN112817864B (zh) 2021-02-23 2021-02-23 一种测试文件的生成方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110204833.XA CN112817864B (zh) 2021-02-23 2021-02-23 一种测试文件的生成方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN112817864A true CN112817864A (zh) 2021-05-18
CN112817864B CN112817864B (zh) 2024-04-16

Family

ID=75865265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110204833.XA Active CN112817864B (zh) 2021-02-23 2021-02-23 一种测试文件的生成方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN112817864B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201236A (zh) * 2021-12-14 2022-03-18 平安壹钱包电子商务有限公司 基于ast的组件配置的方法、装置、设备及介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133772A (zh) * 2014-08-13 2014-11-05 广东电网公司信息中心 一种自动生成测试数据的方法
CN107506300A (zh) * 2017-08-09 2017-12-22 百度在线网络技术(北京)有限公司 一种用户界面测试方法、装置、服务器和存储介质
CN108595341A (zh) * 2018-05-11 2018-09-28 清华大学 测试用例自动生成方法及系统
CN109117131A (zh) * 2018-08-16 2019-01-01 杭州云纪网络科技有限公司 代码生成方法及装置、存储介质及电子终端
CN109117372A (zh) * 2018-08-14 2019-01-01 平安壹钱包电子商务有限公司 测试代码生成方法、装置、计算机设备和存储介质
CN109614324A (zh) * 2018-12-03 2019-04-12 北京云测网络科技有限公司 一种测试用例生成方法和装置
CN110309071A (zh) * 2019-06-27 2019-10-08 杭州数梦工场科技有限公司 测试代码的生成方法及模块、测试方法及系统
CN110825622A (zh) * 2019-10-16 2020-02-21 中国建设银行股份有限公司 软件测试方法、装置、设备和计算机可读介质
CN110851370A (zh) * 2019-11-20 2020-02-28 北京小米移动软件有限公司 程序测试方法及装置、存储介质
CN111625459A (zh) * 2020-05-27 2020-09-04 平安普惠企业管理有限公司 应用程序测试方法、装置、计算机设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133772A (zh) * 2014-08-13 2014-11-05 广东电网公司信息中心 一种自动生成测试数据的方法
CN107506300A (zh) * 2017-08-09 2017-12-22 百度在线网络技术(北京)有限公司 一种用户界面测试方法、装置、服务器和存储介质
CN108595341A (zh) * 2018-05-11 2018-09-28 清华大学 测试用例自动生成方法及系统
CN109117372A (zh) * 2018-08-14 2019-01-01 平安壹钱包电子商务有限公司 测试代码生成方法、装置、计算机设备和存储介质
CN109117131A (zh) * 2018-08-16 2019-01-01 杭州云纪网络科技有限公司 代码生成方法及装置、存储介质及电子终端
CN109614324A (zh) * 2018-12-03 2019-04-12 北京云测网络科技有限公司 一种测试用例生成方法和装置
CN110309071A (zh) * 2019-06-27 2019-10-08 杭州数梦工场科技有限公司 测试代码的生成方法及模块、测试方法及系统
CN110825622A (zh) * 2019-10-16 2020-02-21 中国建设银行股份有限公司 软件测试方法、装置、设备和计算机可读介质
CN110851370A (zh) * 2019-11-20 2020-02-28 北京小米移动软件有限公司 程序测试方法及装置、存储介质
CN111625459A (zh) * 2020-05-27 2020-09-04 平安普惠企业管理有限公司 应用程序测试方法、装置、计算机设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201236A (zh) * 2021-12-14 2022-03-18 平安壹钱包电子商务有限公司 基于ast的组件配置的方法、装置、设备及介质

Also Published As

Publication number Publication date
CN112817864B (zh) 2024-04-16

Similar Documents

Publication Publication Date Title
CN111274760B (zh) 富文本数据处理方法、装置、电子设备及计算机存储介质
CN111625473B (zh) 接口测试用例生成方法、装置、存储介质和电子设备
CN111209202A (zh) 终端应用测试方法和装置
CN110780874B (zh) 用于生成信息的方法和装置
CN110781437A (zh) 网页图像加载时长的获取方法、装置及电子设备
CN115203004A (zh) 代码覆盖率测试方法、装置、存储介质及电子设备
CN111309304B (zh) 一种生成idl文件的方法、装置、介质和电子设备
CN112257478A (zh) 扫码方法、装置、终端和存储介质
CN114721656A (zh) 界面结构提取方法、装置、介质及电子设备
CN112817864B (zh) 一种测试文件的生成方法、装置、设备及介质
CN112596738B (zh) 待测试前端页面的确定方法、装置、存储介质及电子设备
CN113050942A (zh) 页面生成方法、装置、可读介质及电子设备
CN111708680A (zh) 报错信息解析方法、装置、电子设备及存储介质
CN111124541A (zh) 一种配置文件的生成方法、装置、设备及介质
CN111338928A (zh) 基于chrome浏览器测试的方法及装置
CN115578082A (zh) 自动化机器人流程生成方法、装置、电子设备及存储介质
CN111221424B (zh) 用于生成信息的方法、装置、电子设备和计算机可读介质
CN111367791A (zh) 一种生成测试用例的方法、装置、介质和电子设备
CN114416597A (zh) 测试用例记录的生成方法和装置
CN113849416A (zh) 测试方法、装置、存储介质及电子设备
CN115543263A (zh) 脚本生成方法、装置、设备及介质
CN113761588A (zh) 一种数据校验方法、装置、终端设备及存储介质
CN112487416A (zh) 业务流程的校验方法、装置和电子设备
CN116561015B (zh) 地图应用测试方法、电子设备与计算机可读介质
CN117690063B (zh) 电缆线路检测方法、装置、电子设备与计算机可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant