CN107203461B - 兼容性测试方法及装置 - Google Patents

兼容性测试方法及装置 Download PDF

Info

Publication number
CN107203461B
CN107203461B CN201610151139.5A CN201610151139A CN107203461B CN 107203461 B CN107203461 B CN 107203461B CN 201610151139 A CN201610151139 A CN 201610151139A CN 107203461 B CN107203461 B CN 107203461B
Authority
CN
China
Prior art keywords
version
interface
preset
calling
record
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
Application number
CN201610151139.5A
Other languages
English (en)
Other versions
CN107203461A (zh
Inventor
倪军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201610151139.5A priority Critical patent/CN107203461B/zh
Publication of CN107203461A publication Critical patent/CN107203461A/zh
Application granted granted Critical
Publication of CN107203461B publication Critical patent/CN107203461B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test 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)

Abstract

本发明实施例提供了一种兼容性测试方法及装置。当需要对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试时,获取预设版本标识列表;预设版本标识列表包括多条记录,该多条记录是将当前每一个已发布版本的版本标识分别与一个待发布版本的版本标识进行排列组合得到的;每一条记录都按先后顺序存储了两个不同版本的版本标识。然后对于预设版本标识列表中的每一条记录,先调用该记录中的排序在前的版本标识对应的版本中的先调用接口,然后再调用该记录中的排序在后的版本标识对应的版本中的后调用接口。整个测试过程中无需搭载负载均衡服务器,因此,本发明实施例可以降低测试的硬件成本。

Description

兼容性测试方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种兼容性测试方法及装置。
背景技术
当前,软件已经成为人们工作和生活中不可或缺的一部分,但同时有相当一部分软件的功能不健全,因此为了优化软件,常常需要对旧版本软件进行升级得到新版本软件,例如对旧版本软件中的用于对外提供服务的接口的内部处理逻辑进行功能性扩展,而得到新版本软件;当对旧版本软件中的用于对外提供服务的接口的内部处理逻辑进行功能性扩展而得到新版本软件之后,为了保证同时对旧版本软件的支持,在新版本软件发布之后,会存在新版本软件和旧版本软件共存的情况。
然而,新版本软件和旧版本软件之间的兼容性问题一直是一个备受关注的问题。因此,在每次发布新版本软件之前,需要对新版本软件和旧版本软件之间的兼容性进行测试,测试结果是新版本软件是否能发布的主要决定因素。
例如,假设旧版本软件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.0 v1.0}。在版本标识组{v1.0 v3.0}中,版本标识v1.0为顺序在前的版本标识,版本标识v3.0为顺序在后的版本标识,在版本标识组{v3.0 v1.0}中,版本标识v3.0为顺序在前的版本标识,版本标识v1.0为顺序在后的版本标识。
将版本标识v2.0与版本标识v3.0进行排列组合,得到两个版本标识组,分别为{v2.0 v3.0}和{v3.0 v2.0}。在版本标识组{v2.0 v3.0}中,版本标识v2.0为顺序在前的版本标识,版本标识v3.0为顺序在后的版本标识,在版本标识组{v3.0 v2.0}中,版本标识v3.0为顺序在前的版本标识,版本标识v2.0为顺序在后的版本标识。
将这四个版本标识组中的每一个版本标识组中的两个不同的版本标识按照二者之间的先后顺序组成一条记录并存储在预设版本标识列表中,预设版本标识列表可以如下表1所示。
表1
v1.0 v3.0
v3.0 v1.0
v2.0 v3.0
v3.0 v2.0
一般情况下,一个软件具有多个用于对外提供服务的接口,且该多个接口之间具有先后调用顺序。当其他软件需要向该一个软件请求服务时,该其他软件需要先后调用该一个软件的该多个接口中的每一个接口,且在调用的过程中需要按照该多个接口之间的先后调用顺序依次调用。对于调用顺序相邻的任意两个接口,调用顺序在前的接口为先调用接口,调用顺序在后的接口为后调用接口。
例如,假设软件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为止。这样虽然测试成功了,但是整个流程中可能会出现很多次无效测试,这就会花费很多的时间,从而导致测试效率较低。
在本发明实施例中,事先会获取软件当前所有已发布版本的版本标识。将每一个已发布版本的版本标识分别与待发布版本的版本标识进行排列组合;得到多个版本标识组;该多个版本标识组的个数等于已发布版本的版本标识的个数的两倍。每一个版本标识组包括两个不同的版本标识,且这两个不同的版本标识之间具有先后顺序。将每一个版本标识组中的两个不同的版本标识按照二者之间的先后顺序组成一条记录存储在所述预设版本标识列表中。
当需要对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试时,获取预设版本标识列表;对于预设版本标识列表中的任意一条记录,该记录中包括两个不同的版本标识,且这两个不同的版本标识之间具有先后顺序,可以先调用该记录中的排序在前的版本标识对应的版本中的先调用接口,然后再调用在记录中的排序在后的版本标识对应的版本中的后调用接口。对于预设版本标识列表中的其他每一条记录,均执行上述操作。如此在所有已发布版本和一个待发布版本中实现对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试。
整个测试过程中无需搭载负载均衡服务器,因此,相对于现有技术,本发明实施例可以降低测试的硬件成本。
其次,由于预设版本标识列表包括多条记录,该多条记录是将当前每一个已发布版本的版本标识分别与一个待发布版本的版本标识进行排列组合得到的;每一条记录都按先后顺序存储了两个不同版本的版本标识。如此,本发明实施例无需重复多次测试就能覆盖一个已发布版本和该待发布版本的链路,因此,相对于现有技术,本发明实施例可以提高测试效率。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (8)

