CN110262978A - 一种基于长流程自动化测试的接口重试方法及数据流 - Google Patents
一种基于长流程自动化测试的接口重试方法及数据流 Download PDFInfo
- Publication number
- CN110262978A CN110262978A CN201910552621.3A CN201910552621A CN110262978A CN 110262978 A CN110262978 A CN 110262978A CN 201910552621 A CN201910552621 A CN 201910552621A CN 110262978 A CN110262978 A CN 110262978A
- Authority
- CN
- China
- Prior art keywords
- interface
- parameter
- measured
- case
- 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
Links
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/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)
- Maintenance And Management Of Digital Transmission (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于长流程自动化测试的接口重试方法及数据流,属于计算机软件开发及软件测试领域,解决现有技术中接口执行失败后,需要从长流程的开始重新执行,从而造成测试效率低的问题。本发明获取待测被测试用例的所有接口后,建立所有接口通用的测试模块;再进行重试开始接口及重试开关的设置;然后进行待测被测试用例的多接口执行,若执行过程中出现接口执行失败,判断是执行接口重试还是结束流程,若是执行接口重试,从重试开始接口开始执行,否则结束流程,若在执行过程中未出现接口执行失败,在流程未结束的情况下,顺序执行后续接口,直到流程结束,流程结束后输出待测被测试用例的测试结果及过程数据。本发明用于长流程中接口执行失败后的接口重试。
Description
技术领域
一种基于长流程自动化测试的接口重试方法及数据流,用于长流程中接口执行失败后的接口重试,属于计算机软件开发及软件测试领域。
背景技术
在软件测试中由于被测试业务场景日益丰富,长流程的业务也越来越多。长流程的业务往往包含几个甚至几十个接口,长流程接口测试通常需要从第一个接口开始往后跑,一旦中间某个接口出现执行失败,往往只能手动处理,即指在非自动化测试的情况下,手动重新执行失败的接口。而对于自动化测试而言,出现执行失败后,需得再次从头执行,这样对于长流程接口测试非常浪费时间。其中,执行失败中的失败包含异常失败和返回结果失败。
目前基于长流程自动化接口测试的现有方案为:将测试用例中涉及到的接口顺序调用,其中,下一接口依赖上一接口的执行返回结果,完成整体流程的测试。存在如下不足之处:
一、如果某接口执行失败则流程停止,出现接口执行失败后,再次执行又得从头开始,这样才能保证每次流程执行采用全新数据,从而造成测试效率低的问题。
二、未对每个接口关键过程数据进行存储,不方便数据查找及问题排查;
三、未对各接口关键过程数据进行存储,不方便抽取各接口过程数据,不能为更多场景测试提供测试数据。
发明内容
针对上述研究的问题,本发明的目的在于提供一种基于长流程自动化测试的接口重试方法及数据流,用于解决现有技术中长流程自动化接口测试执行失败后,再次进行测试时,需要从长流程的开始重新执行,从而造成测试效率低的问题。
为了达到上述目的,本发明采用如下技术方案:
一种基于长流程自动化测试的接口重试方法,如下步骤:
S1、获取待测被测试用例的所有接口;
S2:基于获取的所有接口,建立所有接口通用的测试模块;
S3:建立好所有接口通用的测试模块后,进行重试开始接口及重试开关的设置;
S4:基于测试模块,进行待测被测试用例的多接口顺序执行,若执行过程中出现接口执行失败,转到步骤S5,否则,在流程未结束的情况下,根据步骤S4中接口的执行顺序执行后续接口,直到流程结束,转到步骤S6;
S5:基于设置的重试开始接口及重试开关判断是执行接口重试还是结束流程,若是执行接口重试,转到步骤S4从重试开始接口执行,若是结束流程,转到步骤S6;
S6:输出待测被测试用例的测试结果及过程数据。
进一步,所述步骤S1中,根据待测被测试用例的要求,获取待测被测试用例所需系统的多个接口,再根据系统相关文档获取各接口执行顺序及依赖关系,相关文档包括接口文档和系统说明文档,接口文档包括接口用途说明、接口名称、请求参数、请求类型和返回参数,请求参数包括请求参数名称、参数类型和是否为必输,返回参数包括返回参数名称和返回参数类型。
进一步,所述步骤S2中,基于获取的所有接口,建立所有接口通用的测试模块,用于各接口调用,测试模块包括请求数据的处理部分、请求交易的发送部分、返回数据的校验部分和关键数据的存储部分;
所述请求数据的处理部分是指建立接口的请求数据原始文档和接口请求参数值的替换配置文档及组装;
建立接口的请求数据原始文档:根据接口的接口文档,建立接口的请求数据原始文档,其中,原始文档包括文档名,文档内容,文档名为接口名,文档内容为接口所有的请求参数,请求参数以“参数名:参数值”的形式进行顺序列举;
接口请求参数值的替换配置文档及组装:根据接口的请求数据原始文档,建立参数替换文档;其中,参数替换文档中定义了接口名称、接口请求类型、接口中需要替换参数值的参数,待替换参数值的数据来源、待替换参数在请求数据原始文档中的具体路径,以配置内容“参数名:[待替换参数值的数据来源类型,获取参数值的路径,待替换参数在请求数据原始文档中的具体路径]”格式定义每个需要替换值的参数;替换时根据待替换参数值的数据来源类型及获取参数值的路径获取对应参数值,并根据待替换参数在请求数据原始文档中的具体路径,替换请求数据原始文档中对应参数值,形成新的请求报文;
请求交易的发送部分是指根据参数替换文档中定义的接口请求类型获取对应的请求处理方法,并发送新的请求报文即可完成请求,其中请求处理方法为基于Http协议的接口请求处理方法或基于dubbo协议的接口请求处理方法;同时定义参数接收返回报文,即发送新的请求报文后的返回报文;
返回数据的校验部分是指参数替换文档中除了包含接口请求时需要替换的请求参数外,还包含需要校验参数的定义,其定义类型为“参数名:预期值”,获取返回报文中对应的参数值并与之比较;若所有校验参数都校验通过,则将该接口的执行结果状态标识为true,否则为false,并将执行结果状态参数存储在与待测被测试用例编号对应的数据库表中;
关键数据的存储部分是指参数替换文档中还包含接口中需要保存到数据库的关键参数,关键参数分别来源于请求报文和返回报文,即通过参数替换文档中存储参数的定义,通过请求报文及返回报文获取对应参数,存储在与待测被测试用例编号对应的数据库表中;该类参数将用于下游接口的请求依赖参数。
进一步,所述步骤S3中,设置重试开始接口及重试开关的具体步骤为:流
设置重试开始接口有两种方式:
第一种设置方式为:自动将流程中第一个执行失败的接口设置为重试开始接口,接口失败与否根据数据库中存储的接口返回数据的校验部分中的执行结果状态来判断,true为接口执行成功,false为接口执行失败;
第二种设置方式为:根据测试需求在待测被测试用例执行调度文件中手动设置重试开始接口,即在手动设置方案中,流程执行失败,即会获取该重试接口名称,然后去判断其上一接口返回数据的校验部分中的执行结果状态,如果为true则从指定的重试接口开始往后执行,如果为false则抛出执行失败停止执行,并提示该重试接口上一接口已执行失败无法重试:
设置两个接口重试开关为全局开关和局部开关,全局开关设置在自定义的全局配置文件中,其作用域为所有待测被测试用例;局部开关设置在每个待测被测试用例的调度文件中,其作用范围为该待测被测试用例,两开关相互配合生效,当全局开关为false时,则所有待测被测试用例都不执行重试操作,不论流程失败与否都结束流程测试;当全局开关为true时则以局部开关为准,局部开关为true则执行重试,否则不执行。
进一步,所述步骤S4中,基于测试模块,进行待测被测试用例的多接口顺序执行的具体步骤为:
S4.1:根据待测被测试用例测试要求,将待测被测试用例涉及到的接口按执行顺序排列形成待测被测试用例执行调度文件,调度文件中定义了需要执行的接口及各接口的执行顺序;
S4.2:在调度文件的基础上,当执行测试待测被测试用例时,通过文本逐行读取来解析待测被测试用例名称、解析后再逐行读取接口名称,重复调用测试模块执行,即接口执行请求数据的处理、请求交易的发送、返回数据的校验部分、关键数据的存储部分。
进一步,所述步骤S5中,基于设置的重试开始接口及重试开关判断是执行重试开始接口还是终止流程的具体步骤为:
在全局开关为true的状态下,执行多接口待测被测试用例时,先根据调度文件,获取接口执行顺序,依次重复调用测试模块,完成接口执行请求数据的处理、请求交易的发送、返回数据的校验部分、关键数据的存储部分;在调度文件中流程执行过程中,若待测被测试用例的流程状态出现false时,则自动获取执行调度文件中重试开关值及重试开始接口,若重试开关值为true则启动接口重试;从重试开始接口开始依次执行后续接口,若重试开关值为false,结束流程;
进一步,所述步骤S6的具体步骤为:
流程执行线束后,以测试报告及测试日志的形式输出执行结果及过程数据;在执行结果中包含待测被测试用例中各接口的执行结果及待测被测试用例整体的执行结果;过程数据则包含每个接口的请求报文、返回报文,重试接口的名称及执行次数。
一种基于长流程自动化测试的接口重试数据流,如下步骤:
处理器获取待测被测试用例的所有接口;
处理器基于获取的所有接口,建立所有接口通用的测试模块存储在存储器中;
处理器在建立好各接口的测试模块后,进行重试开始接口及重试开关的设置并存储在存储器中;
处理器设置好重试开始接口及重试开关后根据各接口从存储器中调用测试模块,进行待测被测试用例的多接口顺序执行,若执行过程中出现接口执行失败,处理器调用存储器中设置的重试开始接口及重试开关判断是执行接口重试还是结束流程,若是执行接口重试,从重试开始接口重新执行,若是结束流程,结束流程后,处理器输出待测被测试用例的测试结果及过程数据,并存储在存储器中,若执行过程中未出现接口执行失败,在流程未结束的情况下,顺序执行后续接口,直到流程结束,流程结束后,处理器输出待测被测试用例的测试结果及过程数据,并存储在存储器中。
本发明同现有技术相比,其有益效果表现在:
一、本发明在出现中间某待测测试用例执行失败,可继续从失败接口开始往下执行,上游接口可不再执行,可继续使用上游接口数据,提高测试数据的利用率和测试效率(即节约了大量时间);在测试效率方面,对于后段接口容易出问题的流程有显著效果;
二、本发明对每个接口关键过程数据进行存储,方便数据查找及问题排查;
三、本发明对各接口关键过程数据进行了存储,方便抽取各接口过程数据,可为更多场景测试提高测试数据,提高测试数据利用率;
四、本发明多接口执行中重复使用测试模块,使得数据的采集存储标准统一化,数据统计更为高效。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面将结合附图及具体实施方式对本发明作进一步的描述。
一种基于长流程自动化测试的接口重试方法,如下步骤:
S1、获取待测被测试用例的所有接口;即根据待测被测试用例的要求,获取待测被测试用例所需系统的多个接口,再根据系统相关文档获取各接口执行顺序及依赖关系,相关文档包括接口文档和系统说明文档,接口文档包括接口用途说明、接口名称、请求参数、请求类型和返回参数,请求参数包括请求参数名称、参数类型和是否为必输,返回参数包括返回参数名称和返回参数类型。
S2:基于获取的所有接口,建立所有接口通用的测试模块;即基于获取的所有接口,建立所有接口通用的测试模块,用于各接口调用,测试模块包括请求数据的处理部分、请求交易的发送部分、返回数据的校验部分和关键数据的存储部分;
所述请求数据的处理部分是指建立接口的请求数据原始文档和接口请求参数值的替换配置文档及组装;
建立接口的请求数据原始文档:根据接口的接口文档,建立接口的请求数据原始文档,其中,原始文档包括文档名,文档内容,文档名为接口名,文档内容为接口所有的请求参数,请求参数以“参数名:参数值”的形式进行顺序列举;
接口请求参数值的替换配置文档及组装:根据接口的请求数据原始文档,建立参数替换文档;其中,参数替换文档中定义了接口名称、接口请求类型、接口中需要替换参数值的参数,待替换参数值的数据来源、待替换参数在请求数据原始文档中的具体路径,以配置内容“参数名:[待替换参数值的数据来源类型,获取参数值的路径,待替换参数在请求数据原始文档中的具体路径]”格式定义每个需要替换值的参数;替换时根据待替换参数值的数据来源类型及获取参数值的路径获取对应参数值,并根据待替换参数在请求数据原始文档中的具体路径,替换请求数据原始文档中对应参数值,形成新的请求报文;
请求交易的发送部分是指根据参数替换文档中定义的接口请求类型获取对应的请求处理方法,并发送新的请求报文即可完成请求,其中请求处理方法为基于Http协议的接口请求处理方法或基于dubbo协议的接口请求处理方法;同时定义参数接收返回报文,即发送新的请求报文后的返回报文;
返回数据的校验部分是指参数替换文档中除了包含接口请求时需要替换的请求参数外,还包含需要校验参数的定义,其定义类型为“参数名:预期值”,获取返回报文中对应的参数值并与之比较;若所有校验参数都校验通过,则将该接口的执行结果状态标识为true,否则为false,并将执行结果状态参数存储在与待测被测试用例编号对应的数据库表中;
关键数据的存储部分是指参数替换文档中还包含接口中需要保存到数据库的关键参数,关键参数分别来源于请求报文和返回报文,即通过参数替换文档中存储参数的定义,通过请求报文及返回报文获取对应参数,存储在与待测被测试用例编号对应的数据库表中;该类参数将用于下游接口的请求依赖参数。
S3:建立好所有接口通用的测试模块后,进行重试开始接口及重试开关的设置;
设置重试开始接口及重试开关的具体步骤为:流
设置重试开始接口有两种方式:
第一种设置方式为:自动将流程中第一个执行失败的接口设置为重试开始接口,接口失败与否根据数据库中存储的接口返回数据的校验部分中的执行结果状态来判断,true为接口执行成功,false为接口执行失败;
第二种设置方式为:根据测试需求在待测被测试用例执行调度文件中手动设置重试开始接口,即在手动设置方案中,流程执行失败,即会获取该重试接口名称,然后去判断其上一接口返回数据的校验部分中的执行结果状态,如果为true则从指定的重试接口开始往后执行,如果为false则抛出执行失败停止执行,并提示该重试接口上一接口已执行失败无法重试:
设置两个接口重试开关为全局开关和局部开关,全局开关设置在自定义的全局配置文件中,其作用域为所有待测被测试用例;局部开关设置在每个待测被测试用例的调度文件中,其作用范围为该待测被测试用例,两开关相互配合生效,当全局开关为false时,则所有待测被测试用例都不执行重试操作,不论流程失败与否都结束流程测试;当全局开关为true时则以局部开关为准,局部开关为true则执行重试,否则不执行。
S4:基于测试模块,进行待测被测试用例的多接口顺序执行,若执行过程中出现接口执行失败,转到步骤S5,否则,在流程未结束的情况下,根据步骤S4中接口的执行顺序执行后续接口,直到流程结束,转到步骤S6;
基于测试模块,进行待测被测试用例的多接口顺序执行的具体步骤为:
S4.1:根据待测被测试用例测试要求,将待测被测试用例涉及到的接口按执行顺序排列形成待测被测试用例执行调度文件,调度文件中定义了需要执行的接口及各接口的执行顺序;
S4.2:在调度文件的基础上,当执行测试待测被测试用例时,通过文本逐行读取来解析待测被测试用例名称、解析后再逐行读取接口名称,重复调用测试模块执行,即接口执行请求数据的处理、请求交易的发送、返回数据的校验部分、关键数据的存储部分。
S5:基于设置的重试开始接口及重试开关判断是执行接口重试还是结束流程,若是执行接口重试,转到步骤S4从重试开始接口执行,若是结束流程,转到步骤S6;
基于设置的重试开始接口及重试开关判断是执行重试开始接口还是终止流程的具体步骤为:
在全局开关为true的状态下,执行多接口待测被测试用例时,先根据调度文件,获取接口执行顺序,依次重复调用测试模块,完成接口执行请求数据的处理、请求交易的发送、返回数据的校验部分、关键数据的存储部分;在调度文件中流程执行过程中,若待测被测试用例的流程状态出现false时,则自动获取执行调度文件中重试开关值及重试开始接口,若重试开关值为true则启动接口重试;从重试开始接口开始依次执行后续接口,若重试开关值为false,结束流程;
S6:输出待测被测试用例的测试结果及过程数据。具体步骤为:
流程执行线束后,以测试报告及测试日志的形式输出执行结果及过程数据;在执行结果中包含待测被测试用例中各接口的执行结果及待测被测试用例整体的执行结果;过程数据则包含每个接口的请求报文、返回报文,重试接口的名称及执行次数。
一种基于长流程自动化测试的接口重试数据流,如下步骤:
处理器获取待测被测试用例的所有接口;
处理器基于获取的所有接口,建立所有接口通用的测试模块存储在存储器中;
处理器在建立好各接口的测试模块后,进行重试开始接口及重试开关的设置并存储在存储器中;
处理器设置好重试开始接口及重试开关后根据各接口从存储器中调用测试模块,进行待测被测试用例的多接口顺序执行,若执行过程中出现接口执行失败,处理器调用存储器中设置的重试开始接口及重试开关判断是执行接口重试还是结束流程,若是执行接口重试,从重试开始接口重新执行,若是结束流程,结束流程后,处理器输出待测被测试用例的测试结果及过程数据,并存储在存储器中,若执行过程中未出现接口执行失败,在流程未结束的情况下,顺序执行后续接口,直到流程结束,流程结束后,处理器输出待测被测试用例的测试结果及过程数据,并存储在存储器中。
实施例
根据待测被测试用例case的要求,获取待测被测试用例所需系统的多个接口(A1、A2…),根据系统相关文档获取各接口执行顺序及依赖关系;
根据所有接口A1、A2…建立了一个通用的测试模块,测试模块包括请求数据的处理部分、请求交易的发送部分、返回数据的校验部分和关键数据的存储部分;
请求数据的处理部分是指建立接口的请求数据原始文档B:根据接口A1、A2…的接口文档,建立接口A1、A2…的请求数据原始文档B,其中原始文档B包括文档名,文档内容,文档名为A1、A2…接口名,文档内容为接口所有的请求参数,请求参数以“参数名:参数值”的形式进行顺序列举;
接口请求参数值的替换配置文档及组装:根据接口的请求数据原始文档B,建立参数替换文档B1;其中,参数替换文档B1中定义了接口名称、接口请求类型Q1、接口中需要替换参数值的参数,待替换参数值的数据来源(如数据库)、待替换参数在请求数据原始文档中的具体路径,以配置内容“参数名:[待替换参数值的数据来源类型,获取参数值的路径,待替换参数在请求数据原始文档中的具体路径]”格式定义每个需要替换值的参数;以A1接口为例,在参数替换文档B1中配置“name:[fromMogoDB,$.name,$.path.name]”表示A1接口需要替换原始文档B中请求参数name的值,获取其值的方法为fromMogoDB,获取值的路径为$.name。程序根据配置内容或取对参数值,并根据待替换参数在待替换参数值的中的具体路径$.path.name,替换请求数据原始文档中对应参数值,形成新的请求报文C;
请求交易的发送部分是指根据参数替换文档B1中定义的接口请求类型Q1获取对应的请求处理方法,发送新的请求报文C即可完成请求,其中请求处理方法为基于Http协议的接口请求处理方法;同时定义参数接收返回报文R,即发送新的请求报文后的返回报文;
返回数据的校验部分是指参数替换文档B1中除了包含接口请求时需要替换的请求参数外,还包含需要校验参数的定义,其定义类型为“参数名:预期值”,如“returnCode:0000”表示需要校验其返回值中包含“returnCode”参数且其值为0000,如有多个需要校验的值换行依次列举即可;获取返回报文R中对应的参数值并与之比较;若所有校验参数都校验通过则将该接口的执行结果状态(A1ResultState)标识为true,否则为false,并将参数名存储在与待测被测试用例case编号对应的数据库表中;
关键数据的存储部分是指参数替换文档B1中还包含接口A1、A2…中需要保存到数据库的关键参数,关键参数分别来源于请求报文和返回报文R,即通过参数替换文档中存储参数的定义,通过请求报文及返回报文获取对应参数,即将需要保存的参数分别列举在“request”和“response”标签下,多个参数即以逗号相隔依次列举,请求参数名称需同原始文档B中的参数名保持一致,返回参数名需同返回报文R中的参数名一致;列举后,存储在与待测被测试用例case编号对应的数据库表中;该类参数将用于下游接口的请求依赖参数。
建立好各流程接口的测试模块后,流程测试中设置重试开始接口,设置方式有两种方式:
第一种设置方式为:自动将流程中第一个执行失败的接口设置为重试开始接口,接口失败与否根据数据库中存储的接口返回数据的校验部分中的执行结果状态(即指一个接口包含的多个参数名对应的参数值)A1ResultState来判断,true为接口执行成功,false为接口执行失败;
第二种设置方式为:根据测试需求在待测被测试用例case调度文件E中手动设置重试开始接口,即在手动设置方案中,流程执行失败,即会获取该重试接口名称,然后去判断其上一接口返回数据的校验部分中的执行结果状态A1ResultState,如果为true则从指定的重试接口开始往后执行,如果为false则抛出执行失败停止执行,并提示该重试接口上一接口已执行失败无法重试;
设置两个接口重试开关为全局开关和局部开关,全局开关设置在自定义的全局配置文件中,其作用域为所有待测被测试用例;局部开关设置在每个待测被测试用例case的调度文件E中,其作用范围为该待测被测试用例,两开关相互配合生效,当全局开关为false时,则所有待测被测试用例都不执行重试操作,不论流程失败与否都结束测试;当全局开关为true时则以局部开关为准,局部开关为true则执行重试,否则不执行。设置好重试开始接口和接口重试开关后,根据待测被测试用例case测试要求,将待测被测试用例case涉及到的接口A1、A2…按执行顺序排列形成待测被测试用例case调度文件E,调度文件E中定义了需要执行的接口及各接口的执行顺序;
在调度文件E的基础上,当执行测试待测被测试用例case时,程序(即逐行读取文本,通过“@case”标识确定测试用例名,“@lnterface”确定接口名称,按获取到文本的顺序确定执行的顺序。)会解析待测被测试用例case名称、解析后,逐行读取接口名称,各接口A1、A2…重复调用测试模块执行,即接口执行请求数据的处理、请求交易的发送、返回数据的校验部分、关键数据的存储部分。
若在执行过程中出现接口执行失败,在全局开关为true的状态下,执行多接口待测被测试用例case时,先根据调度文件E,获取接口执行顺序,依次重复调用接口的测试模块,完成接口请求数据的处理、请求交易的发送、返回数据的校验部分、关键数据的存储部分;在调度文件E中流程执行过程中,若待测被测试用例的流程状态出现false时,则会自动获取调度文件E中重试开关值及重试开始接口,若重试开关值为true则启动接口重试;从重试开始接口开始依次执行后续接口,若重试开关值为false,结束流程;
不论流程是否出现接口执行失败,当流程执行结束后输出待测被测试用例的测试结果及过程数据。即流程执行线束后,以测试报告及测试日志的形式输出执行结果及过程数据;在执行结果中包含每个待测被测试用例case中各接口的执行结果及待测被测试用例case整体的执行结果;过程数据则包含每个接口的请求报文、返回报文,重试接口的名称及执行次数。
以上仅是本发明众多具体应用范围中的代表性实施例,对本发明的保护范围不构成任何限制。凡采用变换或是等效替换而形成的技术方案,均落在本发明权利保护范围之内。
Claims (8)
1.一种基于长流程自动化测试的接口重试方法,其特征在于,如下步骤:
S1、获取待测被测试用例的所有接口;
S2:基于获取的所有接口,建立所有接口通用的测试模块;
S3:建立好所有接口通用的测试模块后,进行重试开始接口及重试开关的设置;
S4:基于测试模块,进行待测被测试用例的多接口顺序执行,若执行过程中出现接口执行失败,转到步骤S5,否则,在流程未结束的情况下,根据步骤S4中接口的执行顺序执行后续接口,直到流程结束,转到步骤S6;
S5:基于设置的重试开始接口及重试开关判断是执行接口重试还是结束流程,若是执行接口重试,转到步骤S4从重试开始接口执行,若是结束流程,转到步骤S6;
S6:输出待测被测试用例的测试结果及过程数据。
2.根据权利要求1所述的一种基于长流程自动化测试的接口重试方法,其特征在于,所述步骤S1中,根据待测被测试用例的要求,获取待测被测试用例所需系统的多个接口,再根据系统相关文档获取各接口执行顺序及依赖关系,相关文档包括接口文档和系统说明文档,接口文档包括接口用途说明、接口名称、请求参数、请求类型和返回参数,请求参数包括请求参数名称、参数类型和是否为必输,返回参数包括返回参数名称和返回参数类型。
3.根据权利要求2所述的一种基于长流程自动化测试的接口重试方法,其特征在于,所述步骤S2中,基于获取的所有接口,建立所有接口通用的测试模块,用于各接口调用,测试模块包括请求数据的处理部分、请求交易的发送部分、返回数据的校验部分和关键数据的存储部分;
所述请求数据的处理部分是指建立接口的请求数据原始文档和接口请求参数值的替换配置文档及组装;
建立接口的请求数据原始文档:根据接口的接口文档,建立接口的请求数据原始文档,其中,原始文档包括文档名,文档内容,文档名为接口名,文档内容为接口所有的请求参数,请求参数以“参数名:参数值”的形式进行顺序列举;
接口请求参数值的替换配置文档及组装:根据接口的请求数据原始文档,建立参数替换文档;其中,参数替换文档中定义了接口名称、接口请求类型、接口中需要替换参数值的参数,待替换参数值的数据来源、待替换参数在请求数据原始文档中的具体路径,以配置内容“参数名:[待替换参数值的数据来源类型,获取参数值的路径,待替换参数在请求数据原始文档中的具体路径]”格式定义每个需要替换值的参数;替换时根据待替换参数值的数据来源类型及获取参数值的路径获取对应参数值,并根据待替换参数在请求数据原始文档中的具体路径,替换请求数据原始文档中对应参数值,形成新的请求报文;
请求交易的发送部分是指根据参数替换文档中定义的接口请求类型获取对应的请求处理方法,并发送新的请求报文即可完成请求,其中请求处理方法为基于Http协议的接口请求处理方法或基于dubbo协议的接口请求处理方法;同时定义参数接收返回报文,即发送新的请求报文后的返回报文;
返回数据的校验部分是指参数替换文档中除了包含接口请求时需要替换的请求参数外,还包含需要校验参数的定义,其定义类型为“参数名:预期值”,获取返回报文中对应的参数值并与之比较;若所有校验参数都校验通过,则将该接口的执行结果状态标识为true,否则为false,并将执行结果状态参数存储在与待测被测试用例编号对应的数据库表中;
关键数据的存储部分是指参数替换文档中还包含接口中需要保存到数据库的关键参数,关键参数分别来源于请求报文和返回报文,即通过参数替换文档中存储参数的定义,通过请求报文及返回报文获取对应参数,存储在与待测被测试用例编号对应的数据库表中;该类参数将用于下游接口的请求依赖参数。
4.根据权利要求3所述的一种基于长流程自动化测试的接口重试方法,其特征在于,所述步骤S3中,设置重试开始接口及重试开关的具体步骤为:流
设置重试开始接口有两种方式:
第一种设置方式为:自动将流程中第一个执行失败的接口设置为重试开始接口,接口失败与否根据数据库中存储的接口返回数据的校验部分中的执行结果状态来判断,true为接口执行成功,false为接口执行失败;
第二种设置方式为:根据测试需求在待测被测试用例执行调度文件中手动设置重试开始接口,即在手动设置方案中,流程执行失败,即会获取该重试接口名称,然后去判断其上一接口返回数据的校验部分中的执行结果状态,如果为true则从指定的重试接口开始往后执行,如果为false则抛出执行失败停止执行,并提示该重试接口上一接口已执行失败无法重试;
设置两个接口重试开关为全局开关和局部开关,全局开关设置在自定义的全局配置文件中,其作用域为所有待测被测试用例;局部开关设置在每个待测被测试用例的调度文件中,其作用范围为该待测被测试用例,两开关相互配合生效,当全局开关为false时,则所有待测被测试用例都不执行重试操作,不论流程失败与否都结束流程测试;当全局开关为true时则以局部开关为准,局部开关为true则执行重试,否则不执行。
5.根据权利要求3所述的一种基于长流程自动化测试的接口重试方法,其特征在于,所述步骤S4中,基于测试模块,进行待测被测试用例的多接口顺序执行的具体步骤为:
S4.1:根据待测被测试用例测试要求,将待测被测试用例涉及到的接口按执行顺序排列形成待测被测试用例执行调度文件,调度文件中定义了需要执行的接口及各接口的执行顺序;
S4.2:在调度文件的基础上,当执行测试待测被测试用例时,通过文本逐行读取来解析待测被测试用例名称、解析后再逐行读取接口名称,重复调用测试模块执行,即接口执行请求数据的处理、请求交易的发送、返回数据的校验部分、关键数据的存储部分。
6.根据权利要求5所述的一种基于长流程自动化测试的接口重试方法,其特征在于,所述步骤S5中,基于设置的重试开始接口及重试开关判断是执行重试开始接口还是终止流程的具体步骤为:
在全局开关为true的状态下,执行多接口待测被测试用例时,先根据调度文件,获取接口执行顺序,依次重复调用测试模块,完成接口执行请求数据的处理、请求交易的发送、返回数据的校验部分、关键数据的存储部分;在调度文件中流程执行过程中,若待测被测试用例的流程状态出现false时,则自动获取执行调度文件中重试开关值及重试开始接口,若重试开关值为true则启动接口重试;从重试开始接口开始依次执行后续接口,若重试开关值为false,结束流程;
7.根据权利要求6所述的一种基于长流程自动化测试的接口重试方法,其特征在于,所述步骤S6的具体步骤为:
流程执行线束后,以测试报告及测试日志的形式输出执行结果及过程数据;在执行结果中包含待测被测试用例中各接口的执行结果及待测被测试用例整体的执行结果;过程数据则包含每个接口的请求报文、返回报文,重试接口的名称及执行次数。
8.一种基于长流程自动化测试的接口重试数据流,其特征在于,如下步骤:
处理器获取待测被测试用例的所有接口;
处理器基于获取的所有接口,建立所有接口通用的测试模块存储在存储器中;
处理器在建立好各接口的测试模块后,进行重试开始接口及重试开关的设置并存储在存储器中;
处理器设置好重试开始接口及重试开关后根据各接口从存储器中调用测试模块,进行待测被测试用例的多接口顺序执行,若执行过程中出现接口执行失败,处理器调用存储器中设置的重试开始接口及重试开关判断是执行接口重试还是结束流程,若是执行接口重试,从重试开始接口重新执行,若是结束流程,结束流程后,处理器输出待测被测试用例的测试结果及过程数据,并存储在存储器中,若执行过程中未出现接口执行失败,在流程未结束的情况下,顺序执行后续接口,直到流程结束,流程结束后,处理器输出待测被测试用例的测试结果及过程数据,并存储在存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910552621.3A CN110262978B (zh) | 2019-06-24 | 2019-06-24 | 一种基于长流程自动化测试的接口重试方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910552621.3A CN110262978B (zh) | 2019-06-24 | 2019-06-24 | 一种基于长流程自动化测试的接口重试方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110262978A true CN110262978A (zh) | 2019-09-20 |
CN110262978B CN110262978B (zh) | 2022-12-09 |
Family
ID=67921203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910552621.3A Active CN110262978B (zh) | 2019-06-24 | 2019-06-24 | 一种基于长流程自动化测试的接口重试方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110262978B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831547A (zh) * | 2020-05-29 | 2020-10-27 | 大数金科网络技术有限公司 | 自动化接口测试平台 |
CN112579421A (zh) * | 2019-09-27 | 2021-03-30 | 北大方正集团有限公司 | 接口测试方法、系统及计算机可读存储介质 |
CN112765045A (zh) * | 2021-04-07 | 2021-05-07 | 四川新网银行股份有限公司 | 一种基于案例模板的流量回放方法 |
CN117290205A (zh) * | 2022-10-25 | 2023-12-26 | 国家电投集团科学技术研究院有限公司 | 一种通用核电热工水力软件测试方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103377123A (zh) * | 2012-04-25 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 一种网页代码自动化测试方法及装置 |
WO2016105352A1 (en) * | 2014-12-23 | 2016-06-30 | Hewlett Packard Enterprise Development Lp | Automatically rerunning test executions |
CN106021118A (zh) * | 2016-06-20 | 2016-10-12 | 深圳充电网科技有限公司 | 测试代码生成方法及装置、测试框架代码执行方法及装置 |
CN107506298A (zh) * | 2017-07-28 | 2017-12-22 | 杭州销冠网络科技有限公司 | 一种用于线上业务的监控方法及系统 |
CN109344076A (zh) * | 2018-10-22 | 2019-02-15 | 浙江执御信息技术有限公司 | 一种基于JMeter和Jenkins的接口自动化测试方法及其装置 |
CN109522230A (zh) * | 2018-11-16 | 2019-03-26 | 郑州云海信息技术有限公司 | 一种用于自动化测试过程的方法和装置 |
CN109522218A (zh) * | 2018-10-19 | 2019-03-26 | 平安科技(深圳)有限公司 | 接口测试方法、装置、计算机设备和存储介质 |
-
2019
- 2019-06-24 CN CN201910552621.3A patent/CN110262978B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103377123A (zh) * | 2012-04-25 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 一种网页代码自动化测试方法及装置 |
WO2016105352A1 (en) * | 2014-12-23 | 2016-06-30 | Hewlett Packard Enterprise Development Lp | Automatically rerunning test executions |
CN106021118A (zh) * | 2016-06-20 | 2016-10-12 | 深圳充电网科技有限公司 | 测试代码生成方法及装置、测试框架代码执行方法及装置 |
CN107506298A (zh) * | 2017-07-28 | 2017-12-22 | 杭州销冠网络科技有限公司 | 一种用于线上业务的监控方法及系统 |
CN109522218A (zh) * | 2018-10-19 | 2019-03-26 | 平安科技(深圳)有限公司 | 接口测试方法、装置、计算机设备和存储介质 |
CN109344076A (zh) * | 2018-10-22 | 2019-02-15 | 浙江执御信息技术有限公司 | 一种基于JMeter和Jenkins的接口自动化测试方法及其装置 |
CN109522230A (zh) * | 2018-11-16 | 2019-03-26 | 郑州云海信息技术有限公司 | 一种用于自动化测试过程的方法和装置 |
Non-Patent Citations (5)
Title |
---|
DALILA SOUILEM BOUMIZA等: "Design and development of a user interface to customize web testing scenarios", 《INTERNATIONAL CONFERENCE ON EDUCATION AND E-LEARNING INNOVATIONS》 * |
叶波等: "软件接口自动化测试技术研究与实现", 《信息化研究》 * |
吕茜: "基于WebDriver和TestNG的网页自动化测试方法", 《软件》 * |
李一风: "基于 pytest 和 JMeter 的自动化测试系统设计和实现", 《智能计算机与应用》 * |
纯白色和白色: "testng对执行失败的用例,再次执行", 《HTTP://WWW.51TESTING.COM/HTML/69/N-3727469.HTML?NOMOBILE=1》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579421A (zh) * | 2019-09-27 | 2021-03-30 | 北大方正集团有限公司 | 接口测试方法、系统及计算机可读存储介质 |
CN111831547A (zh) * | 2020-05-29 | 2020-10-27 | 大数金科网络技术有限公司 | 自动化接口测试平台 |
CN112765045A (zh) * | 2021-04-07 | 2021-05-07 | 四川新网银行股份有限公司 | 一种基于案例模板的流量回放方法 |
CN112765045B (zh) * | 2021-04-07 | 2021-11-09 | 四川新网银行股份有限公司 | 一种基于案例模板的流量回放方法 |
CN117290205A (zh) * | 2022-10-25 | 2023-12-26 | 国家电投集团科学技术研究院有限公司 | 一种通用核电热工水力软件测试方法及装置 |
CN117290205B (zh) * | 2022-10-25 | 2024-05-10 | 国家电投集团科学技术研究院有限公司 | 一种通用核电热工水力软件测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110262978B (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110262978A (zh) | 一种基于长流程自动化测试的接口重试方法及数据流 | |
WO2017000424A1 (zh) | 协议检测方法及装置 | |
CN106095673A (zh) | 基于web接口的自动化测试方法及系统 | |
CN106033393B (zh) | 一种应用程序测试方法及系统以及移动终端 | |
CN106354645A (zh) | 基于后台系统服务或接口的测试方法和测试平台 | |
CN110389898A (zh) | 测试策略的获取方法、装置、终端及计算机可读存储介质 | |
CN101808343B (zh) | Arm数字基带芯片中sim/usim卡控制器自动化测试电路结构及方法 | |
CN107861876A (zh) | 测试方法、装置、计算机设备及可读存储介质 | |
CN106682036A (zh) | 一种数据交换系统及其交换方法 | |
CN108304286A (zh) | 一种对转码服务器并发性能进行自动化测试的系统及方法 | |
CN110175165A (zh) | 交易对账方法、装置、计算机设备及存储介质 | |
CN104850499A (zh) | 基带软件的自动化测试方法及装置 | |
CN107193730A (zh) | 一种自动化的接口测试方法 | |
CN104516809A (zh) | 一种自动化测试系统及方法 | |
CN110198327B (zh) | 一种数据传输方法及相关设备 | |
CN109101423A (zh) | 一种基于服务端日志回放的自动化测试方法 | |
CN112131126A (zh) | 测试环境的切换方法及装置 | |
CN102291274A (zh) | 一种实现网络测试仪表自动适配的系统及方法 | |
CN115686540A (zh) | 基于鸿蒙系统的rpa控制方法及系统 | |
CN109992509A (zh) | 测试用例的自动化执行方法、装置、电子设备 | |
CN104765792B (zh) | 一种维度数据存储的方法、装置及系统 | |
CN112671878B (zh) | 一种区块链的信息订阅方法、装置、服务器和存储介质 | |
CN110347976A (zh) | 快速导出设备数据模型的方法、系统、装置和存储介质 | |
CN113672674A (zh) | 一种自动编排业务流的方法、电子装置和存储介质 | |
CN112965912A (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 |