兼容性测试方法及装置与流程

文档序号:11276196阅读:262来源:国知局
兼容性测试方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种兼容性测试方法及装置。



背景技术:

当前,软件已经成为人们工作和生活中不可获缺的一部分,但同时有相当一部分软件的功能不健全,因此为了优化软件,常常需要对旧版本软件进行升级得到新版本软件,例如对旧版本软件中的用于对外提供服务的接口的内部处理逻辑进行功能性扩展,而得到新版本软件;当对旧版本软件中的用于对外提供服务的接口的内部处理逻辑进行功能性扩展而得到新版本软件之后,为了保证同时对旧版本软件的支持,在新版本软件发布之后,会存在新版本软件和旧版本软件共存的情况。

然而,新版本软件和旧版本软件之间的兼容性问题一直是一个备受关注的问题。因此,在每次发布新版本软件之前,需要对新版本软件和旧版本软件之间的兼容性进行测试,测试结果是新版本软件是否能发布的主要决定因素。

例如,假设旧版本软件b包括2个对外提供服务的接口,分别为接口1和接口2,当对旧版本软件b的接口1和接口2的内部处理逻辑进行功能性扩展后,得到新版本软件b,新版本软件b也包括对外提供服务的接口1和接口2,但是新版本软件b的接口1与旧版本软件b的接口1不同,以及新版本软件b的接口2与旧版本软件b的接口2不同。为了保证同时对旧版本软件b支持,在新版本软件b发布之后,新版本软件b与旧版本软件b共存,如此,新版本软件b的接口1和接口2与旧版本软件b的接口1和接口2也共存。

当软件a需要向软件b请求服务时,软件a需要先后调用软件b的接口1和接口2;当软件a调用软件b的接口1和接口2时,一般都采用软负载模式,由于新版本软件b的接口1和接口2与旧版本软件b的接口1和接口2共存,因此此时会出现4种调用情况:先后调用新版本软件b的接口1和旧版本软件b的接口2;先后调用旧版本软件b的接口1和新版本软件b的接口2;先后调用新版本软件b的接口1和新版本软件b的接口2;以及先后调用旧版本软件b的接口1和旧版本软件b的接口2。

此时,必须保证新版本软件的接口与旧版本软件的接口之间能够相互兼容,也即,需要保证先后调用新版本软件b的接口1和旧版本软件b的接口2能够成功,以及需要保证先后调用旧版本软件b的接口1和新版本软件b的接口2能够成功,否则会导致请求服务失败。

因此,在新版本软件b发布之前,需要对新版本软件b的接口1和接口2与旧版本软件b的接口1和接口2进行兼容性测试。

在现有技术中,当需要进行兼容性测试时,需要在软件a和软件b之间搭建一个负载均衡服务器,控制软件a调用软件b的接口1和接口2,首先软件a需要向负载均衡服务器发送调用软件b的接口1的接口1调用请求,由于负载均衡服务器的随机特性,会将接口1调用请求随机指向新版本软件b的接口1或旧版本软件b的接口1,以实现软件a调用软件b的接口1。之后软件a需要向负载均衡服务器发送调用软件b的接口2的接口2调用请求,由于负载均衡服务器的随机特性,会将调用接口2请求随机指向新版本软件b的接口2或旧版本软件b的接口2,以实现软件a调用软件b的接口2。

然而,发明人发现,现有技术中需要搭载负载均衡服务器,导致测试的硬件成本较高。



技术实现要素:

为克服相关技术中存在的问题,本发明提供一种兼容性测试方法及装置。

根据本发明实施例的第一方面,提供一种兼容性测试方法,所述方法包括:

当需要对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试时,获取预设版本标识列表;所述预设版本标识列表包括多条记录,所述多条记录是将当前每一个已发布版本的版本标识分别与一个待发布版本的版本标识进行排列组合得到的;每一条记录都按先后顺序存储了两个不同版本的版本标识;

对于所述预设版本标识列表中的每一条所述记录,先调用所述记录中的排序在前的版本标识对应的版本中的先调用接口,再调用所述记录中的排序在后的版本标识对应的版本中的后调用接口。

