发明内容
针对现有技术中的问题,本发明提供一种接口自动化测试优化方法、系统、电子设备和存储介质,能够有效且高效地提高自动化用例执行的时间和效率,提高软件测试的回归效率,并适用于大规模的集成环境,能够有效提高接口自动化测试的稳定性。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种接口自动化测试优化方法,所述接口自动化测试优化方法包括:
在进行目标程序的接口自动化测试前,构造用于测试用例时的测试数据;
以及,在目标程序的接口自动化测试中,将不同的代码分支部署在不同的测试环境中、构建与上游系统中接口对应的测试接口;
下游系统根据所述测试接口进行数据构造,若检测到数据构造失败,则选取对应的所述测试数据作为所述下游系统的数据构造结果。
进一步地,所述接口自动化测试优化方法还包括:
在目标程序的接口自动化测试中,检测是否已生成动态监测数据;
若是,则进行测试用例;
否则,每隔第一时间后重新检测,以及,若所述测试用例在第一等待超时时间后仍未生成成功,则停止当前测试用例。
进一步地,所述在目标程序的接口自动化测试中,将不同的代码分支部署在不同的测试环境中、构建与上游系统中接口对应的测试接口,包括:
在目标程序的接口自动化测试中,
将不同的代码分支根据分支类型进行划分,并将划分后的各类代码分支分别部署在不同的测试环境中,其中,所述分支类型包括主干分支和开发分支;
以及,若上游系统中存在调用其他系统的复杂接口的第一接口,且所述第一接口无法用于下游系统的数据构造,则构建与所述第一接口对应的测试接口。
进一步地,所述接口自动化测试优化方法还包括:
对依赖外部系统的流程执行后的接口进行可测性改造,并对与接口自动化测试中的测试流程和测试系统无关的接口进行删减和简化,并使得简化后接口的接口逻辑与简化前相同。
第二方面,本发明提供一种接口自动化测试优化系统,所述接口自动化测试优化系统包括:
测试数据构造模块,用于在进行目标程序的接口自动化测试前,构造用于测试用例时的测试数据;
自动化测试优化模块,用于在目标程序的接口自动化测试中,将不同的代码分支部署在不同的测试环境中、构建与上游系统中接口对应的测试接口;
数据构造优化模块,用于下游系统根据所述测试接口进行数据构造,若检测到数据构造失败,则选取对应的所述测试数据作为所述下游系统的数据构造结果。
进一步地,所述接口自动化测试优化系统还包括:
动态监测数据生成模块,用于在目标程序的接口自动化测试中,检测是否已生成动态监测数据;
若是,则进行测试用例;
否则,每隔第一时间后重新检测,以及,若所述测试用例在第一等待超时时间后仍未生成成功,则停止当前测试用例。
进一步地,所述自动化测试优化模块包括:
测试环境部署单元,用于在目标程序的接口自动化测试中,将不同的代码分支根据分支类型进行划分,并将划分后的各类代码分支分别部署在不同的测试环境中,其中,所述分支类型包括主干分支和开发分支;
测试接口构建单元,用于在目标程序的接口自动化测试中,若上游系统中存在调用其他系统的复杂接口的第一接口,且所述第一接口无法用于下游系统的数据构造,则构建与所述第一接口对应的测试接口。
进一步地,所述接口自动化测试优化系统还包括:
接口可测性改造模块,用于对依赖外部系统的流程执行后的接口进行可测性改造,并对与接口自动化测试中的测试流程和测试系统无关的接口进行删减和简化,并使得简化后接口的接口逻辑与简化前相同。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述接口自动化测试优化方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述接口自动化测试优化方法的步骤。
由上述技术方案可知,本发明提供的一种接口自动化测试优化方法、系统、电子设备和存储介质,接口自动化测试优化方法包括:在进行目标程序的接口自动化测试前,构造用于测试用例时的测试数据;以及,在目标程序的接口自动化测试中,将不同的代码分支部署在不同的测试环境中、构建与上游系统中接口对应的测试接口;下游系统根据所述测试接口进行数据构造,若检测到数据构造失败,则选取对应的所述测试数据作为所述下游系统的数据构造结果。本发明能够有效且高效地提高自动化用例执行的时间和效率,提高软件测试的回归效率,并适用于大规模的集成环境,能够有效提高接口自动化测试的稳定性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例一提供一种接口自动化测试优化方法的具体实施方式,参见图1,所述接口自动化测试优化方法具体包括如下内容:
步骤100:在进行目标程序的接口自动化测试前,构造用于测试用例时的测试数据。
步骤200:在目标程序的接口自动化测试中,将不同的代码分支部署在不同的测试环境中、构建与上游系统中接口对应的测试接口。
在步骤200中,接口自动化测试优化系统在目标程序的接口自动化测试中,将不同的代码分支根据分支类型进行划分,并将划分后的各类代码分支分别部署在不同的测试环境中,其中,所述分支类型包括主干分支和开发分支;以及,若上游系统中存在调用其他系统的复杂接口的第一接口,且所述第一接口无法用于下游系统的数据构造,则构建与所述第一接口对应的测试接口。
步骤300:下游系统根据所述测试接口进行数据构造,若检测到数据构造失败,则选取对应的所述测试数据作为所述下游系统的数据构造结果。
从上述描述可知,本发明的实施例提供的接口自动化测试优化方法,能够有效且高效地提高自动化用例执行的时间和效率,提高软件测试的回归效率,并适用于大规模的集成环境,能够有效提高接口自动化测试的稳定性。
在一种具体实施方式中,参见图2,本发明的接口自动化测试优化方法还包括步骤401至403,步骤401至403具体包括如下内容:
步骤401:在目标程序的接口自动化测试中,检测是否已生成动态监测数据;
若是,则执行步骤402:进行测试用例;
否则执行步骤403:每隔第一时间后重新检测,以及,若所述测试用例在第一等待超时时间后仍未生成成功,则停止当前测试用例。
在一种具体实施方式中,参见图3,本发明的接口自动化测试优化方法还包括步骤500,步骤500具体包括如下内容:
步骤500:对依赖外部系统的流程执行后的接口进行可测性改造,并对与接口自动化测试中的测试流程和测试系统无关的接口进行删减和简化,并使得简化后接口的接口逻辑与简化前相同。
从上述描述可知,本发明的实施例提供的接口自动化测试优化方法,能够有效且高效地提高自动化用例执行的时间和效率,提高软件测试的回归效率,并适用于大规模的集成环境,能够有效提高接口自动化测试的稳定性。
为进一步的说明本方案,本发明还提供一种接口自动化测试优化方法的具体应用实例,具体包括如下内容:
1)环境和分支隔离
自动化用例执行时,如果多分支都部署到同一个环境中,由于代码提交后会自动部署构建,通常会出现某分支重启环境导致其他分支用例执行失败的情况。
针对此类情况,可采用主干分支和开发分支分别部署到不同的环境,执行时环境互不干扰、数据互不影响。这样就能提高多分支的自动化用例执行的稳定性。
2)减少接口依赖
如果上游系统的某些接口调用了多个其他系统的复杂接口(如文件存储等),这些接口特别耗时或者不稳定,且这些接口调用对于下游的数据构造无太大意义,此时就可复用此上游接口构造一个已去掉无关系统的测试接口,提供给下游使用,该测试接口关键逻辑实现与原接口无异。
下游系统用改造后的测试接口构造数据时,由于减少了多个低效接口,可在执行时间和稳定性得到很大提高,提高数据构造的效率。
3)捕捉数据构造异常,实现数据复用;
由于上游系统环境存在不稳定的问题,下游系统依赖上游系统构造数据时经常会出现系统异常,针对这种情况,可在数据构造部分主动捕捉此类系统异常,且在多个步骤中分别设置不同的异常捕获。如发现环境异常导致数据构造失败,则从现有系统中主动挑选一条符合该测试用例的数据使用。
采用该方法可解决环境依赖中上游系统环境不稳定的问题,且能实现现有数据的复用,大大提高了自动化用例的执行稳定性。
4)数据静态获取改为动态等待,设置超时
有些测试场景中,数据是异步事件生成的,如果设置固定的等待时间,则会因为环境执行时间等因素导致获取数据失败,继而导致用例执行失败。
针对此情况,可将静态等待数据生成改为动态监测数据生成,如已生成,则用例顺利进行,如还未生成,则等待一个较小的时间单位后(如1秒),继续监测,如此反复直到数据生成。并且可设置一个最大的等待超时时间,如超过了此时间范围,则直接退出,用例失败。
此方法可解决异步事件生成的数据在固定周期内获取不到数据,用例执行不稳定的问题。
5)杜绝固定数据,实现各分支、环境case可复用
在自动化用例中,有时会把数据在代码中写成某固定值,虽然在特定分支、特定环境上执行没有问题,但当合并到主干分支或者其他环境的时候,就会出现数据和环境不匹配、数据不存在等问题,导致用例执行失败。
所以在自动化用例编写时,应严格杜绝固定数据,可在用例执行前主动构造此类数据或固化成系统配置项,这样就可提高在多环境、多分支上执行的稳定性,解决切换分支和环境后用例失败的问题。
5)可测性改造:模块化开关、功能接口。
对于某些用例时,依赖外部系统的流程执行后的接口,且这些流程对于测试用例本身关心的逻辑无关,则可对此接口进行可测性改造,对无关接口、流程、系统依赖进行删减、简化,保证主要逻辑与原接口一致,这样就可解决系统依赖的稳定性问题,且因为减少了很多步骤,提高了执行效率。
从上述描述可知,本发明的实施例提供的接口自动化测试优化方法,提出了软件研发过程中接口自动化测试的优化方案及具体的方法实现,利用此类方案,可解决自动化用例设计、执行时遇到的环境依赖、数据构造异常等带来的执行时间长、稳定性低的问题。此方案适用于单模块测试、集成环境测试等多种系统自动化测试场景,具有普遍适用性。
本发明的实施例二提供一种能够实现上述接口自动化测试优化方法中全部步骤的接口自动化测试优化系统的具体实施方式,参见图4,所述接口自动化测试优化方法具体包括如下内容:
测试数据构造模块10,用于在进行目标程序的接口自动化测试前,构造用于测试用例时的测试数据;
自动化测试优化模块20,用于在目标程序的接口自动化测试中,将不同的代码分支部署在不同的测试环境中、构建与上游系统中接口对应的测试接口;
其中,所述自动化测试优化模块20包括:
测试环境部署单元,用于在目标程序的接口自动化测试中,将不同的代码分支根据分支类型进行划分,并将划分后的各类代码分支分别部署在不同的测试环境中,其中,所述分支类型包括主干分支和开发分支;
测试接口构建单元,用于在目标程序的接口自动化测试中,若上游系统中存在调用其他系统的复杂接口的第一接口,且所述第一接口无法用于下游系统的数据构造,则构建与所述第一接口对应的测试接口。
数据构造优化模块30,用于下游系统根据所述测试接口进行数据构造,若检测到数据构造失败,则选取对应的所述测试数据作为所述下游系统的数据构造结果。
动态监测数据生成模块40,用于在目标程序的接口自动化测试中,检测是否已生成动态监测数据;
若是,则进行测试用例;
否则,每隔第一时间后重新检测,以及,若所述测试用例在第一等待超时时间后仍未生成成功,则停止当前测试用例。
接口可测性改造模块50,用于对依赖外部系统的流程执行后的接口进行可测性改造,并对与接口自动化测试中的测试流程和测试系统无关的接口进行删减和简化,并使得简化后接口的接口逻辑与简化前相同。
从上述描述可知,本发明的实施例提供的接口自动化测试优化系统,能够有效且高效地提高自动化用例执行的时间和效率,提高软件测试的回归效率,并适用于大规模的集成环境,能够有效提高接口自动化测试的稳定性。
本发明的实施例三提供能够实现上述接口自动化测试优化方法中全部步骤的一种电子设备的具体实施方式,参见图5,所述电子设备具体包括如下内容:
处理器(processor)601、存储器(memory)602、通信接口(CommunicationsInterface)603和总线604;
其中,所述处理器601、存储器602、通信接口603通过所述总线604完成相互间的通信;所述通信接口603用于实现各接口、上游系统及下游系统等之间的信息传输;
所述处理器601用于调用所述存储器602中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例一中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:在进行目标程序的接口自动化测试前,构造用于测试用例时的测试数据。
步骤200:在目标程序的接口自动化测试中,将不同的代码分支部署在不同的测试环境中、构建与上游系统中接口对应的测试接口。
在步骤200中,接口自动化测试优化系统在目标程序的接口自动化测试中,将不同的代码分支根据分支类型进行划分,并将划分后的各类代码分支分别部署在不同的测试环境中,其中,所述分支类型包括主干分支和开发分支;以及,若上游系统中存在调用其他系统的复杂接口的第一接口,且所述第一接口无法用于下游系统的数据构造,则构建与所述第一接口对应的测试接口。
步骤300:下游系统根据所述测试接口进行数据构造,若检测到数据构造失败,则选取对应的所述测试数据作为所述下游系统的数据构造结果。
从上述描述可知,本发明的实施例提供的电子设备,能够有效且高效地提高自动化用例执行的时间和效率,提高软件测试的回归效率,并适用于大规模的集成环境,能够有效提高接口自动化测试的稳定性。
本发明的实施例四提供能够实现上述接口自动化测试优化方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例一的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:在进行目标程序的接口自动化测试前,构造用于测试用例时的测试数据。
步骤200:在目标程序的接口自动化测试中,将不同的代码分支部署在不同的测试环境中、构建与上游系统中接口对应的测试接口。
在步骤200中,接口自动化测试优化系统在目标程序的接口自动化测试中,将不同的代码分支根据分支类型进行划分,并将划分后的各类代码分支分别部署在不同的测试环境中,其中,所述分支类型包括主干分支和开发分支;以及,若上游系统中存在调用其他系统的复杂接口的第一接口,且所述第一接口无法用于下游系统的数据构造,则构建与所述第一接口对应的测试接口。
步骤300:下游系统根据所述测试接口进行数据构造,若检测到数据构造失败,则选取对应的所述测试数据作为所述下游系统的数据构造结果。
从上述描述可知,本发明的实施例提供的计算机可读存储介质,能够有效且高效地提高自动化用例执行的时间和效率,提高软件测试的回归效率,并适用于大规模的集成环境,能够有效提高接口自动化测试的稳定性。
在本发明的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。