CN112579455B - 一种接口自动化测试方法、装置、电子设备及存储介质 - Google Patents
一种接口自动化测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112579455B CN112579455B CN202011542803.1A CN202011542803A CN112579455B CN 112579455 B CN112579455 B CN 112579455B CN 202011542803 A CN202011542803 A CN 202011542803A CN 112579455 B CN112579455 B CN 112579455B
- Authority
- CN
- China
- Prior art keywords
- test
- interface
- data type
- referenced
- result
- 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 438
- 230000006870 function Effects 0.000 claims description 31
- 238000000034 method Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 22
- 238000010998 test method Methods 0.000 claims description 11
- 238000007726 management method Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000012804 iterative process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication 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
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提供了一种接口自动化测试方法、装置、电子设备及存储介质,涉及测试技术领域。接口自动化测试方法包括:获取被测系统的测试用例列表,其中,测试用例列表包括多个测试用例,每个测试用例包括多个测试步骤;判断测试步骤引用的数据类型;根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果;将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果。这样,根据引用不同的数据类型,从而可以传入不同的参数值,通过传入不同的参数值来达到测试不同场景的目的,这相对于将变量设置为固定值的方案来说,有效增加了测试的灵活性。
Description
技术领域
本发明涉及测试技术领域,具体而言,涉及一种接口自动化测试方法、装置、电子设备及存储介质。
背景技术
在一个软件产品的生命周期中,需求变更是经常发生的事,后期的版本上线带来大量重复的回归测试工作。自动化测试有UI自动化和接口自动化,UI自动化因为稳定性及脚本维护的问题,一般只进行主业务流程的测试;接口自动化测试一般采用测试工具例如Jmeter、postman等进行。但现有的接口自动化测试中,存在着灵活性不足的问题。
发明内容
本发明解决的问题是现有的接口自动化测试灵活性不足。
为解决上述问题,本发明提供一种接口自动化测试方法,包括如下步骤:
获取被测系统的测试用例列表,其中,所述测试用例列表包括多个测试用例,每个所述测试用例包括多个测试步骤;
判断所述测试步骤引用的数据类型;
根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果;
将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果。
这样,根据所述测试步骤所引用的数据类型,将当前测试用例设定的变量信息值覆盖所引用的数据类型包含的变量,根据引用的不同的数据类型,从而可以传入不同的参数值,通过传入不同的参数值来达到测试不同场景的目的,这相对于将变量设置为固定值的方案来说,有效增加了测试的灵活性。
可选地,所述判断所述测试步骤引用的数据类型中,所述数据类型包括配置、接口或另一所述测试用例。
可选地,所述根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果,包括:
当所述测试步骤的引用的数据类型为接口时,加载所引用的所述接口的接口信息,将所述测试步骤中的变量信息覆盖所述接口的同名变量信息;
当所述测试步骤的引用的数据类型为另一所述测试用例时,返回执行所述判断所述测试步骤引用的数据类型。
可选地,所述根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果,包括:
当所述测试步骤的引用的数据类型为配置时,加载配置数据,并顺序执行下一所述测试步骤;
当下一所述测试步骤的引用的数据类型为接口时,加载所引用所述接口的接口信息,并用所述配置数据的变量值覆盖所述接口信息包含的同名变量;
当下一所述测试步骤的引用的数据类型为另一所述测试用例,返回执行所述判断所述测试步骤引用的数据类型。
可选地,所述配置数据至少包括变量名和变量值,或自定义方法函数。
可选地,所述接口信息至少包括接口请求地址信息、请求方式和预设参数。
可选地,所述将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果,包括:
将所有所述测试用例的所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,接收所述被测系统返回的响应报文;
将所述响应报文与预设的期望结果进行比对,获得测试结果。
可选地,所述将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果,包括:
将每个所述测试用例的所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,接收所述被测系统返回的响应报文;
将所述响应报文与预设的期望结果进行比对,获得测试结果。
其次,本发明还公开了一种接口自动化测试装置,包括:
获取单元,其用于获取被测系统的测试用例列表,其中,所述测试用例列表包括多个测试用例,每个所述测试用例包括多个测试步骤;
判断单元,其用于判断所述测试步骤引用的数据类型;
覆盖单元,其用于根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果;
结果单元,其用于将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果。
这样,根据所述测试步骤所引用的数据类型,将当前测试用例设定的变量信息值覆盖所引用的数据类型包含的变量,根据引用的不同的数据类型,从而可以传入不同的参数值,通过传入不同的参数值来达到测试不同场景的目的,这相对于将变量设置为固定值的方案来说,有效增加了测试的灵活性。
再次,提供一种电子设备,包括处理器以及存储器,所述存储器存储有控制程序,所述控制程序被处理器执行时实现如前述所述的接口自动化测试方法。
这样,根据所述测试步骤所引用的数据类型,将当前测试用例设定的变量信息值覆盖所引用的数据类型包含的变量,根据引用的不同的数据类型,从而可以传入不同的参数值,通过传入不同的参数值来达到测试不同场景的目的,这相对于将变量设置为固定值的方案来说,有效增加了测试的灵活性。
最后提供一种计算机可读存储介质,存储有指令,所述指令被处理器加载并执行时实现如前述所述的接口自动化测试方法。
这样,根据所述测试步骤所引用的数据类型,将当前测试用例设定的变量信息值覆盖所引用的数据类型包含的变量,根据引用的不同的数据类型,从而可以传入不同的参数值,通过传入不同的参数值来达到测试不同场景的目的,这相对于将变量设置为固定值的方案来说,有效增加了测试的灵活性。
附图说明
图1为根据本发明一实施例的接口自动化测试方法的流程图;
图2为根据本发明一实施例的接口自动化测试装置的结构框图;
图3为根据本发明一实施例的被测系统的结构框图;
图4为根据本发明实施例的一种电子设备的结构框图;
图5为根据本发明实施例的另一种电子设备的框图。
附图标记说明:
10-获取单元;20-判断单元;30-覆盖单元;40-结果单元;50-自定义单元;60-配置管理单元;70-接口管理单元;80-用例管理单元;90-测试计划单元;100-测试报告单元;110-邮件组单元;12-电子设备;14-外部设备;16-处理单元;18-总线;21-网络适配器;23-输入/输出(I/O)接口;24-显示器;28-系统存储器;29-随机存取存储器;32-高速缓存存储器;34-存储系统;41-实用工具;42-程序模块。
具体实施方式
在一个软件产品的生命周期中,需求变更是经常发生的事,后期的版本上线带来大量重复的回归测试工作。自动化测试有UI自动化和接口自动化,UI自动化因为稳定性及脚本维护的问题,一般只进行主业务流程的测试;接口自动化测试一般采用测试工具例如Jmeter、postman等进行。但现有的接口自动化测试中,存在着灵活性不足的问题。
现有的接口自动化测试中,现有的主体参数都是固定写好的,虽然也可以定义一个变量,但是该变量只在当前位置引用,而无法引用其他位置,当变量的参数发生改变时,无法同步更新,因此存在着灵活性不足的问题。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
如图1所示,图1为根据本发明一实施例的接口自动化测试方法的流程图。本发明实施例公开了一种接口自动化测试方法,包括如下步骤:
S100,获取被测系统的测试用例列表,其中,所述测试用例列表包括多个测试用例,每个所述测试用例包括多个测试步骤。
其中,每个所述测试用例由按指定顺序排列的所述测试步骤组成,存储介质为数据库。
S200,判断所述测试步骤引用的数据类型。
其中,所述数据类型的判断是通过字段来标记,所述数据类型包括配置、接口或另一所述测试用例,所述测试步骤可以引用某一个接口当做一个步骤,也可以引用某一个测试用例当做一个步骤,另一个测试用例为另外一个完整的用例,引用的测试用例不能是当前的测试用例。
S300,根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果。
根据所述测试步骤所引用的数据类型不同,用当前所述测试用例设定的变量信息覆盖所引用的所述数据类型包含的变量信息值,变量信息值可以是特定的值,也可以是方法变量。例如,如果所述测试步骤引用的数据类型为接口,可以在接口里面定义一个参数,在引用这个接口时,可以重新传一个新的参数进去,将原来接口里面定义的默认参数覆盖掉。
S400,将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果。
对于一个接口的测试用例而言,在测试开始之前会对应有预设的期望结果,当发送了确定数据的测试报文进被测系统后,被测系统会返回结果。如果被测系统的返回结果和期望结果是一致,那么得到测试结果为这个测试用例是通过的,如果系统返回的结果与期望结果不一致,则得到的测试结果为这个测试用例不通过,则说明该被测系统内部处理是出现了逻辑错误或者系统异常,从而可以具体去定位问题并修改问题。
这样,根据所述测试步骤所引用的数据类型,将当前测试用例设定的变量信息值覆盖所引用的数据类型包含的变量,根据引用的不同的数据类型,从而可以传入不同的参数值,通过传入不同的参数值来达到测试不同场景的目的,这相对于将变量设置为固定值的方案来说,有效增加了测试的灵活性。
可选地,所述S200,判断所述测试步骤引用的数据类型中,所述数据类型包括配置、接口或另一所述测试用例。
其中,所述测试步骤存入数据库中用step_type字段区分数据类型,当step_type字段为0时表示配置,step_type字段为1时表示接口,step_type字段为2时表示测试用例,不过该测试用例为另一不同的测试用例。
这样,便于区分不同的数据类型,从而达到传入不同的参数值来达到测试不同场景的目的。
可选地,所述S300,根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果,包括:
当所述测试步骤的引用的数据类型为接口时,加载所引用的所述接口的接口信息,将所述测试步骤中的变量信息覆盖所述接口的同名变量信息。
当引用的数据类型为接口时,加载所引用接口的接口信息,在接口信息中保存了具体的请求地址、请求方式、参数等信息。在接口信息里面可以定义一个参数,例如在接口信息中定义一个变量a,a的默认值为1,在引用这个接口的时候,可以重新传一个新的参数进去,例如a的值为2,则用当前a为2的值替换原来a为1的值,即用新的参数把原来的参数覆盖掉。当另外的测试步骤引用该接口时,该接口中a的值就为2了,当需要重新传入新的参数时,新的参数又会将当前的参数值覆盖。
当所述测试步骤的引用的数据类型为另一所述测试用例时,返回执行S200。
当所述测试步骤引用的数据类型为另一不同的测试用例时,又重新执行所引用的这一测试用例,对于测试用例的执行就还是顺序执行该测试用例里面的各个测试步骤,在执行测试步骤时,判断所述测试步骤引用的数据类型,当引用接口的时候,进行参数的替换,当引用的是测试用例时,又按照同样的方式进行,形成一个迭代的过程。
这样,根据所述测试步骤所引用的数据类型为接口或测试用例时,用测试用例设定的变量信息去覆盖所引用的测试用例或接口的变量信息,从而达到覆盖不同的测试场景的目的。
可选地,所述S300,根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果,包括:
当所述测试步骤的引用的数据类型为配置时,加载配置数据,并顺序执行下一所述测试步骤。
当step_type字段为0时表示配置,此时加载配置数据,其中配置数据中可以包含键值对,即变量名和变量值的信息,或者还可以包含自定义方法函数。其中,配置数据包含的变量名和变量值,例如可以为定义一个变量X,给变量X设定一个值为3,X=3这就是其中的一个配置数据。配置数据包括自定义方法函数,例如可以定义一个方法函数X=add(a,b),add(a,b)代表一个相加的操作,通过传入相应的参数,执行该函数从而返回一结果值,该结果值为配置数据中的其中一个数据,例如X=add(1,2),即当a=1,b=2时,返回的结果值为3。当然,a,b这两个参数值也可以不设置为1,2,a、b这两个参数值可以根据实际需要传入不同的参数,最后返回的是两个参数相加得到的结果值,在这里a=1,b=2只是为了便于举例说明。需要说明的是,对于方法函数的设置,方法函数是在系统中预先定义好的,在实际应用时只要进行调用即可。特别地,当引用的数据类型是配置时,在配置里面不存在变量的更换,直接将配置数据加载出来,接着执行下一测试步骤。
当下一所述测试步骤的引用的数据类型为接口时,加载所引用所述接口的接口信息,并用所述配置数据的变量值覆盖所述接口信息包含的同名变量。
当执行的下一测试步骤所引用的数据类型为接口时,直接用加载得到的接口信息,接口信息里面会有默认值,接着去遍历接口的参数信息有没有用到配置里面的信息,如果有就将对应的参数进行替换,如果没有就执行下一个测试步骤。还是以配置数据设定一个变量为X,X=2为例,而在接口信息中定义有一个变量同样为X,而X的默认值为1,则用配置数据中X=2的值替换原来的X=1的值,最后得到X的值为2。而当配置数据不是变量名和变量值的格式,而是为自定义方法函数例如,X=add(1,2)即两个数相加,则最后得到X=3,在接口信息中定义有一个变量同样为X,而X的默认值还为1,则用配置数据得到的结果X=3的值替换原来的X=1的值.
当下一所述测试步骤的引用的数据类型为另一所述测试用例,返回执行S200。
当所述测试步骤引用的数据类型为另一不同的测试用例时,又重新执行所引用的这一测试用例,对于测试用例的执行就还是顺序执行该测试用例里面的各个测试步骤,在执行测试步骤时,判断所述测试步骤引用的数据类型,当引用接口的时候,进行参数的替换,当引用的是测试用例时,又按照同样的方式进行,形成一个迭代的过程。即,假如下一个测试步骤是测试用例的时候,相当于迭代的过程,相当于加载测试列表中的某一个用例,执行的过程是一样的。
这样,根据所述测试步骤所引用的数据类型为用例、接口或测试用例时,可以用配置数据中设定的变量信息去覆盖所引用的测试用例或接口的变量信息,从而达到覆盖不同的测试场景的目的。
需要说明的是,每个测试用例里面可以有配置也可以没有配置,当测试用例里面有配置时,最多只有一个配置,如果一个测试用例里面引用了配置,则这个配置是放在第一个测试步骤。
可选地,所述配置数据至少包括变量名和变量值,或自定义方法函数。
其中,所述配置数据可以只包括变量名和变量值,或者只包括自定义方法函数,或者可以同时包含变量名、变量值以及自定义方法函数,或者还同时包含其他的数据。所述配置数据包含的变量名和变量值,例如可以为定义一个变量X,给变量X设定一个值为3,X=3这就是其中的一个配置数据。而配置数据包括自定义方法函数,例如可以定义一个方法函数X=add(a,b),add(a,b)代表一个相加的操作,通过传入相应的参数,执行该函数从而返回一结果值,该结果值为配置数据中的其中一个数据。
这样,通过配置数据中不同类型的设置,可以适应不同处理参数的测试需求,以适应不同的场景,从而达到覆盖不同的测试场景的目的。
可选地,所述接口信息至少包括接口请求地址信息、请求方式和预设参数。
所述接口信息中可以定义一个用于提取响应结果中指定信息的变量,在该接口被引用时,该接口所在测试步骤的后续步骤都可直接使用该变量。这样,能够实现接口的复用,根据传入的不同参数进行不同场景的接口测试,同一个项目可以由不同的人来维护接口,且可以互相调用,有效地提高了接口测试的覆盖度和效率。
可选地,所述S400,将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果,包括:
将所有所述测试用例的所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,接收所述被测系统返回的响应报文;
将所述响应报文与预设的期望结果进行比对,获得测试结果。
这样,通过将所有测试步骤都执行完成之后,取覆盖结果的并集组装成测试报文,将该测试报文发送至被测系统,通过将被测系统的响应报文与期望结果的比对,从而得出该测试用例是否通过,该被测系统是否存在问题。通过将所有测试步骤执行完成之后,再去进行验证,这样提高了测试的效率。
可选地,所述S400,将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果,包括:
将每个所述测试用例的所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,接收所述被测系统返回的响应报文;
将所述响应报文与预设的期望结果进行比对,获得测试结果。
这样,通过在每个测试用例执行完成之后,将覆盖结果组装成测试报文,将该测试报文发送至被测系统,通过将被测系统的响应报文与期望结果的比对,从而得出该测试步骤是否通过,该被测系统是否存在问题。这样将每个测试步骤的进行验证,从而可以及时发现问题,排查被测系统存在的问题。
可选地,在写测试用例的时候,可以对每个测试步骤写一个验证,然后加载过程中也会把验证信息加载出来,当所有的测试用例都加载完整之后,将请求信息往被测系统发送,发送之后,每发送一个都会收到一个返回结果。
对应所述测试用例的结果进行验证的时候,可以验证每个测试用例的,每个测试用例都会发送一个请求,每发送一次请求都会有一个返回结果,这个返回结果可以选择对它进行验证,也可以不对这个返回结果验证。对于是否对每个测试用例的返回结果进行验证,则要根据实际需求来选择。但是一般情况下,最后一个测试步骤是必须要验证。
对于一个测试用例来说,做验证可以得到支持,如果不做验证就不做要求。对于一个测试用例它的测试步骤会有很多,则要看具体的要求,如果每个测试步骤都要验证,则对于工作量的要求有所提高,因此可以根据实际的需求有选择地进行验证。
如图2所示,图2为根据本发明一实施例的接口自动化测试装置的结构框图。作为本发明另一实施例,本申请还公开了一种接口自动化测试装置,包括:
获取单元10,其用于获取被测系统的测试用例列表,其中,所述测试用例列表包括多个测试用例,每个所述测试用例包括多个测试步骤;
判断单元20,其用于判断所述测试步骤引用的数据类型;
覆盖单元30,其用于根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果;
结果单元40,其用于将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果。
这样,根据所述测试步骤所引用的数据类型,将当前测试用例设定的变量信息值覆盖所引用的数据类型包含的变量,根据引用的不同的数据类型,从而可以传入不同的参数值,通过传入不同的参数值来达到测试不同场景的目的,这相对于将变量设置为固定值的方案来说,有效增加了测试的灵活性。
可选地,所述判断单元20中,所述数据类型包括配置、接口或另一所述测试用例。
可选地,所述覆盖单元30还用于,当所述测试步骤的引用的数据类型为接口时,加载所引用的所述接口的接口信息,将所述测试步骤中的变量信息覆盖所述接口的同名变量信息;当所述测试步骤的引用的数据类型为另一所述测试用例时,返回执行所述判断所述测试步骤引用的数据类型。
可选地,所述覆盖单元30还用于,当所述测试步骤的引用的数据类型为配置时,加载配置数据,并顺序执行下一所述测试步骤;当下一所述测试步骤的引用的数据类型为接口时,加载所引用所述接口的接口信息,并用所述配置数据的变量值覆盖所述接口信息包含的同名变量;当下一所述测试步骤的引用的数据类型为另一所述测试用例,返回执行所述判断所述测试步骤引用的数据类型。
可选地,所述接口信息至少包括接口请求地址信息、请求方式和预设参数。
可选地,所述结果单元40还用于,将所有所述测试用例的所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,接收所述被测系统返回的响应报文;将所述响应报文与预设的期望结果进行比对,获得测试结果。
可选地,所述结果单元40还用于,将每个所述测试步骤的所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,接收所述被测系统返回的响应报文;将所述响应报文与预设的期望结果进行比对,获得测试结果。
上述描述的所述接口自动化测试方法可以应用到需要进行测试的系统中。为了便于使用者对该系统进行操作,接下来从使用者的操作习惯对测试系统的整个系统重新进行功能模块的划分;需要说明的是,该种划分的目的是更有利于使用者的使用和操作,因此该划分偏向于大范围,其中关于具体使用逻辑的详细划分较少,本领域技术人员可以在此基础上根据实际需要进行填充。如图3所示,图3为根据本发明一实施例的被测系统的结构框图。所述测试系统,包括:
自定义单元50,其用于录入编写的自定义方法;
配置管理单元60,其用于录入定义公共的变量配置数据;
接口管理单元70,其用于录入接口信息;以及
用例管理单元80,其用于录入测试用例,其中,所述测试用例的测试步骤引用所述接口管理单元70录入的所述接口信息,或引用所述用例管理单元80录入的所述测试用例。
其中,自定义单元50也称为logic.py单元,用于编写实现各种逻辑计算的各种自定义方法,所述自定义方法可在配置管理单元、接口管理单元、用例管理单元按照特定的格式引用。所述配置管理单元60,用于某一类变量的设置,使得引用该配置的测试步骤或测试用例中存在同样变量名的参数值用该变量值覆盖。
所述接口管理单元70,用于将接口信息录入所述测试系统,录入信息包括接口的基本信息、变量信息、参数信息、响应结果中可提取的信息以及断言信息。基本信息包括接口的名称、描述等信息;变量信息是定义供本接口使用的变量,使得调用本接口的测试用例可以通过变量名来覆盖变量的值。另外,接口的参数信息包括该接口的地址信息、请求方式以及各入参信息,入参的值可以定义具体的数据,也可以引用本接口变量信息中定义的变量,本系统建议此处都引用变量,这样便于对不同的参数值进行测试。
一般地,在测试过程中某个接口需要另一个接口返回的值作为入参,本测试系统支持将上一接口的返回值提取出来并赋值给某一变量名,在引用该接口的测试步骤的后续步骤可直接引用该变量名。提取变量的规则是将返回的响应信息符合json格式的转成json格式,其它的转成str格式。
所述用例管理单元80,用于将用例信息录入系统,录入信息包括接口的基本信息、测试步骤以及配置信息。
具体来说,接口的基本信息包括测试用例的名称、描述等信息;测试步骤为引用的已录入的接口或其它测试用例,按顺序排列在测试步骤列表中,当然也可以通过拖动的方式重新排列顺序。在此可以对每个测试步骤设定变量、钩子函数和断言。所述钩子函数有两种:setup_hooks和teardown_hooks分别是在测试开始之前和测试结束之后执行。对测试步骤定义钩子函数则是在该步骤开始之前或结束之后调用。同样地,如果对测试用例定义钩子函数,则是在该测试用例开始之前或结束之后调用。测试用例引用的配置信息中如果存在变量,则会覆盖该用例下所有步骤中的同名变量;如果存在钩子函数,则会在整个用例的开始之前和结束之后调用函数。同时,在此可以对引用的配置新增变量和钩子函数,此处新增的变量和钩子函数只对本测试用例起作用。
这样,通过将接口与测试数据分离,通过数据的不同组合可以完成对接口的各测试场景覆盖;通过接口和用例间的互相引用,可以完成对各类应用场景的测试覆盖,在不重复录入接口和用例的前提下,有效的提高了接口测试的覆盖度和效率。
可选地,所述接口自动化测试系统还包括测试计划单元90、测试报告单元100和邮件组单元110,所述测试计划单元90用于将测试计划信息录入系统,录入的测试计划信息包括测试计划的基本信息、用例列表以及配置信息。
具体来说,测试计划列表页,可以发送执行测试计划的命令,可以对测试计划配置邮件组,对于配置了邮件组的测试计划,在该测试计划测试完成后将对应的测试报告发送给邮件组中的收件人。测试计划中的测试用例为系统录入的测试用例,无顺序要求。测试计划中同样可以增加变量信息,用于覆盖本测试计划下所有相同的变量名。
对于所述测试报告单元100,用于将后台发送至客户端的测试计划信息按照执行顺序的倒序进行列表展示,并可以通过查看按钮查看测试报告的详细信息。测试完成后,除发送邮件外,也会将测试报告保存在系统中,可在测试报告单元查看,此处的测试报告包含了运行接口、测试和用例和测试计划所产生的所有报告。
所述邮件组单元110,用于录入不同的邮件组,并设定收件人的邮箱地址,使得配置了邮件组的测试计划在完成测试后的邮件发送。
需要说明的是,对于本申请的测试系统,比如之前已经将测试用例写好,如果后面有需求需要变更,若不涉及到接口的变动,则通过直接执行这个测试,即直接运行这个测试用例,然后会出相应的测试结果。直接通过测试结果,即可知道这个测试用例是否通过,来判断该测试系统是否存在问题。这就可以节省人力再去对这个测试用例进行测试,从而提升了测试效率。
例如,本来被测系统已经做好了上线了,相关接口的测试用例已经写好了,之前写好的测试用例经过验证之后确认是可以运行的,后来系统来了新的功能,需要新增加某一项功能,理论上新增加的功能是对原有的功能是没有影响的,那在实际的开发过程,因为代码是程序员写的,不确定更改后的新代码会不会影响原有的功能,因此需要通过测试的手段去验证有没有影响,如果测试需要人为去测试的话,那需要花费很多的时间和人去测试原来的功能是否正常,而通过本申请的系统,将该系统直接运行一下,通过测试结果即可判断,如果测试结果是通过,则对原有的功能没有影响。如果运行失败,则说明影响到了结构,需要人为去干预,有可能是数据出现问题或者bug,这样也有利于对系统问题的解决。
以上描述了接口自动化测试方法、装置和系统,如图4所示,实际中,该接口自动化测试系统可实现为电子设备,包括:处理器以及存储器,所述存储器存储有控制程序,所述控制程序被处理器执行时实现上述所述的接口自动化测试方法。
图5是根据本发明实施例示出的另一种电子设备的框图。图5显示的电子设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,电子设备12可以通用电子设备的形式实现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)29和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性的计算机可读存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具41,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它电子设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口23进行。并且,电子设备12还可以通过网络适配器21与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器21通过总线18与电子设备12的其它模块通信。要说明的是,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。
本发明的电子设备可以是服务器,也可以有限算力的终端设备,本发明的轻量级网络结构尤其适用于后者。所述终端设备的基体实现包括但不限于:智能移动通信终端、无人机、机器人、便携式图像处理设备、安防设备等等。
本公开实施例提供了一种计算机可读存储介质,存储有指令,所述指令被处理器加载并执行时实现上述所述的接口自动化测试方法。
本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本发明实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
虽然本公开披露如上,但本公开的保护范围并非仅限于此。本领域技术人员在不脱离本公开的精神和范围的前提下,可进行各种变更与修改,这些变更与修改均将落入本发明的保护范围。
Claims (7)
1.一种接口自动化测试方法,其特征在于,包括如下步骤:
获取被测系统的测试用例列表,其中,所述测试用例列表包括多个测试用例,每个所述测试用例包括多个测试步骤;
判断所述测试步骤引用的数据类型;
根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果;
将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果;
所述判断所述测试步骤引用的数据类型中,所述数据类型包括配置、接口和另一所述测试用例;
所述根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果,包括:当所述测试步骤的引用的数据类型为接口时,加载所引用的所述接口的接口信息,将所述测试步骤中的变量信息覆盖所述接口的同名变量信息;当所述测试步骤的引用的数据类型为另一所述测试用例时,返回执行所述判断所述测试步骤引用的数据类型;
所述根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果,包括:当所述测试步骤的引用的数据类型为配置时,加载配置数据,并顺序执行下一所述测试步骤;当下一所述测试步骤的引用的数据类型为接口时,加载所引用所述接口的接口信息,并用所述配置数据的变量值覆盖所述接口信息包含的同名变量;当下一所述测试步骤的引用的数据类型为另一所述测试用例,返回执行所述判断所述测试步骤引用的数据类型;
所述配置数据至少包括变量名和变量值,或者所述配置数据至少包括自定义方法函数。
2.根据权利要求1所述的接口自动化测试方法,其特征在于,所述接口信息至少包括接口请求地址信息、请求方式和预设参数。
3.根据权利要求1所述的接口自动化测试方法,其特征在于,所述将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果,包括:
将所有所述测试用例的所述覆盖结果组装成测试报文,并将所述测试报文发送至所述被测系统,接收所述被测系统返回的响应报文;
将所述响应报文与预设的期望结果进行比对,获得所述测试结果。
4.根据权利要求1所述的接口自动化测试方法,其特征在于,所述将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果,包括:
将每个所述测试步骤的所述覆盖结果组装成测试报文,并将所述测试报文发送至所述被测系统,接收所述被测系统返回的响应报文;
将所述响应报文与预设的期望结果进行比对,获得所述测试结果。
5.一种接口自动化测试装置,其特征在于,包括:
获取单元(10),其用于获取被测系统的测试用例列表,其中,所述测试用例列表包括多个测试用例,每个所述测试用例包括多个测试步骤;
判断单元(20),其用于判断所述测试步骤引用的数据类型;
覆盖单元(30),其用于根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果;
其中,所述判断所述测试步骤引用的数据类型中,所述数据类型包括配置、接口和另一所述测试用例;
所述根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果,包括:当所述测试步骤的引用的数据类型为接口时,加载所引用的所述接口的接口信息,将所述测试步骤中的变量信息覆盖所述接口的同名变量信息;当所述测试步骤的引用的数据类型为另一所述测试用例时,返回执行所述判断所述测试步骤引用的数据类型;
所述根据所述测试步骤引用的数据类型,将当前所述测试用例设定的变量信息值覆盖所引用的所述数据类型包含的变量信息值,获得覆盖结果,包括:当所述测试步骤的引用的数据类型为配置时,加载配置数据,并顺序执行下一所述测试步骤;当下一所述测试步骤的引用的数据类型为接口时,加载所引用所述接口的接口信息,并用所述配置数据的变量值覆盖所述接口信息包含的同名变量;当下一所述测试步骤的引用的数据类型为另一所述测试用例,返回执行所述判断所述测试步骤引用的数据类型;
所述配置数据至少包括变量名和变量值,或者所述配置数据至少包括自定义方法函数;
结果单元(40),其用于将所述覆盖结果组装成测试报文,并将所述测试报文发送至被测系统,获得测试结果。
6.一种电子设备,包括处理器以及存储器,其特征在于,所述存储器存储有控制程序,所述控制程序被处理器执行时实现如权利要求1-4中任一项所述的接口自动化测试方法。
7.一种计算机可读存储介质,存储有指令,其特征在于,所述指令被处理器加载并执行时实现如权利要求1-4中任一项所述的接口自动化测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011542803.1A CN112579455B (zh) | 2020-12-23 | 2020-12-23 | 一种接口自动化测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011542803.1A CN112579455B (zh) | 2020-12-23 | 2020-12-23 | 一种接口自动化测试方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579455A CN112579455A (zh) | 2021-03-30 |
CN112579455B true CN112579455B (zh) | 2024-07-05 |
Family
ID=75139156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011542803.1A Active CN112579455B (zh) | 2020-12-23 | 2020-12-23 | 一种接口自动化测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579455B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127347B (zh) * | 2021-04-14 | 2024-02-13 | 广联达科技股份有限公司 | 一种接口测试方法、装置、设备及可读存储介质 |
CN113778889A (zh) * | 2021-09-16 | 2021-12-10 | 行云智网络科技(北京)有限公司 | 一种自动化测试的动态参数设置方法及系统 |
CN113590407B (zh) * | 2021-09-29 | 2021-11-30 | 云账户技术(天津)有限公司 | 一种接口测试方法及装置 |
CN115687140B (zh) * | 2022-11-10 | 2024-01-30 | 江苏衫数科技集团有限公司 | 一种基于自动化测试的测试用例编写方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297774A (zh) * | 2019-07-02 | 2019-10-01 | 四川长虹电器股份有限公司 | 一种基于python的接口自动化测试方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102227716B (zh) * | 2009-03-30 | 2014-01-01 | 株式会社野村综合研究所 | 动作验证装置、动作验证方法、以及动作验证系统 |
CN104182335B (zh) * | 2014-05-09 | 2017-03-29 | 中国光大银行 | 软件测试方法和装置 |
CN105630685A (zh) * | 2016-01-29 | 2016-06-01 | 广州酷狗计算机科技有限公司 | 程序接口测试方法及装置 |
CN107273286B (zh) * | 2017-06-02 | 2020-10-27 | 携程计算机技术(上海)有限公司 | 针对任务应用的场景自动化测试平台及方法 |
CN109446099A (zh) * | 2018-11-09 | 2019-03-08 | 贵州医渡云技术有限公司 | 自动化测试用例生成方法、装置、介质及电子设备 |
US10877875B2 (en) * | 2019-03-05 | 2020-12-29 | Verizon Patent And Licensing Inc. | Systems and methods for automated programmatic test generation and software validation |
CN111159049B (zh) * | 2019-12-31 | 2023-11-17 | 中国银行股份有限公司 | 接口自动化测试方法及系统 |
CN111475397A (zh) * | 2020-03-08 | 2020-07-31 | 苏州浪潮智能科技有限公司 | 一种表单数据单次提交批量测试的方法 |
CN111538659B (zh) * | 2020-04-21 | 2024-03-01 | 上海携程商务有限公司 | 业务场景的接口测试方法、系统、电子设备和存储介质 |
-
2020
- 2020-12-23 CN CN202011542803.1A patent/CN112579455B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297774A (zh) * | 2019-07-02 | 2019-10-01 | 四川长虹电器股份有限公司 | 一种基于python的接口自动化测试方法 |
Non-Patent Citations (1)
Title |
---|
Web服务测试工具SOAPUI及其分析;罗作民 等;计算机应用与软件;20100515;第27卷(第05期);第155-157页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112579455A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112579455B (zh) | 一种接口自动化测试方法、装置、电子设备及存储介质 | |
CN109933521A (zh) | 基于bdd的自动化测试方法、装置、计算机设备及存储介质 | |
CN112181854A (zh) | 一种生成流程自动化脚本的方法、装置、设备及存储介质 | |
CN112799782B (zh) | 模型生成系统、方法、电子设备及存储介质 | |
CN113312260A (zh) | 一种接口测试方法、装置、设备及存储介质 | |
CN111694752A (zh) | 应用测试方法、电子设备及存储介质 | |
CN107608873B (zh) | 软件测试方法和系统及测试平台 | |
CN117931620A (zh) | 一种降低智能终端系统测试技术门槛的自动化测试方法 | |
CN107357721B (zh) | 测试系统的方法及装置 | |
CN111737152A (zh) | 通过网页录入数据实现web自动化测试的方法及装置 | |
CN115617780A (zh) | 数据导入方法、装置、设备及存储介质 | |
CN112561690B (zh) | 信用卡分期业务接口的测试方法、系统、设备及存储介质 | |
CN107203471B (zh) | 联调方法、服务平台及计算机存储介质 | |
JP2003022196A (ja) | 携帯端末におけるテストプログラムの自動実行方法 | |
CN113051178A (zh) | 测试数据构造方法、装置、设备及介质 | |
CN112416805A (zh) | 一种测试管理云平台和方法 | |
CN112433935A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN117290255A (zh) | 一种基于Python和Locust框架的批量接口性能测试方法 | |
CN116955193A (zh) | 接口测试方法、装置、设备及存储介质 | |
CN115484560B (zh) | 智能短信的处理方法、装置、电子设备及存储介质 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN115269387A (zh) | 接口自动化测试方法及装置 | |
CN113076252A (zh) | 接口测试方法、装置、电子设备及存储介质 | |
CN114461514A (zh) | 一种基于低代码的自动化测试方法和系统 | |
CN113986263A (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 |