进一步地,所述先调用所述记录中的排序在前的版本标识对应的版本中的先调用接口,再调用所述记录中的排序在后的版本标识对应的版本中的后调用接口之后,还包括:

检测是否成功调用每一条记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口;

如果成功调用所述预设版本标识列表中的每一条记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口,则确定所述先调用接口与所述后调用接口之间兼容;

如果未成功调用所述预设版本标识列表中的至少一条记录中的排序在前的版本标识对应的版本中的先调用接口或排序在后的版本标识对应的版本中的后调用接口,则确定所述 先调用接口与所述后调用接口之间不兼容。

进一步地,所述方法还包括:

获取当前所有已发布版本的版本标识;

将每一个已发布版本的版本标识分别与所述待发布版本的版本标识进行排列组合;得到多个版本标识组;版本标识组中包括两个不同的版本标识且版本标识组中包括的两个不同的版本标识之间具有先后顺序;

将每一个版本标识组中的两个不同的版本标识按照二者之间的先后顺序组成一条记录存储在所述预设版本标识列表中。

进一步地,所述方法还包括:

当需要对调用先后顺序相邻的先调用接口和后调用接口之间的兼容性进行测试时,判断当前的测试方法是否为预设兼容性测试方法;

如果当前的测试方法为预设兼容性测试方法,执行所述获取预设版本标识列表的步骤。

其中,所述判断当前的测试方法是否为预设兼容性测试方法,包括:

判断测试方法参数标志位中的参数是否为与所述预设兼容性测试方法相对应的参数;

当测试方法参数标志位中的参数为与所述预设兼容性测试方法相对应的参数时,确定当前的测试方法为预设兼容性测试方法;

当测试方法参数标志位中的参数为与所述预设兼容性测试方法相对应的参数时,确定当前的测试方法不为预设兼容性测试方法。

根据本发明实施例的第二方面,提供一种兼容性测试装置,所述装置包括:

第一获取模块,用于当需要对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试时,获取预设版本标识列表;所述预设版本标识列表包括多条记录,所述多条记录是将当前每一个已发布版本的版本标识分别与一个待发布版本的版本标识进行排列组合得到的;每一条记录都按先后顺序存储了两个不同版本的版本标识;

调用模块,用于对于所述预设版本标识列表中的每一条所述记录,先调用所述记录中的排序在前的版本标识对应的版本中的先调用接口,再调用所述记录中的排序在后的版本标识对应的版本中的后调用接口。

进一步地,所述装置还包括:

检测模块,用于检测是否成功调用每一条记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口;

第一确定模块,用于如果成功调用所述预设版本标识列表中的每一条记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口,则确定所述先调用接口与所述后调用接口之间兼容;

第二确定模块,用于如果未成功调用所述预设版本标识列表中的至少一条记录中的排序在前的版本标识对应的版本中的先调用接口或排序在后的版本标识对应的版本中的后调用接口,则确定所述先调用接口与所述后调用接口之间不兼容。

进一步地,所述装置还包括:

第二获取模块,用于获取当前所有已发布版本的版本标识;

组合模块,用于将每一个已发布版本的版本标识分别与所述待发布版本的版本标识进行排列组合;得到多个版本标识组;版本标识组中包括两个不同的版本标识且版本标识组中包括的两个不同的版本标识之间具有先后顺序;

存储模块,用于将每一个版本标识组中的两个不同的版本标识按照二者之间的先后顺序组成一条记录并存储在所述预设版本标识列表中。

进一步地,所述装置还包括:

判断模块,用于当需要对调用先后顺序相邻的先调用接口和后调用接口之间的兼容性进行测试时,判断当前的测试方法是否为预设兼容性测试方法;

所述第一获取模块还用于如果当前的测试方法为预设兼容性测试方法,获取预设版本标识列表。

其中,所述判断模块包括:

判断单元,用于判断测试方法参数标志位中的参数是否为与所述预设兼容性测试方法相对应的参数;

