CN112241360B - 一种测试用例生成方法、装置、设备及存储介质 - Google Patents
一种测试用例生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112241360B CN112241360B CN201910653843.4A CN201910653843A CN112241360B CN 112241360 B CN112241360 B CN 112241360B CN 201910653843 A CN201910653843 A CN 201910653843A CN 112241360 B CN112241360 B CN 112241360B
- Authority
- CN
- China
- Prior art keywords
- test case
- parameters
- operation object
- target
- target operation
- 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.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 282
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000012545 processing Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 16
- 238000011161 development Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000006399 behavior Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000013522 software testing Methods 0.000 description 3
- 238000010998 test method Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011990 functional testing Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种测试用例生成方法、装置、设备及存储介质,所述方法包括:确定目标操作对象;获取配置参数集合,其中所述配置参数集合中包括至少一组配置参数,每组配置参数均包括与所述目标操作对象相关的输入参数,以及触发所述目标操作对象后的预期输出参数;生成与各组配置参数对应的目标测试用例,根据各组配置参数对应的目标测试用例构建测试用例集合;其中,所述目标测试用例是通过将各组配置参数中的所述输入参数和所述预期输出参数输入测试用例模型生成的。本申请能够根据后台输入的配置参数,通过测试用例模型自动生成与配置参数对应的测试用例,减少了测试和开发的工作量。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种测试用例生成方法、装置、设备及存储介质。
背景技术
测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。测试用例是将软件测试的行为活动做一个科学化的组织归纳,目的是能够将软件测试的行为转化成可管理的模式;同时测试用例也是将测试具体量化的方法之一,不同类别的软件,测试用例是不同的。
现有的软件测试需要人工编写测试用例代码,要求测试人员具备一定的开发能力,新人上手慢;随着软件版本的迭代测试用例也需要进行迭代开发,增加了测试用例开发的工作量,占用了开发成本。
发明内容
本申请所要解决的技术问题在于,提供一种测试用例生成方法、装置、设备及存储介质,能够根据后台输入的配置参数,通过测试用例模型生成与配置参数对应的测试用例。
为了解决上述技术问题,一方面,本申请提供了一种测试用例生成方法,所述方法包括:
确定目标操作对象;
获取配置参数集合,其中所述配置参数集合中包括至少一组配置参数,每组配置参数均包括与所述目标操作对象相关的输入参数,以及触发所述目标操作对象后的预期输出参数;
生成与各组配置参数对应的目标测试用例,根据各组配置参数对应的目标测试用例构建测试用例集合;其中,所述目标测试用例是通过将各组配置参数中的所述输入参数和所述预期输出参数输入测试用例模型生成的。
另一方面,本申请提供了一种测试用例生成装置,所述装置包括:
操作对象确定模块,用于确定目标操作对象;
配置参数获取模块,用于获取配置参数集合,其中所述配置参数集合中包括至少一组配置参数,每组配置参数均包括与所述目标操作对象相关的输入参数,以及触发所述目标操作对象后的预期输出参数;
测试用例生成模块,用于生成与各组配置参数对应的目标测试用例,根据各组配置参数对应的目标测试用例构建测试用例集合;其中,所述目标测试用例是通过将各组配置参数中的所述输入参数和所述预期输出参数输入测试用例模型生成的。
另一方面,本申请提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述的测试用例生成方法。
另一方面,本申请还提供了一种计算机存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如上述的测试用例生成方法。
本申请通过确定目标操作对象,获取与所述目标操作对象对应的配置参数集合,其中所述配置参数集合中包括至少一组配置参数,每组配置参数均包括与所述目标操作对象相关的输入参数,以及触发所述目标操作对象后的预期输出参数;将各组配置参数中的所述输入参数和所述预期输出参数输入测试用例模型,生成与各组配置参数对应的目标测试用例,根据各组配置参数对应的目标测试用例构建测试用例集合。采用本申请的技术方案生成测试用例,只需要在后台输入与测试对象相关的输入参数,以及触发所述目标对象后的预期输出参数,便可生成与配置参数对应的测试用例,不需要人工进行测试用例的编写开发,也不需要测试人员具备开发能力,减少了测试和开发的工作量。
附图说明
图1是本申请实施例提供的实施环境示意图;
图2是本申请实施例提供的一种测试用例生成方法流程图;
图3是本申请实施例提供的一种配置参数获取方法流程图;
图4是本申请实施例提供的一种测试用例模型的生成方法流程图;
图5是本申请实施例提供的一种测试用例确定方法流程图;
图6是本申请实施例提供的一种配置参数处理方法流程图;
图7是本申请实施例提供的后台参数配置界面示意图;
图8是本申请实施例提供的自动化测试原理图示意图;
图9是本申请实施例提供的自动化测试方法的流程图;
图10是本申请实施例提供的一种测试用例执行结果示意图;
图11是本申请实施例提供的一种测试用例生成装置示意图;
图12是本申请实施例提供的配置参数获取模块示意图;
图13是本申请实施例提供的测试用例模型生成模块示意图;
图14是本申请实施例提供的测试用例生成模块示意图;
图15是本申请实施例提供的配置参数处理模块示意图;
图16是本申请实施例提供的一种设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。而且,术语“第一”、“第二”等适用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
首先对本申请实施例中涉及的相关术语作以下说明:
UI自动化测试:是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
Xpath:全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言。XPath最初设计是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索。
测试套件:对一个功能的验证往往是需要很多测试用例,可以把测试用例集合在一起执行,这就产生了测试套件TestSuite的概念,它是用来组装单个测试用例,规定用例的执行的顺序,而且TestSuite也可以嵌套TestSuite。
功能测试:也称为行为测试,其根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为是否满足当初设计的需求。功能测试主要是通过黑盒模式进行,用以发现代码集成后可能存在的功能问题。功能测试中,测试用例的设计非常重要,好的测试用例可以将用户可能遇到的问题提前发现并及时解决。
回归测试:回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大比重的工作量,软件开发的各个阶段都会进行多次回归测试。
现有技术中,对于不同的测试框架,测试开发人员均需要进行测试用例的编写开发,将测试行为转化为计算机语言,通过断言判断测试结果是否和预期一致,其中编写测试用例既占用测试时间,又占用开发成本;并且测试用例与业务强相关,在软件版本迭代时,测试用例也需要迭代开发,维护成本较高;另外测试用例开发需要具备一定的编码能力,新人上手慢。为了解决上述问题,本申请实施例提供了一种自动生成测试用例的技术方案,能够通过后台输入的配置参数,通过测试用例模型自动生成与配置参数对应的测试用例,不需要人工进行测试用例的编写开发,也不需要测试人员具备开发能力,减少了测试和开发的工作量。
为了达到上述技术效果,本申请实施例提供了一种测试用例生成方法,首先本申请实施例给出了其实施环境。
请参见图1,其示出了本申请实施例提供的实施环境示意图,该实施环境包括:测试终端110和执行终端120,所述测试终端110和所述执行终端120通信连接。
所述执行终端120可接收所述测试终端110发布的测试指令,根据测试指令执行相应的操作并生成测试数据,将测试数据发送给测试终端110。所述执行终端120可以包括:智能手机、平板电脑、数字助理、智能可穿戴设备、车载终端等类型的移动设备,也可以包括运行于移动设备中的软体,例如应用程序等。
所述测试终端110用于与各执行终端120进行交互,收集各执行终端120在执行某项功能操作时产生的测试数据,并基于收集到的数据展示对于执行终端120的测试结果;执行终端120能够接收测试终端110发布的测试指令,根据测试指令收集其在执行某项操作时产生的某个测试数据,以便于测试终端110基于所述测试数据进行处理。所述测试终端110具体可以为计算机或者服务器等设备,所述服务器可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群;所述计算机或服务器上运行的操作系统可以包括但不限于安卓系统、IOS系统、linux、windows等。
本申请实施例提供了一种测试用例生成方法,所述方法以所述实施环境中的测试终端为实施主体,如图2所示,所述方法包括:
S210.确定目标操作对象。
在进行软件测试的过程中,首先需要确定待测试的对象,本实施例中的目标操作对象就是当前测试过程中待测试的对象,即需要测试在对所述目标操作对象进行操作之后的结果是否与预期的结果一致,或者是否满足特定的需求。
本实施例中的目标操作对象具体可以是某个页面中的控件、标签等可操作的元素对象,在对每个元素对象进行开发时,均为其赋予了相应的执行功能。例如,在测试点击控件的场景下,在监听到对于控件的click事件或tap事件之后,相应地可能会执行点击跳转或者点击不跳转,从而可以对点击控件所实现的相关功能操作进行测试。
S220.获取配置参数集合,其中所述配置参数集合中包括至少一组配置参数,每组配置参数均包括与所述目标操作对象相关的输入参数,以及触发所述目标操作对象后的预期输出参数。
本实施例中的配置参数是用于生成测试用例的参数配置,根据配置参数便可生成相应的测试用例。具体地,请参见图3,其示出了一种配置参数获取方法,包括:
S310.获取所述与所述目标操作对象相关的输入参数。
对于输入参数,可包括与所述目标操作对象相关的多个方面的参数,本实施例中,所述获取所述与所述目标操作对象相关的输入参数可以包括:
获取所述目标操作对象所在的目标页面的网络地址,以及所述目标操作对象的节点位置,所述节点位置为所述目标操作对象在所述目标页面的文档对象模型结构中的节点位置。
本实施例中的节点位置的获取具体可通过预埋脚本获取所述目标操作对象的节点位置,或者,通过在浏览器中进行路径分析获取所述目标操作对象的节点位置。
S320.获取所述触发所述目标操作对象后的预期输出参数。
本实施例中,所述获取所述触发所述目标操作对象后的预期输出参数可以包括:
获取触发所述目标操作对象后的预期跳转页面的网络地址,以及所述预期跳转页面中的预期显示信息,其中预期显示信息可以包括预期的文案或者预期的样式等。
需要说明的是,对于上述的输入、输出的各类参数,本实施例中虽仅仅列举了其中几类,但在具体的实施过程中可根据测试需求,配置其他不同的参数,本实施例不作具体限定。
S230.生成与各组配置参数对应的目标测试用例,根据各组配置参数对应的目标测试用例构建测试用例集合;其中,所述目标测试用例是通过将各组配置参数中的所述输入参数和所述预期输出参数输入测试用例模型生成的。
本实施例中,只需要通过配置相应的参数,便可自动生成与配置参数对应的测试用例,具体可通过测试用例模型来实现测试用例的自动生成,本实施例提供了一种测试用例模型的生成方法,请参见图4,所述方法包括:
S410.获取参照对象集合,其中,所述参照对象集合中包括至少一个参照对象的数据项,所述参照对象的数据项包括参照对象的输入参数格式和参照对象的预期输出参数格式。
本实施例中的参照对象可以理解为:参照对象与某个实际待测试对象具有相同类型的对象属性,并且参照对象的输入参数格式、预期的输出参数格式与该实际待测试对象的输入参数格式、预期的输出参数格式相同。综合考虑在实际测试过程中所有可能的参照对象,从而形成了所述参照对象集合。
一般情况下,参照对象集合中可以包括多个参照对象的数据项,这里参照对象的输入参数格式以及预期的输出参数格式并不是指具体的值,可以理解为是相应格式的参数或者变量。
S420.基于所述参照对象的输入参数格式、所述参照对象的预期输出参数格式以及预设规则,得到与各参照对象对应的测试用例生成方法,根据各参照对象对应的测试用例生成方法构建测试用例方法集合。
本实施例中的预设规则可以是测试人员根据相应的对象类型所设置的测试用例生成规则,即对于各类型的待测试对象,具体是通过怎样的方法,如何生成该类型的对象相应的测试用例的。
具体地,对于测试用例生成方法,可以看成是一个个函数,通过输入测试对象的配置参数,便可生成与该组配置参数相应的。对应到上述的参照对象,可以理解为,根据预设的规则,根据每个参照对象的属性、输入参数类型以及输出参数类型,编写与该参照对象对应的测试用例生成函数,其中,参照对象的输入参数类型,以及输出参数类型可看成是该函数的形参,函数体对应的即是具体的测试用例的生成步骤。
需要说明的,对于同一类型属性的参照对象,有可能会有多个测试用例生成函数与其对应,这是因为,对于同类型属性的参照对象,可能存在多组互不相同的输入参数格式以及输出参数格式,对于不同的参数格式,需要编写不同的函数,所以同一类型属性的参照对象可能对应多个不同的测试用例生成方法。
S430.根据所述测试用例方法集合构建所述测试用例模型。
为每个参照对象编写相应的测试用例生成函数,从而构成了测试用例模型。
生成了测试用例模型,便可用来生成与各测试对象对应的测试用例,具体地,本实施例提供了一种测试用例确定方法,请参见图5,所述方法包括:
S510.在所述测试用例模型中匹配与每组配置参数具有相同输入参数格式和相同输出参数格式的参照对象。
首先可以根据待测试的目标对象的属性或者名称之类的具有标识意义的特性,从测试用例模型中匹配出相应的参照对象,具体可根据参照对象对应的函数名来进行确定;在确定了参照对象之后,再根据配置参数中的输入参数格式和输出参数格式与参照对象对应的各测试用例生成函数进行匹配。
S520.当匹配成功时,确定匹配到的参照对象为匹配对象。
当匹配成功时,确定匹配的参照对象为匹配对象,并且确定匹配到的测试用例生成函数为匹配测试用例方法。
S530.获取与所述匹配对象对应的匹配测试用例方法。
S540.根据所述目标对象的输入参数、所述目标对象的输出参数以及所述匹配测试用例方法,生成与所述配置参数对应的目标测试用例。
将配置参数中的输入参数、输出参数作为所述匹配测试用例函数的实参,通过函数运算之后,得到与所述配置参数对应的目标测试用例。
通过本实施例的上述步骤,从在后台配置测试对象的参数到最终生成与配置参数对应的测试用例,实现了测试用例的自动生成,降低了测试用例的人工成本。
另外,用户在后台配置了与测试相关的参数之后,可以对配置的参数进行处理存储,具体可参见图6,其示出了一种配置参数处理方法,所述方法包括:
S610.为所述配置参数集合中的各组配置参数分别分配相应的标识。
对于配置的各组参数,可分别为其分配相应的标识,以便于区分和查找。这里的标识可以是在配置参数时输入的,也可以是由系统自动分配的。
S620.根据各组配置参数中的所述输入参数和所述预期输出参数,生成相应的数据记录。
S630.将各组配置参数的所述标识以及对应的数据记录存储到数据库中。
在生成了测试用例之后,还可以将所述配置参数的标识、所述配置参数以及与所述配置参数对应的目标测试用例进行关联,可便于测试用例的增加、删除、修改和查询。
对于存储到数据库中的数据记录,其可以如下形式进行存储:
-{
idx:101,
desc:"点赞",
-in:{
url:"/mobile/article.html?ptag=hp_feeds_articlex%3A1&docid=tx001080015dgxt7&name=%E8%8",
xpath:"/html/body/div/diw/div[3]/div[3]/diw/diw/div[2]”
},
-out:{
valid type:"1"
}
},
-{
idx:102,
desc:"收藏",
-in:{
url:"/mobile/article.html?ptag=hp_feeds_articlex%3A1&docid=tx001080015dgxt78name=%E8%8",
xpath:"/html/body/diw/diw/div[3]/div[3]/diw/diw/div[3]"
},
-out:{
valid type:"2"
}
},
-{
idx:103,
desc:"精选",
-in:{
url:"/mobile/home.htm1",
xpath:"/html/body/diw/div/div[5]/div/div/ul/li[3]/a"
},
-out:{
valid type:"3",
url:"/mobile/home.html",
xpath:"/html/body/diw/diw/div[5]/div/div/ul/1i[3]",
class:"active"
}
},
其中,valid_type:1表示校验节点存在的测试用例;valid_type:2表示校验文案匹配的测试用例;valid_type:3表示校验样式匹配的测试用例。
为了说明本申请的具体实施方式,下面以一具体示例进行说明,本实例中以测试移动设备的网络页面为例。
1.后台配置
(1)获取需要操作控件的xpath,具体可通过在业务侧前端代码预埋javascript脚本获取xpath,或者通过操作路径chrom浏览器的调试工具—>审查元素->右键->copy->copy xpath获取xpath,这里的xpath是测试对象元素在其所在页面的dom结构中的表示位置;
(2)在后台配置输入参数(url,xpath),输入参数中的url表示的是测试对象所在页面的统一资源定位符,输出参数(url,text,class),输出参数中的url表示的是操作测试对象之后的跳转页面的统一资源定位符,text是预期的文案,class是预期的样式,选择校验方式即测试用例类型,把用户行为尽量拆分成输入参数,输出参数能够表达的行为,一条测试用例的数据就配置出来了,存储在数据库,具体的后台参数配置界面示意图可参见图7,通过在相应的填写区域或者选择区域附上相应的配置信息,便可生成与该条配置参数对应的测试用例数据,并存储于数据库中,其中,具体的存储形式可参见本实施例上述的数据记录的示例部分,在此不再赘述。
2.手机数据线连接测试脚本所在的电脑,测试脚本通过adb(Android DebugBridge,安卓调试桥)找到连接设备并启动设备驱动,和手机建立连接,自动测试环境就准备好了。
3.测试脚本请求测试用例的接口,通过接口从数据库中读取配置参数数据记录,遍历接口中的数据,将数据分别输入到测试用例模型中生成相应的前缀为test_case_xx的测试用例,测试套件将这些生成的测试用例组装到一起,移动设备端按照测试用例添加到测试套件的顺序执行操作,实现进行自动化测试。
请参见图8,其示出了自动化测试原理图,其测试框架主要包括:
用户交互层(User Interface):提供给用户所有的界面操作API(H5界面及小程序界面),使用者不需要关注框架内部实现,只需要关注自身业务逻辑流程(手工用例流程转换成自动化流程);
操作解析层(PageOperator):主要用于接收和解析用户命令后传递给下层引擎层;
引擎层(Engine):将用户命令传输到移动设备端,并返回结果信息。封装WebSocket和单线程池,通过WebSocket Debug URL和浏览器内核建立链接,发送Json格式的协议到手机端进行用户指定的操作。
4.移动设备端接收操作请求,执行对应的操作,测试终端收到操作结果,去校验操作结果是否和预期结果一致,这里判断是否一致可以包括:操作结果的文案是否与预期输出参数中的文案是否一致,或者操作结果中的样式是否与预期输出参数中的样式是否一致,或者操作结果的页面与预期输出参数中的页面地址是否一致。
如果断言校验与预期不一致则记为异常用例,不阻断其他用例的正常执行,待所有用例执行完毕,生成测试报告,并可通过接口进行测试报告的上传。
请参见图9,其示出了上述示例中进行自动化测试的流程图,该套自动化测试方法可用于功能测试和回归测试,在软件版本发布之前自动运行一遍配置的测试用例,再次验证以前发现和修复的错误是否在新版本软件上再次出现,保证了产品质量,代替了大量的人工操作,定时脚本自动跑测试用例,若检测到用例运行失败则可以发告警信息给相关人员,给业务稳定性提供了保障,例如,请参见图10,其示出了一种测试用例执行结果示意图,从该图中可以看出执行用例的总数、成功用例数、失败用例数以及异常用例数等相关信息。
本申请实施例提供的测试用例生成方法,只需要在后台输入与测试对象相关的输入参数,以及触发所述目标对象后的预期输出参数,便可自动生成与配置参数对应的测试用例,而不是在一条测试用例里执行完所有的行为,从而避免出错而中断代码执行;本申请通过后台配置用例参数,只需要按照规范填写需要的信息即可配置测试用例数据,不需要具备开发能力,新人上手快,还支持测试用例的增删改查,可以减少测试和开发的工作量。
本实施例还提供了一种测试用例生成装置,请参见图11,所述装置包括:
操作对象确定模块1110,用于确定目标操作对象;
配置参数获取模块1120,用于获取配置参数集合,其中所述配置参数集合中包括至少一组配置参数,每组配置参数均包括与所述目标操作对象相关的输入参数,以及触发所述目标操作对象后的预期输出参数;
测试用例生成模块1130,用于生成与各组配置参数对应的目标测试用例,根据各组配置参数对应的目标测试用例构建测试用例集合;其中,所述目标测试用例是通过将各组配置参数中的所述输入参数和所述预期输出参数输入测试用例模型生成的。
请参见图12,所述配置参数获取模块1120包括:
第一获取模块1210,用于获取所述与所述目标操作对象相关的输入参数;具体可用于获取所述目标操作对象所在的目标页面的网络地址,以及所述目标操作对象的节点位置,所述节点位置为所述目标操作对象在所述目标页面的文档对象模型结构中的节点位置;
第二获取模块1220,用于获取所述触发所述目标操作对象后的预期输出参数;具体可用于获取触发所述目标操作对象后的预期跳转页面的网络地址,以及所述预期跳转页面中的预期显示信息。
请参见图13,所述装置还包括测试用例模型生成模块1300,所述测试用例模型生成模块1300包括:
参照对象集合获取模块1310,用于获取参照对象集合,其中,所述参照对象集合中包括至少一个参照对象的数据项,所述参照对象的数据项包括参照对象的输入参数格式和参照对象的预期输出参数格式;
测试用例方法集合构建模块1320,用于基于所述参照对象的输入参数格式、所述参照对象的预期输出参数格式以及预设规则,得到与各参照对象对应的测试用例生成方法,根据各参照对象对应的测试用例生成方法构建测试用例方法集合;
测试用例模型构建模块1330,用于根据所述测试用例方法集合构建所述测试用例模型。
请参见图14,所述测试用例生成模块1130包括:
匹配模块1410,用于在所述测试用例模型中匹配与每组配置参数具有相同输入参数格式和相同输出参数格式的参照对象;
匹配确定模块1420,用于当匹配成功时,确定匹配到的参照对象为匹配对象;
第三获取模块1430,用于获取与所述匹配对象对应的匹配测试用例方法;
目标测试用例形成模块1440,用于根据所述目标对象的输入参数、所述目标对象的输出参数以及所述匹配测试用例方法,生成与所述配置参数对应的目标测试用例。
请参见图15,所述装置还包括配置参数处理模块1500,所述配置参数处理模块1500包括:
标识分配模块1510,用于为所述配置参数集合中的各组配置参数分别分配相应的标识;
数据记录生成模块1520,用于根据各组配置参数中的所述输入参数和所述预期输出参数,生成相应的数据记录;
存储模块1530,用于将各组配置参数的所述标识以及对应的数据记录存储到数据库中。
所述装置还包括关联模块,用于将所述配置参数的标识、所述配置参数以及与所述配置参数对应的目标测试用例进行关联。
所述装置还包括位置节点获取模块,用于通过预埋脚本获取所述目标操作对象的节点位置;
或,通过在浏览器中进行路径分析获取所述目标操作对象的节点位置。
上述实施例中提供的装置可执行本申请任意实施例所提供方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的方法。
请参见图16,其示出了一种设备结构示意图,该设备1600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1622(例如,一个或一个以上处理器)和存储器1632,一个或一个以上存储应用程序1642或数据1644的存储媒体1630(例如一个或一个以上海量存储设备)。其中,存储器1632和存储媒体1630可以是短暂存储或持久存储。存储在存储媒体1630的程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对设备中的一系列指令操作。更进一步地,中央处理器1622可以设置为与存储媒体1630通信,在设备1600上执行存储媒体1630中的一系列指令操作。设备1600还可以包括一个或一个以上电源1626,一个或一个以上有线或无线网络接口1650,一个或一个以上输入输出接口1658,和/或,一个或一个以上操作系统1641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。本实施例上述的任一方法均可基于图16所示的设备进行实施。
本实施例还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如本实施例上述的任一方法。
本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤和顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或中断产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本实施例中所示出的结构,仅仅是与本申请方案相关的部分结构,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比示出的更多或更少的部件,或者组合某些部件,或者具有不同的部件的布置。应当理解到,本实施例中所揭露的方法、装置等,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分仅仅为一种逻辑功能的划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元模块的间接耦合或通信连接。
基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员还可以进一步意识到,结合本说明书所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但这种实现不应认为超出本申请的范围。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (14)
1.一种测试用例生成方法,其特征在于,包括:
确定目标操作对象;
获取配置参数集合,其中所述配置参数集合中包括至少一组配置参数,每组配置参数均包括与所述目标操作对象相关的输入参数,以及触发所述目标操作对象后的预期输出参数;
生成与各组配置参数对应的目标测试用例,根据各组配置参数对应的目标测试用例构建测试用例集合;其中,所述目标测试用例是通过将各组配置参数中的所述输入参数和所述预期输出参数输入测试用例模型生成的;所述测试用例模型的生成步骤包括:
获取参照对象集合,其中,所述参照对象集合中包括至少一个参照对象的数据项,所述参照对象的数据项包括参照对象的输入参数格式和参照对象的预期输出参数格式;
基于所述参照对象的输入参数格式、所述参照对象的预期输出参数格式以及预设规则,得到与各参照对象对应的测试用例生成方法,根据各参照对象对应的测试用例生成方法构建测试用例方法集合;
根据所述测试用例方法集合构建所述测试用例模型。
2.根据权利要求1所述的一种测试用例生成方法,其特征在于,所述获取配置参数集合包括:
获取所述与所述目标操作对象相关的输入参数,以及获取所述触发所述目标操作对象后的预期输出参数;
其中,所述获取所述与所述目标操作对象相关的输入参数包括:
获取所述目标操作对象所在的目标页面的网络地址,以及所述目标操作对象的节点位置,所述节点位置为所述目标操作对象在所述目标页面的文档对象模型结构中的节点位置;
所述获取所述触发所述目标操作对象后的预期输出参数包括:
获取触发所述目标操作对象后的预期跳转页面的网络地址,以及所述预期跳转页面中的预期显示信息。
3.根据权利要求1所述的一种测试用例生成方法,其特征在于,所述生成与各组配置参数对应的目标测试用例包括:
在所述测试用例模型中匹配与每组配置参数具有相同输入参数格式和相同输出参数格式的参照对象;
当匹配成功时,确定匹配到的参照对象为匹配对象;
获取与所述匹配对象对应的匹配测试用例方法;
根据所述目标操作对象的输入参数、所述目标操作对象的输出参数以及所述匹配测试用例方法,生成与所述配置参数对应的目标测试用例。
4.根据权利要求1所述的一种测试用例生成方法,其特征在于,所述获取配置参数集合之后还包括:
为所述配置参数集合中的各组配置参数分别分配相应的标识;
根据各组配置参数中的所述输入参数和所述预期输出参数,生成相应的数据记录;
将各组配置参数的所述标识以及对应的数据记录存储到数据库中。
5.根据权利要求4所述的一种测试用例生成方法,其特征在于,所述方法还包括:
将所述各组配置参数的标识、所述各组配置参数以及与所述各组配置参数对应的目标测试用例进行关联。
6.根据权利要求2所述的一种测试用例生成方法,其特征在于,所述方法还包括所述目标操作对象的节点位置获取步骤,所述目标操作对象的节点位置获取步骤包括:
通过预埋脚本获取所述目标操作对象的节点位置;
或,通过在浏览器中进行路径分析获取所述目标操作对象的节点位置。
7.一种测试用例生成装置,其特征在于,包括:
操作对象确定模块,用于确定目标操作对象;
配置参数获取模块,用于获取配置参数集合,其中所述配置参数集合中包括至少一组配置参数,每组配置参数均包括与所述目标操作对象相关的输入参数,以及触发所述目标操作对象后的预期输出参数;
测试用例生成模块,用于生成与各组配置参数对应的目标测试用例,根据各组配置参数对应的目标测试用例构建测试用例集合;其中,所述目标测试用例是通过将各组配置参数中的所述输入参数和所述预期输出参数输入测试用例模型生成的;
测试用例模型生成模块,所述测试用例模型生成模块包括:
参照对象集合获取模块,用于获取参照对象集合,其中,所述参照对象集合中包括至少一个参照对象的数据项,所述参照对象的数据项包括参照对象的输入参数格式和参照对象的预期输出参数格式;
测试用例方法集合构建模块,用于基于所述参照对象的输入参数格式、所述参照对象的预期输出参数格式以及预设规则,得到与各参照对象对应的测试用例生成方法,根据各参照对象对应的测试用例生成方法构建测试用例方法集合;
测试用例模型构建模块,用于根据所述测试用例方法集合构建所述测试用例模型。
8.根据权利要求7所述的装置,其特征在于,所述配置参数获取模块包括:
第一获取模块,用于获取所述与所述目标操作对象相关的输入参数;具体用于获取所述目标操作对象所在的目标页面的网络地址,以及所述目标操作对象的节点位置,所述节点位置为所述目标操作对象在所述目标页面的文档对象模型结构中的节点位置;
第二获取模块,用于获取所述触发所述目标操作对象后的预期输出参数;具体用于获取触发所述目标操作对象后的预期跳转页面的网络地址,以及所述预期跳转页面中的预期显示信息。
9.根据权利要求7所述的装置,其特征在于,所述测试用例生成模块包括:
匹配模块,用于在所述测试用例模型中匹配与每组配置参数具有相同输入参数格式和相同输出参数格式的参照对象;
匹配确定模块,用于当匹配成功时,确定匹配到的参照对象为匹配对象;
第三获取模块,用于获取与所述匹配对象对应的匹配测试用例方法;
目标测试用例形成模块,用于根据所述目标操作对象的输入参数、所述目标操作对象的输出参数以及所述匹配测试用例方法,生成与所述配置参数对应的目标测试用例。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括配置参数处理模块,所述配置参数处理模块包括:
标识分配模块,用于为所述配置参数集合中的各组配置参数分别分配相应的标识;
数据记录生成模块,用于根据各组配置参数中的所述输入参数和所述预期输出参数,生成相应的数据记录;
存储模块,用于将各组配置参数的所述标识以及对应的数据记录存储到数据库中。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括关联模块,用于将所述各组配置参数的标识、所述各组配置参数以及与所述各组配置参数对应的目标测试用例进行关联。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括位置节点获取模块,用于通过预埋脚本获取所述目标操作对象的节点位置;
或,通过在浏览器中进行路径分析获取所述目标操作对象的节点位置。
13.一种电子设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至6任一项所述的测试用例生成方法。
14.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如权利要求1至6任一项所述的测试用例生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910653843.4A CN112241360B (zh) | 2019-07-19 | 2019-07-19 | 一种测试用例生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910653843.4A CN112241360B (zh) | 2019-07-19 | 2019-07-19 | 一种测试用例生成方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112241360A CN112241360A (zh) | 2021-01-19 |
CN112241360B true CN112241360B (zh) | 2024-05-10 |
Family
ID=74167638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910653843.4A Active CN112241360B (zh) | 2019-07-19 | 2019-07-19 | 一种测试用例生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112241360B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765040B (zh) * | 2021-02-04 | 2024-01-26 | 深圳市捷视飞通科技股份有限公司 | 页面测试方法、系统、计算机设备和存储介质 |
CN112860581B (zh) * | 2021-03-18 | 2024-04-26 | 浙江诺诺网络科技有限公司 | 一种测试用例的执行方法、装置、设备及存储介质 |
CN113282476B (zh) * | 2021-06-24 | 2023-01-20 | 深圳市商汤科技有限公司 | 接口性能测试方法、装置和电子设备 |
CN113448806B (zh) * | 2021-06-30 | 2022-12-09 | 平安证券股份有限公司 | 数据库集群异常检测方法、装置、终端设备及存储介质 |
CN113641591B (zh) * | 2021-10-14 | 2022-06-24 | 腾讯科技(深圳)有限公司 | 测试用例生成方法及装置、测试方法及装置 |
CN114116449B (zh) * | 2021-10-25 | 2024-05-07 | 合众新能源汽车股份有限公司 | 一种自动化测试用例的参数化方法、装置及电子设备 |
CN114138673A (zh) * | 2021-12-16 | 2022-03-04 | 上海品顺信息科技有限公司 | 一种测试数据生成方法、装置、设备及可读存储介质 |
CN114238115A (zh) * | 2021-12-17 | 2022-03-25 | 北京金堤科技有限公司 | 网络页面的异常检测方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999320A (zh) * | 2011-09-15 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 测试用例自动生成方法和系统 |
CN107783901A (zh) * | 2017-09-26 | 2018-03-09 | 深圳市牛鼎丰科技有限公司 | 测试用例生成方法、装置、计算机设备及存储介质 |
CN107908548A (zh) * | 2017-10-10 | 2018-04-13 | 深圳市买买提乐购金融服务有限公司 | 一种生成测试用例的方法和装置 |
CN108304324A (zh) * | 2018-01-22 | 2018-07-20 | 百度在线网络技术(北京)有限公司 | 测试用例生成方法、装置、设备及存储介质 |
CN109783354A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 应用系统的功能测试方法、终端设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8972928B2 (en) * | 2011-08-30 | 2015-03-03 | Uniquesoft, Llc | System and method for generating application code |
-
2019
- 2019-07-19 CN CN201910653843.4A patent/CN112241360B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999320A (zh) * | 2011-09-15 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 测试用例自动生成方法和系统 |
CN107783901A (zh) * | 2017-09-26 | 2018-03-09 | 深圳市牛鼎丰科技有限公司 | 测试用例生成方法、装置、计算机设备及存储介质 |
CN107908548A (zh) * | 2017-10-10 | 2018-04-13 | 深圳市买买提乐购金融服务有限公司 | 一种生成测试用例的方法和装置 |
CN108304324A (zh) * | 2018-01-22 | 2018-07-20 | 百度在线网络技术(北京)有限公司 | 测试用例生成方法、装置、设备及存储介质 |
CN109783354A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 应用系统的功能测试方法、终端设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112241360A (zh) | 2021-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112241360B (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
US8813039B2 (en) | Method and system for software defect reporting | |
US8381184B2 (en) | Dynamic test coverage | |
CN106874187B (zh) | 代码覆盖率收集方法和装置 | |
US20120192153A1 (en) | Method and system for providing a testing framework | |
CN109408375B (zh) | 接口文档的生成方法和装置 | |
CN110908890A (zh) | 一种接口的自动测试方法和装置 | |
US11422917B2 (en) | Deriving software application dependency trees for white-box testing | |
CN103377120A (zh) | 一种应用程序测试方法及装置 | |
US9892019B2 (en) | Use case driven stepping component automation framework | |
CN111240955A (zh) | Http接口自动化测试方法及装置、存储介质、电子设备 | |
CN113111000A (zh) | 持续集成自动化测试系统和方法、电子设备、存储介质 | |
JP2015011372A (ja) | デバッグ支援システム、方法、プログラム及び記録媒体 | |
CN112650676A (zh) | 软件测试方法、装置、设备及存储介质 | |
CN111694734A (zh) | 软件接口校验方法、装置及计算机设备 | |
CN117931666B (zh) | 一种软件无线电通信设备核心框架测试系统及方法 | |
CN117370203B (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN110543429A (zh) | 测试用例调试方法、装置及存储介质 | |
CN112084108A (zh) | 一种测试脚本生成方法、装置及相关组件 | |
CN116383025A (zh) | 基于Jmeter的性能测试方法、装置、设备及介质 | |
CN116467156A (zh) | 联调测试方法、装置、存储介质及电子设备 | |
Brunnert et al. | Detecting performance change in enterprise application versions using resource profiles | |
CN113626307A (zh) | 一种基于k8s容器平台的数据校验方法和装置 | |
CN110362464B (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 |