掌桥专利:专业的专利平台
掌桥专利
首页

接口的测试方法及测试装置

文献发布时间:2024-04-18 20:02:18


接口的测试方法及测试装置

技术领域

本公开属于计算机技术领域,具体涉及一种接口的测试方法及测试装置。

背景技术

虚拟接口(mock)测试是一种基于模拟数据的测试技术,用于模拟、替换系统中的某个组件或者服务,以达到隔离测试环境、提高测试效率的目的,从而保证测试的全面性和准确性。在软件开发过程中,mock测试通常应用于集成测试、单元测试以及应用程序编程接口(Application Programming Interface,API)测试等场景,通过准确模拟接口返回的数据和行为,可以有效地减少测试的成本和时间,提高测试资源的利用率。

发明内容

本公开旨在至少解决现有技术中存在的技术问题之一,提供了一种接口的测试方法及测试装置。

第一方面,本公开实施例提供了一种接口的测试方法,所述接口的测试方法包括:

在被测应用的配置文件中输入初始接口信息;

根据所述初始接口信息,利用遗传算法计算并生成测试数据;

调用业务接口对应的虚拟接口处理请求信息;

根据所述请求信息,从所述测试数据中获取返回信息。

在一些可能实现的方式中,所述根据所述初始接口信息,利用遗传算法计算并生成测试数据,之后还包括:

将所述测试数据存储至内存缓存和内存数据库。

在一些可能实现的方式中,根据所述请求信息,从所述测试数据中获取返回信息,包括:

从内存缓存和内存数据库中存储的所述数据中获取返回信息。

在一些可能实现的方式中,所述根据所述初始接口信息,利用遗传算法计算并生成测试数据,包括:

根据所述接口信息的属性,获取所述接口信息的可编码属性;

对所述可编码属性进行编码,确定原子码;

根据所述原子码,确定初始种群;

对所述初始种群进行选择、交叉、变异,并根据选择函数确定保留的群体;

若所保留的群体达到最大遗传代数,则对所保留的群体进行解码,并将解码后的结果作为返回信息存储至内存缓存和内存数据库。

在一些可能实现的方式中,根据选择函数确定保留的群体,包括:

将所有参与编码的所述接口信息的属性进行实际意义校验;

去除自动生成的非法编码,并且去除与上一代编码重复的个体。

在一些可能实现的方式中,所述初始接口信息包括:接口类型、接口名称、输入参数及返回信息、模拟的异常场景。

在一些可能实现的方式中,所述模拟的异常场景包括:响应超时、网络异常。

第二方面,本公开实施例提供了一种接口的测试装置,所述接口的测试装置包括:

初始接口信息配置模块,被配置为在被测应用的配置文件中输入初始接口信息;

测试数据生成模块,被配置为根据所述初始接口信息,利用遗传算法计算并生成测试数据;

虚拟接口调用模块,被配置为调用业务接口对应的虚拟接口处理请求信息;

返回信息获取模块,被配置为根据所述请求信息,从所述测试数据中获取返回信息。

第三方面,本公开是实施例提供了一种电子设备,电子设备包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述提供的接口的测试方法。

第四方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如上述提供的接口的测试方法。

附图说明

图1为本公开实施例提供的接口的测试方法的流程示意图。

图2为本公开实施例提供的另一种接口的测试方法的流程示意图。

图3为本公开实施例提供的接口的测试方法中生成测试数据的流程示意图。

图4为本公开实施例提供的一种接口的测试装置的结构示意图。

图5为本公开的一些实施例中提供的电子设备的结构示意图。

具体实施方式

为使本领域技术人员更好地理解本公开的技术方案,下面结合附图和具体实施方式对本公开作进一步详细描述。

除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

目前在进行接口的测试时,通过测试服务调用虚拟接口,然后从数据库中获取预先配置的传入参数对应的返回信息,然后将返回信息输出给调用方。然而,如果数据库的数据量较大,数据库表索引结构设计不合理,在高并发下的情况下,依赖接口会严重影响被测接口性能。并且,返回信息的数据量较小,测试场景覆盖少,只能在数据库中插入单一场景的数据,并不能模拟在大并发情况下,出现响应超时、网络异常等场景。