第一确定单元,用于当测试方法参数标志位中的参数为与所述预设兼容性测试方法相对应的参数时,确定当前的测试方法为预设兼容性测试方法;

第二确定单元,用于当测试方法参数标志位中的参数为与所述预设兼容性测试方法相对应的参数时,确定当前的测试方法不为预设兼容性测试方法。

本发明的实施例提供的技术方案可以包括以下有益效果:

在现有技术中,由于负载均衡服务器的随机特性,无法将调用请求精确指向新版本软件b的接口,以及无法将调用请求精确指向旧版本软件b的接口,只能将调用请求随机指向新版本软件b的接口或旧版本软件b的接口。

这样,当软件a将负载均衡服务器依次发送接口1调用请求和接口2调用请求后,则调用链路不一定是新版本软件b的接口1→旧版本软件的接口2,或是旧版本软件b的接口1→新版本软件的接口2;也可能是新版本软件b的接口1→新版本软件的接口2,或是旧版本软件b的接口1→旧版本软件的接口2,如果调用链路是新版本软件b的接口1→新版本软件的接口2,或是旧版本软件b的接口1→旧版本软件的接口2,则本次测试没有达到测试目的,为无效测试,需要重新测试,直至在一次测试时调用链路为旧版本软件b的接口1→新版本软件的接口2,以及在另一次测试时调用链路为新版本软件b的接口1→旧版本软件的接口2为止。这样虽然测试成功了,但是整个流程中可能会出现很多次无效测试,这就会花费很多的时间,从而导致测试效率较低。

在本发明实施例中,事先会获取软件当前所有已发布版本的版本标识。将每一个已发布版本的版本标识分别与待发布版本的版本标识进行排列组合;得到多个版本标识组;该多个版本标识组的个数等于已发布版本的版本标识的个数的两倍。每一个版本标识组包括两个不同的版本标识,且这两个不同的版本标识之间具有先后顺序。将每一个版本标识组中的两个不同的版本标识按照二者之间的先后顺序组成一条记录存储在所述预设版本标识列表中。

当需要对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试时,获取预设版本标识列表;对于预设版本标识列表中的任意一条记录,该记录中包括两个不同的版本标识,且这两个不同的版本标识之间具有先后顺序,可以先调用该记录中的排序在前的版本标识对应的版本中的先调用接口,然后再调用在记录中的排序在后的版本标识对应的版本中的后调用接口。对于预设版本标识列表中的其他每一条记录,均执行上述操作。如此在所有已发布版本和一个待发布版本中实现对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试。

整个测试过程中无需搭载负载均衡服务器,因此,相对于现有技术,本发明实施例可以降低测试的硬件成本。

其次,由于预设版本标识列表包括多条记录,该多条记录是将当前每一个已发布版本的版本标识分别与一个待发布版本的版本标识进行排列组合得到的;每一条记录都按先后顺序存储了两个不同版本的版本标识。如此,本发明实施例无需重复多次测试就能覆盖一个已发布版本和该待发布版本的链路,因此,相对于现有技术,本发明实施例可以提高测试效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种兼容性测试方法的流程图;

图2是根据一示例性实施例示出的一种兼容性测试方法的流程图;

图3是根据一示例性实施例示出的一种兼容性测试方法的流程图;

图4是根据一示例性实施例示出的一种兼容性测试装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种兼容性测试方法的流程图,如图1所示,该方法包括以下步骤。

当需要对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试时,在步骤s101中,获取预设版本标识列表;

预设版本标识列表包括多条记录,该多条记录是将当前每一个已发布版本的版本标识分别与一个待发布版本的版本标识进行排列组合得到的;每一条记录都按先后顺序存储了两个不同版本的版本标识。

在所有已发布版本中,任意两个已发布版本的版本标识不同,且待发布版本的版本标识与每一个已发布版本的版本标识都不同。