1.一种兼容性测试方法,其特征在于,所述方法包括:
当需要对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试时,获取预设版本标识列表;所述预设版本标识列表包括多条记录,所述多条记录是将当前每一个已发布版本的版本标识分别与一个待发布版本的版本标识进行排列组合得到的;每一条记录都按先后顺序存储了两个不同版本的版本标识;
对于所述预设版本标识列表中的每一条所述记录,先调用所述记录中的排序在前的版本标识对应的版本中的先调用接口,再调用所述记录中的排序在后的版本标识对应的版本中的后调用接口;
所述先调用所述记录中的排序在前的版本标识对应的版本中的先调用接口,再调用所述记录中的排序在后的版本标识对应的版本中的后调用接口之后,还包括:
检测是否成功调用每一条记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口;
如果成功调用所述预设版本标识列表中的每一条记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口,则确定所述先调用接口与所述后调用接口之间兼容;
如果未成功调用所述预设版本标识列表中的至少一条记录中的排序在前的版本标识对应的版本中的先调用接口或排序在后的版本标识对应的版本中的后调用接口,则确定所述先调用接口与所述后调用接口之间不兼容。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取当前所有已发布版本的版本标识;
将每一个已发布版本的版本标识分别与所述待发布版本的版本标识进行排列组合;得到多个版本标识组;版本标识组中包括两个不同的版本标识且版本标识组中包括的两个不同的版本标识之间具有先后顺序;
将每一个版本标识组中的两个不同的版本标识按照二者之间的先后顺序组成一条记录并存储在所述预设版本标识列表中。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当需要对调用先后顺序相邻的先调用接口和后调用接口之间的兼容性进行测试时,判断当前的测试方法是否为预设兼容性测试方法;
如果当前的测试方法为预设兼容性测试方法,执行所述获取预设版本标识列表的步骤。
4.根据权利要求3所述的方法,其特征在于,所述判断当前的测试方法是否为预设兼容性测试方法,包括:
判断测试方法参数标志位中的参数是否为与所述预设兼容性测试方法相对应的参数;
当测试方法参数标志位中的参数为与所述预设兼容性测试方法相对应的参数时,确定当前的测试方法为预设兼容性测试方法;
当测试方法参数标志位中的参数不为与所述预设兼容性测试方法相对应的参数时,确定当前的测试方法不为预设兼容性测试方法。
5.一种兼容性测试装置,其特征在于,所述装置包括:
第一获取模块,用于当需要对调用先后顺序相邻的先调用接口与后调用接口之间的兼容性进行测试时,获取预设版本标识列表;所述预设版本标识列表包括多条记录,所述多条记录是将当前每一个已发布版本的版本标识分别与一个待发布版本的版本标识进行排列组合得到的;每一条记录都按先后顺序存储了两个不同版本的版本标识;
调用模块,用于对于所述预设版本标识列表中的每一条所述记录,先调用所述记录中的排序在前的版本标识对应的版本中的先调用接口,再调用所述记录中的排序在后的版本标识对应的版本中的后调用接口;
检测模块,用于检测是否成功调用每一条记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口;
第一确定模块,用于如果成功调用所述预设版本标识列表中的每一条记录中的排序在前的版本标识对应的版本中的先调用接口和排序在后的版本标识对应的版本中的后调用接口,则确定所述先调用接口与所述后调用接口之间兼容;
第二确定模块,用于如果未成功调用所述预设版本标识列表中的至少一条记录中的排序在前的版本标识对应的版本中的先调用接口或排序在后的版本标识对应的版本中的后调用接口,则确定所述先调用接口与所述后调用接口之间不兼容。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取当前所有已发布版本的版本标识;
组合模块,用于将每一个已发布版本的版本标识分别与所述待发布版本的版本标识进行排列组合;得到多个版本标识组;版本标识组中包括两个不同的版本标识且版本标识组中包括的两个不同的版本标识之间具有先后顺序;
存储模块,用于将每一个版本标识组中的两个不同的版本标识按照二者之间的先后顺序组成一条记录并存储在所述预设版本标识列表中。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
判断模块,用于当需要对调用先后顺序相邻的先调用接口和后调用接口之间的兼容性进行测试时,判断当前的测试方法是否为预设兼容性测试方法;
所述第一获取模块还用于如果当前的测试方法为预设兼容性测试方法,获取预设版本标识列表。
8.根据权利要求7所述的装置,其特征在于,所述判断模块包括:
判断单元,用于判断测试方法参数标志位中的参数是否为与所述预设兼容性测试方法相对应的参数;
第一确定单元,用于当测试方法参数标志位中的参数为与所述预设兼容性测试方法相对应的参数时,确定当前的测试方法为预设兼容性测试方法;
第二确定单元,用于当测试方法参数标志位中的参数不为与所述预设兼容性测试方法相对应的参数时,确定当前的测试方法不为预设兼容性测试方法。
CN201610151139.5A 2016-03-16 2016-03-16 兼容性测试方法及装置 Active CN107203461B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610151139.5A CN107203461B (zh) 2016-03-16 2016-03-16 兼容性测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610151139.5A CN107203461B (zh) 2016-03-16 2016-03-16 兼容性测试方法及装置