为了至少解决上述的技术问题之一,本公开实施例提供了一种接口的测试服方法及测试装置,下面将结合附图及具体实施方式,对本公开提供的接口的测试方法及测试装置进行进一步详细描述。

第一方面,本公开实施例提供了一种接口的测试方法,图1为本公开实施例提供的接口的测试方法的流程示意图,如图1所示,接口的测试方法包括如下步骤S101至步骤S104。

S101,在被测应用的配置文件中输入初始接口信息。

上述步骤S101中,初始接口信息可以包括:接口类型、接口名称、输入参数及返回信息、模拟的异常场景。可以对被测应用的配置进行初始化设置,避免由于虚拟接口的性能而影响业务接口的性能,而影响测试结果,从而可以提高接口测试的准确度。

S102,根据初始接口信息,利用遗传算法计算并生成测试数据。

上述步骤S102中,可以利用遗传算法进行对初始接口信息进行计算,以生成测试数据,所生成的测试数据较初始接口信息,其中返回信息所覆盖的场景更为广泛,避免测试结构陷入局部最优解,在高并发情况下依然可以满足测试要求。同时,可以模拟在高并发情况下出现响应超时、网络异常等场景。

S103,调用业务接口对应的虚拟接口处理请求信息。

在上述步骤S103中,通过请求阻拦器拦截调用业务接口的请求信息,使其不去调用真实的业务接口,而是调用虚拟接口处理该请求信息。解析请求报文内容,并标记请求类型,通过消息路由进行发送。

S104,根据请求信息,从测试数据中获取返回信息。

在上述步骤S104中,从利用遗传算法所生成的测试数据中获取返回信息,如果可以传输与输入参数对应的返回信息,则表示该虚拟接口测试正常,即该虚拟接口对应的业务接口正常。

本公开实施例提供的接口的测试方法中,通过遗传算法计算并生成测试数据,可以使得测试数据中的返回信息所覆盖的场景更为广泛,避免测试结构陷入局部最优解,在高并发情况下依然可以满足测试要求。同时,可以模拟在高并发情况下出现响应超时、网络异常等场景。因此可以提高接口测试的准确度,并且可以提高接口测试的效率。

图2为本公开实施例提供的另一种接口的测试方法的流程示意图,如图2所示,步骤S102,根据初始接口信息,利用遗传算法计算并生成测试数据,之后还包括:步骤S102a,将测试数据存储至内存缓存和内存数据库。

利用遗传算法生成测试数据后,可以将测试数据存储至内存缓冲和内存数据库中,在需要获取测试数据中的返回信息时,可以直接从内存缓冲中获取。测试数据在内存缓冲中存储可以设定一定的缓存时间,在这段缓存时间内,可以直接从内存缓存中获取返回信息。当缓存时间过期,则从内存数据库获取该接口的返回信息等,这样可以提高虚拟接口的性能,满足高并发要求。

在此需要说明的是,测试数据中除了上述的返回信息之外,还可以包含接口类型、接口名称、输入参数、模拟的异常场景等数据。其中,模拟的异常场景包括相应超时及网络异常等异常场景,从而模拟在高并发情况下出现响应超时、网络异常等场景。因此可以提高接口测试的准确度,并且可以提高接口测试的效率。

图3为本公开实施例提供的接口的测试方法中生成测试数据的流程示意图,如图3所示,步骤S102,根据初始接口信息,利用遗传算法计算并生成测试数据,具体包括如下步骤S201至步骤S205。

S201,根据接口信息的属性,获取接口信息的可编码属性。

上述步骤S201中,根据接口信息属性特点,为可枚举参数值的属性进行编码,每个属性一个字节(8位),例如性别属性,具体编码表示如下表所示:

S202,对可编码属性进行编码,确定原子码。

上述步骤S202中,确定可编码属性,属性1+属性2+属性3+......+属性n,属性n≤所有属性,将可编码属性所对应的编码确定为原子码。