其中,对于某一软件,技术人员从开发出该软件起,为了优化软件,会不断对该软件升级,升级一次就得到一个版本的软件,当升级多次后就会得到多个版本的软件,该多个版本的软件同时共存。软件的每个版本都有版本标识,且每个版本的版本标识都不同。例如,原始版本的版本标识为v1.0,对原始版本升级一次得到一个版本,且版本标识为v2.0,对版本标识为v2.0对应的版本升级一次得到一个版本,且版本标识为v3.0等等。

在本发明实施例中,事先会获取软件当前所有已发布版本的版本标识。将每一个已发布版本的版本标识分别与待发布版本的版本标识进行排列组合;得到多个版本标识组;得到的多个版本标识组的个数等于已发布版本的版本标识的个数的两倍。每一个版本标识组 都包括两个不同的版本标识,且每一个版本表示组包括的两个不同的版本标识之间具有先后顺序。之后将每一个版本标识组中的两个不同的版本标识按照二者之间的先后顺序组成一条记录并存储在预设版本标识列表中。

其中,对于任意一个已发布版本的版本标识,在该多个版本标识组中,仅有两个版本标识组中包括该已发布版本的版本标识;这两个版本标识组中包括的版本标识相同,均为该已发布版本的版本标识和待发布版本的版本标识;但这两个版本标识组中的两个版本标识之间的先后顺序不同。其中,一个版本标识组中的顺序在前的版本标识为待发布版本的版本标识,顺序在后的版本标识为该已发布版本的版本标识;另一个版本标识组中的顺序在前的版本标识为该已发布版本的版本标识,顺序在后的版本标识为待发布版本的版本标识。对于其他每一个已发布版本的版本标识,同样如此。

例如,假设已发布版本的版本标识分别为v1.0和v2.0,待发布版本的版本标识为v3.0,将版本标识v1.0与版本标识v3.0进行排列组合,得到两个版本标识组,分别为{v1.0v3.0}和{v3.0v1.0}。在版本标识组{v1.0v3.0}中,版本标识v1.0为顺序在前的版本标识,版本标识v3.0为顺序在后的版本标识,在版本标识组{v3.0v1.0}中,版本标识v3.0为顺序在前的版本标识,版本标识v1.0为顺序在后的版本标识。

将版本标识v2.0与版本标识v3.0进行排列组合,得到两个版本标识组,分别为{v2.0v3.0}和{v3.0v2.0}。在版本标识组{v2.0v3.0}中,版本标识v2.0为顺序在前的版本标识,版本标识v3.0为顺序在后的版本标识,在版本标识组{v3.0v2.0}中,版本标识v3.0为顺序在前的版本标识,版本标识v2.0为顺序在后的版本标识。

将这四个版本标识组中的每一个版本标识组中的两个不同的版本标识按照二者之间的先后顺序组成一条记录并存储在预设版本标识列表中,预设版本标识列表可以如下表1所示。

表1

一般情况下,一个软件具有多个用于对外提供服务的接口,且该多个接口之间具有先后调用顺序。当其他软件需要向该一个软件请求服务时,该其他软件需要先后调用该一个软件的该多个接口中的每一个接口,且在调用的过程中需要按照该多个接口之间的先后调用顺序依次调用。对于调用顺序相邻的任意两个接口,调用顺序在前的接口为先调用接口, 调用顺序在后的接口为后调用接口。

例如,假设软件b有3个接口,分别为接口1、接口2和接口3,且接口1、接口2和接口3之间的先后调用顺序为接口1→接口2→接口3。当软件a需要向软件b请求服务时,软件a需要先调用软件b的接口1,在调用软件b的接口2,然后调用软件b的接口3。在调用顺序相邻的接口1和接口2中,调用顺序在前的接口为接口1,调用顺序在后的接口为接口2,则接口1为先调用接口,接口2为后调用接口。以及,在调用顺序相邻的接口2和接口3中,调用顺序在前的接口为接口2,调用顺序在后的接口为接口3,则接口2为先调用接口,接口3为后调用接口。