Publications (2)

Publication Number Publication Date
CN107203461A CN107203461A (zh) 2017-09-26
CN107203461B true CN107203461B (zh) 2020-11-06

Family

ID=59903709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610151139.5A Active CN107203461B (zh) 2016-03-16 2016-03-16 兼容性测试方法及装置

Country Status (1)

Country Link
CN (1) CN107203461B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109240936A (zh) * 2018-10-17 2019-01-18 深圳壹账通智能科技有限公司 应用程序的兼容性测试方法、终端设备及介质
CN111752870B (zh) * 2020-05-28 2022-02-22 苏州浪潮智能科技有限公司 一种基于神经网络的服务器接口的兼容方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101520731A (zh) * 2008-02-27 2009-09-02 埃森哲环球服务有限公司 图形用户接口应用比较器
CN104008060A (zh) * 2014-06-18 2014-08-27 腾讯科技(深圳)有限公司 插件与宿主兼容性的检测方法及检测服务器
CN104380297A (zh) * 2014-09-19 2015-02-25 中国科学院自动化研究所 光电同步脑活动记录的数据存储方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430228B2 (en) * 2013-12-16 2016-08-30 International Business Machines Corporation Verification of backward compatibility of software components

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101520731A (zh) * 2008-02-27 2009-09-02 埃森哲环球服务有限公司 图形用户接口应用比较器
CN104008060A (zh) * 2014-06-18 2014-08-27 腾讯科技(深圳)有限公司 插件与宿主兼容性的检测方法及检测服务器
CN104380297A (zh) * 2014-09-19 2015-02-25 中国科学院自动化研究所 光电同步脑活动记录的数据存储方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
会话类E-Service的接口兼容和服务组合分析;张文涛、彭泳、陈俊亮;《计算机学报》;20060731;第29卷(第7期);全文 *
接口测试学习笔记;testingstar;《CSDN:https://blog.csdn.net/testingstar/article/details/20642565》;20140306;第1-11页 *

Also Published As

Publication number Publication date
CN107203461A (zh) 2017-09-26

Similar Documents

Publication Publication Date Title
US7334162B1 (en) Dynamic distribution of test execution
US10229039B2 (en) Testing a virtual network function by a virtual network tester
US20040205406A1 (en) Automatic test system for testing remote target applications on a communication network
CN104811979B (zh) 基于fota升级的压力测试方法和装置
CN107015902B (zh) 一种测试方法和设备
EP3518441B1 (en) Test troubleshooting system and method
CN107870948A (zh) 任务调度方法和装置
CN111797015B (zh) 一种基于动态字节码的测试方法及装置
CN107203461B (zh) 兼容性测试方法及装置
CN113051163A (zh) 单元测试方法、装置、电子设备及存储介质
CN107621963B (zh) 一种软件部署方法、软件部署系统及电子设备
CN110780904A (zh) 一种应用更新方法及装置
CN107015906B (zh) 测试方法及装置、端口生成方法及端口生成器和测试系统
US7260184B1 (en) Test system and method for scheduling and running multiple tests on a single system residing in a single test environment
CN108345508B (zh) 接口调用测试方法和装置
CN103984541B (zh) 基于终端源代码生成应用程序的方法和系统
CN106951236B (zh) 插件的开发方法及装置
CN107229650B (zh) 测试方法及装置
CN112231217B (zh) 一种以副本方式实施功能测试的方法和装置
CN112199104B (zh) 一种软件升级方法、装置、电子设备和存储介质
CN104090845B (zh) 一种游戏自动测试方法、系统及相关设备
CN108882268B (zh) 一种更新设备配置的方法及设备
CN113934552A (zh) 功能代码的确定方法及装置、存储介质、电子装置
CN113342652A (zh) 测试数据的处理方法、装置、电子设备及存储介质
CN114866530B (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
TA01 Transfer of patent application right

Effective date of registration: 20200924

Address after: Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: Grand Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant