一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

测试程序的生成方法、装置、存储介质以及电子设备与流程

2022-05-26 20:23:29 来源:中国专利 TAG:


1.本发明涉及金融科技领域,尤其涉及系统测试技术领域,具体而言,涉及一种测试程序的生成方法、装置、存储介质以及电子设备。


背景技术:

2.当前b/s架构的系统在功能测试阶段,通常采用以下方式进行测试:一种是人工测试方式,测试人员根据需求描述,手工执行对应业务功能,并通过观察页面输出、检查数据库记录等方式验证功能是否正确;另一种是自动化测试方式,使用ui测试框架编写驱动页面执行的代码,并通过断言等机制验证功能的正确性。
3.上述测试方式至少存在以下缺陷:1)采用人工测试受限于测试人员本身能力,易导致整体项目周期不可控,测试案例无法复用,测试结果存在主观判断因素导致结果不一致;2)对测试人员综合技能要求较高,不仅需要理解业务需求,还需要具备编写使用框架对测试场景进行编程验证的能力,新成员学习成本高;3)测试资产通常为与系统接口、实现高度耦合的测试代码,对不熟悉的测试人员来说,上手难度较高,不利于测试资产的沉淀复用。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供了一种测试程序的生成方法、装置、存储介质以及电子设备,以至少解决现有技术中的系统测试方法存在的测试效率低、测试成本高且操作过程复杂的技术问题。
6.根据本发明实施例的一个方面,提供了一种测试程序的生成方法,包括:获取客户端上传的测试执行动作信息;对上述测试执行动作信息中的自然描述语句进行语言解析,得到字符串集合;对上述字符串集合进行语法解析,得到抽象语法树;遍历上述抽象语法树,并在遍历过程中根据上述抽象语法树的树节点类型分别执行对应的测试动作,得到测试结果;若上述测试结果满足预定测试要求,则根据上述抽象语法树生成目标执行程序。
7.可选的,在获取客户端上传的测试执行动作信息之后,上述方法还包括:检测是否采用自然描述语句描述上述测试执行动作信息中的被描述实体;若检测到未采用上述自然描述语句描述上述被描述实体,则获取上述被描述实体的辅助信息,并在记录上述辅助信息所在位置之后暂时移除上述辅助信息。
8.可选的,上述对上述测试执行动作信息中的自然描述语句进行语言解析,得到字符串集合,包括:采用基于字典的分词器对上述测试执行动作信息中的自然描述语句进行文本分词处理,得到分词结果;根据上述分词结果得到上述字符串集合。
9.可选的,上述采用基于字典的分词器对上述测试执行动作信息中的自然描述语句进行文本分词处理,得到分词结果,包括:采用上述分词器的内置分词词典对自然描述语句进行文本分词处理,得到第一分词结果;采用自定义分词词典对上述第一分词结果进行调
整,得到第二分词结果,其中,上述自定义分词词典用于调整上述第一分词结果,以输出符合语法树构建规则的上述第二分词结果,上述语法树构建规则用于确定如何构建上述抽象语法树。
10.可选的,在上述采用基于字典的分词器对上述测试执行动作信息中的自然描述语句进行文本分词处理,得到分词结果之后,上述方法还包括:检测上述分词结果中是否存在无法进行语法解析的字符串子序列;若存在上述字符串子序列,则对上述字符串子序列中的有效序列进行后续处理,并丢弃上述字符串子序列中的无效序列,以及将上述无效序列对应的辅助信息附加至上述无效序列对应的字符串集合上,其中,上述后续处理包括:合并或者转换处理。
11.可选的,对上述字符串集合进行语法解析,得到抽象语法树,包括:采用语法解析器对上述字符串集合进行语法解析,得到上述抽象语法树。
12.可选的,在遍历过程中根据上述抽象语法树的树节点类型分别执行对应的测试动作,得到测试结果,包括:在遍历过程中读取执行环境上下文信息,其中,上述执行环境上下文信息包括:执行上述测试动作时需要的辅助信息;确定遍历到的上述抽象语法树的树节点类型;根据上述树节点类型分别执行对应的测试动作,得到测试结果,其中,每个上述树节点类型对应一个上述测试动作,其中,上述测试动作包括:鼠标动作、键盘动作、脚本动作、检查动作。
13.可选的,根据上述抽象语法树生成目标执行程序,包括:将上述抽象语法树转换为对应的测试代码,并建立上述自然描述语句与上述测试代码之间的映射关系,得到上述目标执行程序。
14.根据本发明实施例的另一方面,还提供了一种测试程序的生成装置,包括:第一获取单元,用于获取客户端上传的测试执行动作信息;第一解析单元,用于对上述测试执行动作信息中的自然描述语句进行语言解析,得到字符串集合;第二解析单元,用于对上述字符串集合进行语法解析,得到抽象语法树;第二获取单元,用于遍历上述抽象语法树,并在遍历过程中根据上述抽象语法树的树节点类型分别执行对应的测试动作,得到测试结果;生成单元,用于若上述测试结果满足预定测试要求,则根据上述抽象语法树生成目标执行程序。
15.根据本发明实施例的另一方面,还提供了一种非易失性存储介质,上述非易失性存储介质存储有多条指令,上述指令适于由处理器加载并执行任意一项上述的测试程序的生成方法。
16.根据本发明实施例的另一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行任意一项上述的测试程序的生成方法。
17.在本发明实施例中,采用测试程序生成的方式,通过获取客户端上传的测试执行动作信息;对上述测试执行动作信息中的自然描述语句进行语言解析,得到字符串集合;对上述字符串集合进行语法解析,得到抽象语法树;遍历上述抽象语法树,并在遍历过程中根据上述抽象语法树的树节点类型分别执行对应的测试动作,得到测试结果;若上述测试结果满足预定测试要求,则根据上述抽象语法树生成目标执行程序,达到了根据自然描述语句自动生成测试程序的目的,从而实现了提升测试程序生成效率和系统测试效率,简化测
试过程、降低测试成本的技术效果,进而解决了现有技术中的系统测试方法存在的测试效率低、测试成本高且操作过程复杂的技术问题。
附图说明
18.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
19.图1是根据本发明实施例的一种测试程序的生成方法的流程图;
20.图2是根据本发明实施例的一种可选的测试程序的生成方法的流程图;
21.图3是根据本发明实施例的另一种可选的测试程序的生成方法的流程图;
22.图4是根据本发明实施例的另一种可选的测试程序的生成方法的流程图;
23.图5是根据本发明实施例的另一种可选的测试程序的生成方法的流程图
24.图6是根据本发明实施例的另一种可选的测试程序的生成方法的流程图
25.图7是根据本发明实施例的一种测试程序的生成装置的结构示意图;
26.图8是根据本发明实施例的一种用于实施上述测试程序的生成方法的电子设备结构示意图。
具体实施方式
27.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
28.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.首先,为方便理解本发明实施例,下面将对本发明中所涉及的部分术语或名词进行解释说明:
30.token流:在对输入文本进行解析时,根据一定的词法规则,对原始的字符流中一个或连续的多个字符进行组合,产生合并后的字符集合(即字符串),并对字符串增加额外的类别属性,这样的连续字符串集合即为token流。
31.实施例1
32.根据本发明实施例,提供了一种测试程序的生成的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
33.图1是根据本发明实施例的一种测试程序的生成方法的流程图,如图1所示,该方法包括如下步骤:
34.步骤s102,获取客户端上传的测试执行动作信息;
35.步骤s104,对上述测试执行动作信息中的自然描述语句进行语言解析,得到字符串集合;
36.步骤s106,对上述字符串集合进行语法解析,得到抽象语法树;
37.步骤s108,遍历上述抽象语法树,并在遍历过程中根据上述抽象语法树的树节点类型分别执行对应的测试动作,得到测试结果;
38.步骤s110,若上述测试结果满足预定测试要求,则根据上述抽象语法树生成目标执行程序。
39.可选的,上述语言解析可以但不限于为对上述测试执行动作信息中的自然描述语句进行中文分词处理,以及词性标注处理,得到初步解析后的字符串集合,其中,上述字符串集合可以为token流。
40.可选的,采用语法解析器对上述字符串集合(如token流)进行语法解析处理,得到抽象语法树ast,其中,上述语法解析器可以但不限于为ll语法解析器、lr语法解析器以及lalr语法解析器,等等。
41.可选的,上述测试动作可以但不限于为鼠标动作、键盘动作、脚本动作、检查动作,等等。
42.可选的,上述目标执行程序为与上述测试动作对应的执行代码的源码。
43.在本发明实施例中,采用测试程序生成的方式,通过获取客户端上传的测试执行动作信息;对上述测试执行动作信息中的自然描述语句进行语言解析,得到字符串集合;对上述字符串集合进行语法解析,得到抽象语法树;遍历上述抽象语法树,并在遍历过程中根据上述抽象语法树的树节点类型分别执行对应的测试动作,得到测试结果;若上述测试结果满足预定测试要求,则根据上述抽象语法树生成目标执行程序,达到了根据自然描述语句自动生成测试程序的目的,从而实现了提升测试程序生成效率和系统测试效率,简化测试过程、降低测试成本的技术效果,进而解决了现有技术中的系统测试方法存在的测试效率低、测试成本高且操作过程复杂的技术问题。
44.作为一种可选的实施例,图2是根据本发明实施例的一种可选的测试程序的生成方法的流程图,如图2所示,该方法包括如下步骤:
45.步骤s1,用户登录语言解析模块前端页面,在操作界面中输入希望系统执行的测试执行动作信息;
46.步骤s2,语言解析模块接收用户输入的上述测试执行动作信息中的自然描述语句,调用模块内置的自然语言解析子模块,对上述自然描述语句进行中文分词处理以及词性标注处理,得到初步解析后的token流;
47.步骤s3,语言解析模块的token流处理子模块对步骤s3产生的token流进行预处理,形成可被语法解析子模块识别的token流;
48.步骤s4,动作执行模块的语法解析子模块接收token流,使用根据语法文件生成的ll(*)语法解析器将token流解析为抽象语法树ast;
49.步骤s5,ast解释执行子模块对步骤s4产生的抽象语法树ast进行遍历,在遍历树
结构的过程中,根据树节点类型分别执行相应的动作;
50.步骤s6,用户根据执行结果,判断是否达到了预期,若满足要求,则系统根据上述抽象语法树ast及相关信息,生成与步骤s5等价的执行代码的源码(即目标执行程序)并保存;
51.步骤s7,若不满足用户要求,则返回步骤s1重新执行。
52.需要说明的是,本发明实施例通过对输入文本进行分析处理,最终转换成具体的可执行ui测试程序,并在远端客户机上执行,用户可以实时观察程序的执行动作及页面输出结果判定程序是否已达到了语句描述的预期目标;此外,通过使用客户端/服务器架构模式及实时编译运行技术,用户只需了解业务领域知识及基本程序语言概念即可使用自然语言描述测试行为、开展测试案例编写工作,有效降低了功能测试程序的编写难度,缩短了测试阶段的整体周期,且用户编写的测试描述语句天然具有自我描述的能力,缩短了后续测试人员对存量测试资产的熟悉时间。
53.在一种可选的实施例中,在获取客户端上传的测试执行动作信息之后,上述方法还包括:
54.步骤s202,检测是否采用自然描述语句描述上述测试执行动作信息中的被描述实体;
55.步骤s204,若检测到未采用上述自然描述语句描述上述被描述实体,则获取上述被描述实体的辅助信息,并在记录上述辅助信息所在位置之后暂时移除上述辅助信息。
56.需要说明的是,本发明实施例可使用类似自然语言的描述方式来说明测试动作,如以下语句可以描述用户希望执行的行为:“打开http://example.com”;“在文本框里输入abc”;“选择xxx下拉框里的第一项”;“点击查询按钮”,等等
57.可选的,上述辅助信息可以但不限于为外部数据源、被测系统参数信息,等等。
58.仍需要说明的是,对于部分难以直接用自然描述语句清晰描述的实体,则获取被描述实体的辅助信息的说明,如“点击按钮[id=okbtn]”中,[]内的文本即为辅助信息,此文本的作用为在语法树执行阶段便于理解当前节点特性所用,达到记录辅助信息所在位置的目的,并在记录上述辅助信息所在位置之后暂时移除上述辅助信息。
[0059]
在一种可选的实施例中,上述对上述测试执行动作信息中的自然描述语句进行语言解析,得到字符串集合,包括:
[0060]
步骤s302,采用基于字典的分词器对上述测试执行动作信息中的自然描述语句进行文本分词处理,得到分词结果;
[0061]
步骤s304,根据上述分词结果得到上述字符串集合。
[0062]
可选的,上述分词器可以但不限于采用任意一种方法对上述测试执行动作信息中的自然描述语句进行文本分词处理:正向最长匹配、逆向最长匹配以及双向最长匹配。例如,采用双向最长匹配方法对上述测试执行动作信息中的自然描述语句进行文本分词处理。
[0063]
可选的,首先通过上述分词器的内置分词词典对自然描述语句进行文本分词处理,得到第一分词结果,然后再采用自定义分词词典对上述第一分词结果进行调整,得到第二分词结果,基于上述第二粉刺结果得到上述字符串集合(即token流)。
[0064]
在一种可选的实施例中,上述采用基于字典的分词器对上述测试执行动作信息中
的自然描述语句进行文本分词处理,得到分词结果,包括:
[0065]
步骤s402,采用上述分词器的内置分词词典对自然描述语句进行文本分词处理,得到第一分词结果;
[0066]
步骤s404,采用自定义分词词典对上述第一分词结果进行调整,得到第二分词结果,其中,上述自定义分词词典用于调整上述第一分词结果,以输出符合语法树构建规则的上述第二分词结果,上述语法树构建规则用于确定如何构建上述抽象语法树。
[0067]
可选的,首先通过上述分词器的内置分词词典对自然描述语句进行文本分词处理,得到第一分词结果,然后再采用自定义分词词典对上述第一分词结果进行调整,得到第二分词结果,使得输出符合后续语法树构建规则的token切分(即上述第二分词结果),例如,加载以下自定义词典custom_dict.txt:下拉框n200;单选框n200;对于语句:“选中单选框[label=已读]”,分词后的结果(即第二分词结果)为:《选中,v,50》,《单选框,n,200》。
[0068]
在一种可选的实施例中,在上述采用基于字典的分词器对上述测试执行动作信息中的自然描述语句进行文本分词处理,得到分词结果之后,上述方法还包括:
[0069]
步骤s502,检测上述分词结果中是否存在无法进行语法解析的字符串子序列;
[0070]
步骤s504,若存在上述字符串子序列,则对上述字符串子序列中的有效序列进行后续处理,并丢弃上述字符串子序列中的无效序列,以及将上述无效序列对应的辅助信息附加至上述无效序列对应的字符串集合上,其中,上述后续处理包括:合并或者转换处理。
[0071]
需要说明的是,对于分词后的字符串集合(即token流),可能仍存在无法进行语法解析的序列,此时通过检测上述分词结果中是否存在无法进行语法解析的字符串子序列;若存在上述字符串子序列,则对上述字符串子序列中的有效序列进行后续处理,并丢弃上述字符串子序列中的无效序列,以及将上述无效序列对应的辅助信息附加至上述无效序列对应的字符串集合上的方式,将可合并、转换的字符串子序列(即token子序列)进行处理,并丢弃无法解析的字符串子序列,并将已提取的辅助信息附加到与其对应的字符串集合上。
[0072]
作为一种可选的实施例,图3是根据本发明实施例的另一种可选的测试程序的生成方法的流程图,如图3所示,该方法包括:获取用户输入的文本信息,对上述文本信息进行预处理,得到处理后的文本信息;采用分词器的内置分词词典和自定义分词字典对自然描述语句进行文本分词处理,得到分词结果(即分词数据),对上述分词结果依次进行字符串token合并处理、字符串token位置转换处理以及删除无效字符串token后,得到处理后的token流,即为字符串集合。
[0073]
在一种可选的实施例中,对上述字符串集合进行语法解析,得到抽象语法树,包括:
[0074]
步骤s602,采用语法解析器对上述字符串集合进行语法解析,得到上述抽象语法树。
[0075]
可选的,上述语法解析器可以但不限于为ll语法解析器、lr语法解析器以及lalr语法解析器。例如,在接收到token流后,采用ll(*)语法解析器对上述token流进行语法解析处理,得到抽象语法树ast。
[0076]
可选的,采用antlr4解析器生成框架读取基于预先定义的bnf形式的动作语法规则文件生成上述语法解析器的对应代码,可以为上述语法解析器设置以下形式的语法规
则:
[0077][0078]
需要说明的是,由于用户输入内容为自然语言,词法规则可能存在无法覆盖所有词语的情况,因此,本发明实施例扩展了antlr默认的tokenstream类型,可以将语言解析模块产生的任意分词token流映射到antlr词法分析器的token类型上,提高了语言支持的灵活度。
[0079]
作为一种可选的实施例,图4是根据本发明实施例的另一种可选的测试程序的生
成方法的流程图,如图4所示,在遍历过程中根据上述抽象语法树的树节点类型分别执行对应的测试动作,得到测试结果,包括:
[0080]
步骤s702,在遍历过程中读取执行环境上下文信息,其中,上述执行环境上下文信息包括:执行上述测试动作时需要的辅助信息;
[0081]
步骤s704,确定遍历到的上述抽象语法树的树节点类型;
[0082]
步骤s706,根据上述树节点类型分别执行对应的测试动作,得到测试结果,其中,每个上述树节点类型对应一个上述测试动作。
[0083]
可选的,在执行结束上述测试动作之后,更新上述执行环境上下文信息;上述辅助信息可以但不限于为外部数据源、被测系统参数信息,等等;上述测试动作包括:鼠标动作、键盘动作、脚本动作、检查动作。
[0084]
作为一种可选的实施例,图5是根据本发明实施例的另一种可选的测试程序的生成方法的流程图,如图5所示,该方法包括:首先在遍历过程中读取执行环境上下文信息,此类信息通常为执行动作时需要的辅助信息(如外部数据源、被测系统参数信息等);不同类型的抽象语法树ast对应不同的解析器,由入口解析器分派给相应的子解析器对ast解析执行,通过不同的解析器执行不同的测试动作,采用鼠标动作解析器解析得到鼠标动作,采用键盘动作解析器解析得到键盘动作,采用脚本动作解析器解析得到脚本动作,采用检查动作解析器解析得到检查动作,等等;在解析执行过程中,环境上下文可能发生变化,需要在执行结束后更新上下文信息。
[0085]
在一种可选的实施例中,根据上述抽象语法树生成目标执行程序,包括:
[0086]
步骤s802,将上述抽象语法树转换为对应的测试代码,并建立上述自然描述语句与上述测试代码之间的映射关系,得到上述目标执行程序。
[0087]
可选的,如图6所示,若经用户检查上述抽象语法树ast解释执行的结果符合预期,则通过设置代码生成模块结合上述执行环境上下文信息,将上述抽象语法树ast转化为等价的测试代码,并建立上述自然描述语句与执行代码的映射关系。
[0088]
本发明实施例至少具备以下优势:抽象层次高,系统通过约定各执行环节的api、数据格式,建立了从源语句到执行代码端到端的映射关系,可实现系统各环节对用户端的无感升级优化,屏蔽对用户底层测试框架的编码细节,有效避免了因系统升级而可能导致的测试代码失效问题;开发效率高,用户只需提供描述性语句,通过系统提供的实时编译执行能力即可得到结果,与传统的编写-编译-部署-运行模式相比,大大缩短了验证周期;案例具备自描述能力,由自然语言描述的案例可以在不同的测试人员之间快速流转,学习成本低,有效提升了功能测试的效率。
[0089]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0090]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有
技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0091]
实施例3
[0092]
在本实施例中还提供了一种测试程序的生成装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“单元”“装置”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0093]
根据本发明实施例,还提供了一种用于实施上述测试程序的生成方法的装置实施例,图7是根据本发明实施例的一种测试程序的生成装置的结构示意图,如图7所示,上述测试程序的生成装置,包括:第一获取单元40、第一解析单元42、第二解析单元44、第二获取单元46、生成单元48,其中:
[0094]
上述第一获取单元40,用于获取客户端上传的测试执行动作信息;
[0095]
上述第一解析单元42,用于对上述测试执行动作信息中的自然描述语句进行语言解析,得到字符串集合;
[0096]
上述第二解析单元44,用于对上述字符串集合进行语法解析,得到抽象语法树;
[0097]
上述第二获取单元46,用于遍历上述抽象语法树,并在遍历过程中根据上述抽象语法树的树节点类型分别执行对应的测试动作,得到测试结果;
[0098]
上述生成单元48,用于若上述测试结果满足预定测试要求,则根据上述抽象语法树生成目标执行程序。
[0099]
需要说明的是,上述各个单元是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个单元可以位于同一处理器中;或者,上述各个单元以任意组合的方式位于不同的处理器中。
[0100]
此处需要说明的是,上述第一获取单元40、第一解析单元42、第二解析单元44、第二获取单元46、生成单元48对应于实施例1中的步骤s102至步骤s110,上述单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在计算机终端中。
[0101]
需要说明的是,本实施例的可选或优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
[0102]
上述的测试程序的生成装置还可以包括处理器和存储器,上述第一获取单元40、第一解析单元42、第二解析单元44、第二获取单元46、生成单元48等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0103]
处理器中包含内核,由内核去存储器中调取相应的程序单元,上述内核可以设置一个或以上。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
[0104]
根据本技术实施例,还提供了一种非易失性存储介质的实施例。可选的,在本实施例中,上述非易失性存储介质包括存储的程序,其中,在上述程序运行时控制上述非易失性存储介质所在设备执行上述任意一种测试程序的生成方法。
[0105]
可选的,在本实施例中,上述非易失性存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中,上述非易失性存储介质包括存储的程序。
[0106]
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:获取客户端上传的测试执行动作信息;对上述测试执行动作信息中的自然描述语句进行语言解析,得到字符串集合;对上述字符串集合进行语法解析,得到抽象语法树;遍历上述抽象语法树,并在遍历过程中根据上述抽象语法树的树节点类型分别执行对应的测试动作,得到测试结果;若上述测试结果满足预定测试要求,则根据上述抽象语法树生成目标执行程序。
[0107]
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:检测是否采用自然描述语句描述上述测试执行动作信息中的被描述实体;若检测到未采用上述自然描述语句描述上述被描述实体,则获取上述被描述实体的辅助信息,并在记录上述辅助信息所在位置之后暂时移除上述辅助信息。
[0108]
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:采用基于字典的分词器对上述测试执行动作信息中的自然描述语句进行文本分词处理,得到分词结果;根据上述分词结果得到上述字符串集合。
[0109]
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:采用上述分词器的内置分词词典对自然描述语句进行文本分词处理,得到第一分词结果;采用自定义分词词典对上述第一分词结果进行调整,得到第二分词结果,其中,上述自定义分词词典用于调整上述第一分词结果,以输出符合语法树构建规则的上述第二分词结果,上述语法树构建规则用于确定如何构建上述抽象语法树。
[0110]
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:检测上述分词结果中是否存在无法进行语法解析的字符串子序列;若存在上述字符串子序列,则对上述字符串子序列中的有效序列进行后续处理,并丢弃上述字符串子序列中的无效序列,以及将上述无效序列对应的辅助信息附加至上述无效序列对应的字符串集合上,其中,上述后续处理包括:合并或者转换处理。
[0111]
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:采用语法解析器对上述字符串集合进行语法解析,得到上述抽象语法树。
[0112]
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:在遍历过程中读取执行环境上下文信息,其中,上述执行环境上下文信息包括:执行上述测试动作时需要的辅助信息;确定遍历到的上述抽象语法树的树节点类型;根据上述树节点类型分别执行对应的测试动作,得到测试结果,其中,每个上述树节点类型对应一个上述测试动作,其中,上述测试动作包括:鼠标动作、键盘动作、脚本动作、检查动作。
[0113]
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:将上述抽象语法树转换为对应的测试代码,并建立上述自然描述语句与上述测试代码之间的映射关系,得到上述目标执行程序。
[0114]
根据本技术实施例,还提供了一种处理器的实施例。可选的,在本实施例中,上述处理器用于运行程序,其中,上述程序运行时执行上述任意一种测试程序的生成方法。
[0115]
根据本技术实施例,还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有上述任意一种的测试程序的生成方法步骤的程序。
[0116]
可选的,上述计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取客户端上传的测试执行动作信息;对上述测试执行动作信息中的自然描述语句进行语言解析,得到字符串集合;对上述字符串集合进行语法解析,得到抽象语法树;遍历上述抽象语法树,并在遍历过程中根据上述抽象语法树的树节点类型分别执行对应的测试动作,得到测试结果;若上述测试结果满足预定测试要求,则根据上述抽象语法树生成目标执行程序。
[0117]
根据本技术实施例,还提供了一种电子设备的实施例,如图8所示,电子设备10包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取客户端上传的测试执行动作信息;对上述测试执行动作信息中的自然描述语句进行语言解析,得到字符串集合;对上述字符串集合进行语法解析,得到抽象语法树;遍历上述抽象语法树,并在遍历过程中根据上述抽象语法树的树节点类型分别执行对应的测试动作,得到测试结果;若上述测试结果满足预定测试要求,则根据上述抽象语法树生成目标执行程序。
[0118]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0119]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0120]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0121]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0122]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0123]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取非易失性存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个非易失性存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的非易失性存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0124]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献