在步骤s102中,对于预设版本标识列表中的每一条记录,先调用该记录中的排序在前的版本标识对应的版本中的先调用接口,然后再调用该记录中的排序在后的版本标识对应的版本中的后调用接口。

对于预设版本标识列表中的任意一条记录,该记录中包括两个不同的版本标识,且这两个不同的版本标识之间具有先后顺序,可以先调用该记录中的排序在前的版本标识对应的版本中的先调用接口,然后再调用在记录中的排序在后的版本标识对应的版本中的后调用接口。对于预设版本标识列表中的其他每一条记录,均执行上述操作。

在现有技术中,由于负载均衡服务器的随机特性,无法将调用请求精确指向新版本软件b的接口,以及无法将调用请求精确指向旧版本软件b的接口,只能将调用请求随机指向新版本软件b的接口或旧版本软件b的接口。

这样,当软件a将负载均衡服务器依次发送接口1调用请求和接口2调用请求后,则调用链路不一定是新版本软件b的接口1→旧版本软件的接口2,或是旧版本软件b的接口1→新版本软件的接口2;也可能是新版本软件b的接口1→新版本软件的接口2,或是旧版本软件b的接口1→旧版本软件的接口2,如果调用链路是新版本软件b的接口1→新版本软件的接口2,或是旧版本软件b的接口1→旧版本软件的接口2,则本次测试没有达到测试目的,为无效测试,需要重新测试,直至在一次测试时调用链路为旧版本软件b的接口1→新版本软件的接口2,以及在另一次测试时调用链路为新版本软件b的接口1→旧版本软件的接口2为止。这样虽然测试成功了,但是整个流程中可能会出现很多次无效测试,这就会花费很多的时间,从而导致测试效率较低。

在本发明实施例中,事先会获取软件当前所有已发布版本的版本标识。将每一个已发布版本的版本标识分别与待发布版本的版本标识进行排列组合;得到多个版本标识组;该多个版本标识组的个数等于已发布版本的版本标识的个数的两倍。每一个版本标识组包括两个不同的版本标识,且这两个不同的版本标识之间具有先后顺序。将每一个版本标识组中的两个不同的版本标识按照二者之间的先后顺序组成一条记录存储在所述预设版本标识 列表中。

当需要对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试时,获取预设版本标识列表;对于预设版本标识列表中的任意一条记录,该记录中包括两个不同的版本标识,且这两个不同的版本标识之间具有先后顺序,可以先调用该记录中的排序在前的版本标识对应的版本中的先调用接口,然后再调用在记录中的排序在后的版本标识对应的版本中的后调用接口。对于预设版本标识列表中的其他每一条记录,均执行上述操作。如此在所有已发布版本和一个待发布版本中实现对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试。

整个测试过程中无需搭载负载均衡服务器,因此,相对于现有技术,本发明实施例可以降低测试的硬件成本。

其次,由于预设版本标识列表包括多条记录,该多条记录是将当前每一个已发布版本的版本标识分别与一个待发布版本的版本标识进行排列组合得到的;每一条记录都按先后顺序存储了两个不同版本的版本标识。如此,本发明实施例无需重复多次测试就能覆盖一个已发布版本和该待发布版本的链路,因此,相对于现有技术,本发明实施例可以提高测试效率。

进一步地,当执行完步骤s102之后,需要根据调用结果确定待发布版本与所有已发布版本之间是否兼容。

因此,在本发明另一实施例中,参见图2,在步骤s102之后还包括:

在步骤s201中,检测是否成功调用每一条记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口;

具体地,对于预设版本标识列表中的任意一条记录,判断是否成功调用该记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口;对于预设版本标识列表中的其他每一条记录,均执行上述操作。

如果成功调用预设版本标识列表中的每一条记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口,在步骤s202中,确定先调用接口与后调用接口之间兼容;

对于预设版本标识列表中的任意一条记录,如果成功调用该记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口;且如果对于预设版本标识列表中的其他每一条记录同样如此的话,则确定先调用接口与后调用接口之间兼容。