S203,根据原子码,确定初始种群。

上述步骤S203中,选择参与编码的所有属性,随机生成属性1编码+属性编码2+属性3编码+......+属性n编码,保证每个属性的编码都符合实际意义,根据初始群体的大小(5-20),由原子码生成初始群体。

S204,对初始种群进行选择、交叉、变异,并根据选择函数确定保留的群体。

上述步骤S204中,属性编码需符合实际意义,否则生成的信息无法存储或者不满足测试接口,因此将所有参与编码的属性进行实际意义校验作为选择函数,去除自动生成的非法编码,并且去除与上一代编码重复的个体。遗传算法的三种遗传算子为:复制、杂交、变异,初始群体作为第一代群体,依次经过复制选择、杂交选择、变异选择,生成下一代群体,新群体数目与父代群体数目相同。接下来,在新群体中进行个体选择,只要是通过选择函数的个体就是最优个体。

S205,若所保留的群体达到最大遗传代数,则对所保留的群体进行解码,并将解码后的结果作为返回信息存储至内存缓存和内存数据库。

上述步骤S205中,设置最大遗传代数X,X为整数,当遗传经历至第X代时,迭代停止。将最终的结果按照编码含义解码,组成新的测试数据存储至内存缓存和内存数据库中。测试数据中包含接口类型、接口名称、输入参数及返回信息、模拟的异常场景等数据。

第二方面,本公开实施例提供了一种接口的测试装置,图4为本公开实施例提供的一种接口的测试装置的结构示意图,如图4所示,该接口的测试装置包括:初始接口信息配置模块401、测试数据生成模块402、虚拟接口调用模块403、返回信息获取模块404。

初始接口信息配置模块401被配置为在被测应用的配置文件中输入初始接口信息。测试数据生成模块402被配置为根据初始接口信息,利用遗传算法计算并生成测试数据。虚拟接口调用模块403被配置为调用业务接口对应的虚拟接口处理请求信息。返回信息获取模块404被配置为根据请求信息,从测试数据中获取返回信息。

本公开实施例所提供的接口的测试装置,用于实现如上述任一实施例提供的接口的测试方法,具体相关描述可参见上述任一实施例的接口的测试方法中的描述,此处不再赘述。

第三方面,本公开实施例提供了一种电子设备,图5为本公开的一些实施例中提供的电子设备的结构示意图,如图5所示,电子设备包括:一个或多个处理器501;存储器502,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述任一实施例提供的接口的测试方法;一个或多个I/O接口503,连接在处理器与存储器之间,配置为实现处理器与存储器的信息交互。

其中,处理器501为具有数据处理能力的器件,其包括但不限于中央处理器(CPU)等;存储器502为具有数据存储能力的器件,其包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH);I/O接口(读写接口)503连接在处理器501与存储器502间,能实现处理器501与存储器502的信息交互,其包括但不限于数据总线(Bus)等。

在一些实施例中,处理器501、存储器502和I/O接口503通过总线相互连接,进而与计算设备的其它组件连接。

第四方面,本实施例提供了一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现上述任一实施例提供的接口的测试方法。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。

在此需要说明的使,附图中的流程图和框图,图示了按照本公开各种实施例的接口的测试方法、接口的测试装置、电子设备和计算机可读存储介质的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个相连的方框实际上可以表示基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

可以理解的是,以上实施方式仅仅是为了说明本公开的原理而采用的示例性实施方式,然而本公开并不局限于此。对于本领域内的普通技术人员而言,在不脱离本公开的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本公开的保护范围。

相关技术
  • 接口测试方法、接口测试装置、电子设备及存储介质
  • 接口请求框架实现方法、接口测试方法及其对应的装置
  • 接口测试方法、装置、计算机设备及存储介质
  • 一种接口自动化测试方法、装置及电子设备
  • 接口测试方法、装置、计算机设备和存储介质
  • 接口测试方法、接口测试装置和接口测试系统
  • 高速接口测试装置、系统以及高速接口的测试方法
技术分类

06120116577640