进一步地,当确定出先调用接口与后调用接口之间兼容之后,可以提示技术人员先调用接口与后调用接口之间兼容,以使技术人员在获知先调用接口与后调用接口之间兼容之后及时发布待发布版本。

如果未成功调用预设版本标识列表中的至少一条记录中的排序在前的版本标识对应的版本中的先调用接口或排序在后的版本标识对应的版本中的后调用接口,在步骤s203中,确定先调用接口与后调用接口之间不兼容。

在预设版本标识列表中只要存在一条记录,未成功调用该记录中的排序在前的版本标识对应的版本中的先调用接口或排序在后的版本标识对应的版本中的后调用接口,则确定先调用接口与后调用接口之间不兼容。

进一步地,当确定出先调用接口与后调用接口之间不兼容后,可以向技术人员提示先调用接口与后调用接口之间不兼容,以使技术人员在获知先调用接口与后调用接口之间不兼容之后,立即根据该记录中的已发布版本对待发布版本进行优化,直至先调用接口与后调用接口之间兼容为止。

在本发明实施例中,对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试的测试方法有很多种,其中,前述实施例是对其中的一种测试方法进行列举,为了兼顾其他测试方法。在本发明又一实施例中,参见图3,该方法还包括:

当需要对调用先后顺序相邻的先调用接口和后调用接口之间的兼容性进行测试时,在步骤s301中,判断当前的测试方法是否为预设兼容性测试方法;

具体地,本步骤可以通过如下流程实现:包括:

3011、判断测试方法参数标志位中的参数是否为与预设兼容性测试方法相对应的参数;

在本发明实施例中,技术人员事先在本地会新增一个测试方法参数标志位,测试方法参数标志位中用于填入测试方法对应的参数;且不同的测试方法对应的参数不同。

当技术人员需要服务器对调用先后顺序相邻的先调用接口和后调用接口之间的兼容性按照某一测试方法进行测试时,技术人员需要在测试方法参数标志位中填入与该某一测试方法相对应的参数。

这样,当之后服务器需要对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试时,就会获取测试方法参数标志位中的参数,由于该参数为与该某一测试方法相对应的参数,因此,服务器就会按照该某一测试方法对调用先后顺序相邻的先调用接口和后调用接口之间的兼容性进行测试。

3012、当测试方法参数标志位中的参数为与预设兼容性测试方法相对应的参数时,确定当前的测试方法为预设兼容性测试方法;

其中,当确定出当前的测试方法为预设兼容性测试方法时,执行步骤s101中的获取预设版本标识列表的步骤。

3013、当测试方法参数标志位中的参数为与预设兼容性测试方法相对应的参数时,确定当前的测试方法不为预设兼容性测试方法。

其中,当测试方法参数标志位中的参数不为与预设兼容性测试方法相对应的参数时,按照测试方法参数标志位中的参数对应的测试方法对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试。

如果当前的测试方法为预设兼容性测试方法,执行步骤s101:获取预设版本标识列表。

图4是根据一示例性实施例示出的一种兼容性测试装置的框图。参照图4,该装置包括:

第一获取模块11,用于当需要对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试时,获取预设版本标识列表;所述预设版本标识列表包括多条记录,所述多条记录是将当前每一个已发布版本的版本标识分别与一个待发布版本的版本标识进行排列组合得到的;每一条记录都按先后顺序存储了两个不同版本的版本标识;

调用模块12,用于对于所述预设版本标识列表中的每一条所述记录,先调用所述记录中的排序在前的版本标识对应的版本中的先调用接口,再调用所述记录中的排序在后的版本标识对应的版本中的后调用接口。

进一步地,所述装置还包括:

检测模块,用于检测是否成功调用每一条记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口;

第一确定模块,用于如果成功调用所述预设版本标识列表中的每一条记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口,则确定所述先调用接口与所述后调用接口之间兼容;

第二确定模块,用于如果未成功调用所述预设版本标识列表中的至少一条记录中的排序在前的版本标识对应的版本中的先调用接口或排序在后的版本标识对应的版本中的后调用接口,则确定所述先调用接口与所述后调用接口之间不兼容。

进一步地,所述装置还包括:

第二获取模块,用于获取当前所有已发布版本的版本标识;

组合模块,用于将每一个已发布版本的版本标识分别与所述待发布版本的版本标识进行排列组合;得到多个版本标识组;版本标识组中包括两个不同的版本标识且版本标识组中包括的两个不同的版本标识之间具有先后顺序;

存储模块,用于将每一个版本标识组中的两个不同的版本标识按照二者之间的先后顺序组成一条记录存储在所述预设版本标识列表中。

进一步地,所述装置还包括:

判断模块,用于当需要对调用先后顺序相邻的先调用接口和后调用接口之间的兼容性进行测试时,判断当前的测试方法是否为预设兼容性测试方法;

所述第一获取模块11还用于如果当前的测试方法为预设兼容性测试方法,获取预设版本标识列表。

其中,所述判断模块包括:

判断单元,用于判断测试方法参数标志位中的参数是否为与所述预设兼容性测试方法相对应的参数;

第一确定单元,用于当测试方法参数标志位中的参数为与所述预设兼容性测试方法相对应的参数时,确定当前的测试方法为预设兼容性测试方法;

第二确定单元,用于当测试方法参数标志位中的参数为与所述预设兼容性测试方法相对应的参数时,确定当前的测试方法不为预设兼容性测试方法。

在现有技术中,由于负载均衡服务器的随机特性,无法将调用请求精确指向新版本软件b的接口,以及无法将调用请求精确指向旧版本软件b的接口,只能将调用请求随机指向新版本软件b的接口或旧版本软件b的接口。

这样,当软件a将负载均衡服务器依次发送接口1调用请求和接口2调用请求后,则调用链路不一定是新版本软件b的接口1→旧版本软件的接口2,或是旧版本软件b的接口1→新版本软件的接口2;也可能是新版本软件b的接口1→新版本软件的接口2,或是旧版本软件b的接口1→旧版本软件的接口2,如果调用链路是新版本软件b的接口1→新版本软件的接口2,或是旧版本软件b的接口1→旧版本软件的接口2,则本次测试没有达到测试目的,为无效测试,需要重新测试,直至在一次测试时调用链路为旧版本软件b的接口1→新版本软件的接口2,以及在另一次测试时调用链路为新版本软件b的接口1→旧版本软件的接口2为止。这样虽然测试成功了,但是整个流程中可能会出现很多次无效测试,这就会花费很多的时间,从而导致测试效率较低。

在本发明实施例中,事先会获取软件当前所有已发布版本的版本标识。将每一个已发布版本的版本标识分别与待发布版本的版本标识进行排列组合;得到多个版本标识组;该 多个版本标识组的个数等于已发布版本的版本标识的个数的两倍。每一个版本标识组包括两个不同的版本标识,且这两个不同的版本标识之间具有先后顺序。将每一个版本标识组中的两个不同的版本标识按照二者之间的先后顺序组成一条记录存储在所述预设版本标识列表中。

当需要对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试时,获取预设版本标识列表;对于预设版本标识列表中的任意一条记录,该记录中包括两个不同的版本标识,且这两个不同的版本标识之间具有先后顺序,可以先调用该记录中的排序在前的版本标识对应的版本中的先调用接口,然后再调用在记录中的排序在后的版本标识对应的版本中的后调用接口。对于预设版本标识列表中的其他每一条记录,均执行上述操作。如此在所有已发布版本和一个待发布版本中实现对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试。

整个测试过程中无需搭载负载均衡服务器,因此,相对于现有技术,本发明实施例可以降低测试的硬件成本。

其次,由于预设版本标识列表包括多条记录,该多条记录是将当前每一个已发布版本的版本标识分别与一个待发布版本的版本标识进行排列组合得到的;每一条记录都按先后顺序存储了两个不同版本的版本标识。如此,本发明实施例无需重复多次测试就能覆盖一个已发布版本和该待发布版本的链路,因此,相对于现有技术,本发明实施例可以提高测试效率。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1