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

接口测试方法、设备及介质

文献发布时间:2024-04-18 19:57:31


接口测试方法、设备及介质

技术领域

本申请涉及软件技术领域,尤其涉及一种接口测试方法、设备及介质。

背景技术

对于软件系统而言,其上有着大量的功能接口,为了完成软件功能模块的测试验证,为集成测试、系统测试、验收测试等环节减轻压力,需要尽量快速而又准确地完成接口的测试。

传统的软件接口测试方法,大致可以分为手动测试和自动测试两种。手动测试时,测试人员需要手动在测试设备上进行待测试软件接口的调用和分析,以得到测试结果。自动测试时,测试人员会预先编写待测试软件接口的相关测试脚本和测试用例,然后在测试设备上运行测试脚本来执行测试用例,以得到测试结果。由于软件中有些接口在功能上存在关联,为了保证测试的顺利进行,测试人员通常会采用串行测试的方式编写测试脚本和测试用例。但是,上述这两种测试方法中,手动测试工作效率低,并且准确性和可复用性低,不能满足大量软件接口短时测试的需求。而自动测试时需要采用串行的方式逐一对待测试软件接口进行测试,测试效率也不高,难以满足大量软件接口短时测试的需求。

因此,需要一种能够快速、准确地实现大量软件接口测试的接口测试方案。

发明内容

本申请提供一种接口测试方法、设备及介质,用以解决现有的软件接口测试工作效率低,不能满足测试需求的技术问题。

第一方面,本申请提供一种接口测试方法,包括:

接收用户输入的接口测试指令,并获取所述接口测试指令中的测试脚本,所述测试脚本包括每一待测试接口对应的接口信息以及测试用例;

根据每一待测试接口的接口信息,确定所述接口测试对应的并行测试用例以及串行测试用例;

按照串行的方式依次执行每一串行测试用例,以得到每一所述串行测试用例对应的执行结果;

按照并行的方式并行执行每一并行测试用例,以得到每一所述并行测试用例对应的执行结果;

根据每一所述串行测试用例对应的执行结果,以及每一所述并行测试用例对应的执行结果,确定所述接口测试对应的执行结果;

其中,所述接口信息包括请求构造参数、接口运行方式、关联顺序以及预期结果中的一种或多种。

在一种可能的实施方式中,所述根据每一待测试接口的接口信息,确定所述接口测试对应的并行测试用例以及串行测试用例,具体包括:

确定每一待测试接口对应的接口运行方式以及测试用例;

若待测试接口对应的接口运行方式为并行运行,则所述待测试接口对应的测试用例为并行测试用例;

若待测试接口对应的接口运行方式为串行运行,则所述待测试接口对应的测试用例为串行测试用例。

在一种可能的实施方式中,所述按照串行的方式依次执行每一串行测试用例,以得到每一所述串行测试用例对应的执行结果,具体包括:

按照所述关联顺序对所述串行测试用例进行由小到大的排序,以生成测试序列;

按照串行的方式依次执行所述测试序列中的每一串行测试用例,以得到每一所述串行测试用例对应的响应结果;

根据每一所述串行测试用例对应的响应结果,确定每一所述串行测试用例对应的执行结果。

在一种可能的实施方式中,所述按照串行的方式依次执行所述测试序列中的每一串行测试用例,以得到每一所述串行测试用例对应的响应结果,具体包括:

对于所述测试序列中的每一串行测试用例,

根据所述串行测试用例对应的请求构造参数,以及所述串行测试用例的上一串行测试用例的响应结果,构造所述串行测试用例对应的接口请求;

根据所述串行测试用例对应的接口请求执行相应的接口调用,以获得所述串行测试用例对应的响应结果;

其中,所述请求构造参数包括请求路径、请求方式、请求头、请求参数中的一种或多种。

在一种可能的实施方式中,所述按照并行的方式并行执行每一并行测试用例,以得到每一所述并行测试用例对应的执行结果,具体包括:

确定所述接口测试指令对应的预设并行线程数;

根据所述预设并行线程数,并行执行每一并行测试用例,以得到每一所述并行测试用例对应的响应结果;

根据每一所述并行测试用例对应的响应结果,确定每一所述并行测试用例对应的执行结果;

其中,对于每一并行线程,若检测到所述并行线程中对应的当前并行测试用例执行完毕,则执行待测试队列中排序最先的并行测试用例,直至每一并行测试用例均执行结束。

在一种可能的实施方式中,所述执行每一并行测试用例,以得到每一所述并行测试用例对应的响应结果,具体包括:

对于每一并行测试用例,

确定所述并行测试用例对应的请求构造参数,并根据所述请求构造参数构造所述并行测试用例对应的接口请求;

根据所述并行测试用例对应的接口请求执行相应的接口调用,以获得所述并行测试用例对应的响应结果;

其中,所述请求构造参数包括请求路径、请求方式、请求头、请求参数中的一种或多种。

在一种可能的实施方式中,所述根据每一所述串行测试用例/并行测试用例对应的响应结果,确定每一所述串行测试用例/并行测试用例对应的执行结果,具体包括:

对于每一所述串行测试用例/并行测试用例对应的响应结果,

对所述响应结果进行解析,以得到对应的接口响应数据;

确定所述测试用例对应的预期结果,并将所述接口响应数据与所述预期结果进行对比;

若所述接口响应数据与所述预期结果一致,则所述测试用例对应的执行结果为成功;

若所述接口响应数据与所述预期结果不一致,则所述测试用例对应的执行结果为失败,并将所述测试用例对应的响应结果,和/或接口响应数据,存储至所述测试用例对应的执行结果中。

第二方面,本申请提供一种接口测试设备,包括:

接收模块,用于接收用户输入的接口测试指令,并获取所述接口测试指令中的测试脚本,所述测试脚本包括每一待测试接口对应的接口信息以及测试用例;

处理模块,用于根据每一待测试接口的接口信息,确定所述接口测试对应的并行测试用例以及串行测试用例;按照串行的方式依次执行每一串行测试用例,以得到每一所述串行测试用例对应的执行结果;按照并行的方式并行执行每一并行测试用例,以得到每一所述并行测试用例对应的执行结果;根据每一所述串行测试用例对应的执行结果,以及每一所述并行测试用例对应的执行结果,确定所述接口测试对应的执行结果;其中,所述接口信息包括请求构造参数、接口运行方式、关联顺序以及预期结果中的一种或多种。

第三方面,本申请提供一种接口测试设备,包括:处理器,以及与所述处理器通信连接的存储器;

所述存储器存储计算机执行指令;

所述处理器执行所述存储器存储的计算机执行指令,以实现上述的方法。

第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述的方法。

第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法。

本申请提供的接口测试方法、设备及介质,可以接收用户输入的接口测试指令,并获取接口测试指令中的测试脚本,测试脚本包括每一待测试接口对应的接口信息以及测试用例;根据每一待测试接口的接口信息,确定接口测试对应的并行测试用例以及串行测试用例;按照串行的方式依次执行每一串行测试用例,以得到每一串行测试用例对应的执行结果;按照并行的方式并行执行每一并行测试用例,以得到每一并行测试用例对应的执行结果;根据每一串行测试用例对应的执行结果,以及每一并行测试用例对应的执行结果,确定接口测试对应的执行结果;其中,接口信息包括请求构造参数、接口运行方式、关联顺序以及预期结果中的一种或多种。本申请的方法,在获取到接口测试指令中的测试脚本之后,首先根据测试脚本中每一待测试接口对应的接口信息,确定接口测试对应的并行测试用例以及串行测试用例。通过这样的设置,可以将必须关联在一起串行进行测试的串行测试用例,与没有关联可以并行进行测试的并行测试用例区分开来。之后,按照串行的方式依次执行每一串行测试用例,并按照并行的方式并行执行每一并行测试用例,即可得到每一测试用例对应的执行结果,即接口测试对应的执行结果。与传统的串行测试方法相比,本申请在保证关联性的串行测试的同时,其他无关的测试用例可以以并行的方式执行,脚本可复用性高,能够适应不同的测试场景。并行和串行两种不同的运行方式同时执行,大大提高了接口测试的工作效率,缩短了接口测试的时间,能够快速、准确地实现大量软件接口的短时测试,为之后的软件测试环节减轻了压力。

附图说明

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

图1为现有技术中某接口测试过程示意图;

图2为本申请一实施例的接口测试过程示意图;

图3为本申请一实施例的接口测试方法的流程图;

图4为本申请另一实施例的接口测试方法的流程图;

图5为本申请又一实施例的接口测试方法的流程图;

图6为本申请再一实施例的接口测试方法的流程图;

图7为本申请一实施例的接口测试设备的结构示意图;

图8为本申请另一实施例的接口测试设备的结构示意图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

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

首先对本申请所涉及的名词进行解释:

接口,指的是被测试软件系统的功能接口,通常为API接口。

测试用例(Test Case),指的是对一项特定的软件产品进行测试任务的描述,体现了测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。在本申请中,一个测试接口,对应一个测试用例。

请求(Request),由客户端向服务端发出,可以分为3部分内容:请求方式(RequestMethod)、请求的网址(Request URL)、请求报文(Requestmessage)。

请求方式(Request Method),常见的请求方式主要有两种:GET和POST。GET请求中的参数包含在URL里面,数据可以在URL中看到,而POST请求的URL包含这些数据,数据都是通过表单形式传输的,会包含在请求体中。GET请求提交的数据最多只有1024字节,而POST式没有限制。

请求报文(Requestmessage),由请求行、请求头、请求体组成。

请求行,由请求方式和HTTP协议和版本组成,如:GET/HTTP/1.1。

请求头,用来说明服务器要使用的附加信息,比较重要的信息有Cookie、Referer.User Agent等。

请求体,内容是POST请求中的表单数据,而对于GET请求,请求体则为空。

响应,由服务端返回给客户端,响应报文可以分为三部分:响应行(Responseline)、响应头(Response Headers)和响应体(Response Body)。

响应行,由HTTP版本响应、状态码、状态描述组成。如:HTTP/1.1 200OK。

响应状态码,用来表示服务器的响应状态。常见的状态码有:200(请求成功)、307(重定向)、400(错误的请求)、404(请求资源在服务器中不存在)、500(服务器内部源代码出现错误),每一状态码均存在对应的错误原因。

响应头,用来说明响应的数据。

响应体,就是网页的代码。

需要说明的是,本申请的接口测试方法、设备及介质可用于软件技术领域。也可用于除软件技术领域以外的任意领域,例如数据测试领域等。本申请的接口测试方法、设备及介质的应用领域不作限定。

传统的软件接口测试方法,大致可以分为手动测试和自动测试两种。手动测试时,测试人员需要手动在测试设备上进行待测试软件接口的调用和分析,以得到测试结果。自动测试时,测试人员会预先编写待测试软件接口的相关测试脚本和测试用例,然后在测试设备上运行测试脚本来执行测试用例,以得到测试结果。由于软件中有些接口在功能上存在关联,为了保证测试的顺利进行,测试人员通常会采用串行测试的方式编写测试脚本和测试用例。

但是,上述这两种测试方法中,手动测试工作效率低,并且准确性和可复用性低,不能满足大量软件接口短时测试的需求。而自动测试时需要采用串行的方式逐一对待测试软件接口进行测试,测试效率也不高,难以满足大量软件接口短时测试的需求。

示例性的,图1为现有技术中某接口测试过程示意图,如图1所示,由于软件中有些接口在功能上存在关联,为了保证测试的顺利进行,测试时各接口对应的测试用例依次进行串行测试。

基于该技术问题,本申请的发明构思在于:如何提供一种能够快速、准确地实现大量软件接口测试的接口测试方法。

具体为,可以接收用户输入的接口测试指令,并获取接口测试指令中的测试脚本,测试脚本包括每一待测试接口对应的接口信息以及测试用例;根据每一待测试接口的接口信息,确定接口测试对应的并行测试用例以及串行测试用例;按照串行的方式依次执行每一串行测试用例,以得到每一串行测试用例对应的执行结果;按照并行的方式并行执行每一并行测试用例,以得到每一并行测试用例对应的执行结果;根据每一串行测试用例对应的执行结果,以及每一并行测试用例对应的执行结果,确定接口测试对应的执行结果;其中,接口信息包括请求构造参数、接口运行方式、关联顺序以及预期结果中的一种或多种。本申请的方法,在获取到接口测试指令中的测试脚本之后,首先根据测试脚本中每一待测试接口对应的接口信息,确定接口测试对应的并行测试用例以及串行测试用例。通过这样的设置,可以将必须关联在一起串行进行测试的串行测试用例,与没有关联可以并行进行测试的并行测试用例区分开来。之后,按照串行的方式依次执行每一串行测试用例,并按照并行的方式并行执行每一并行测试用例,即可得到每一测试用例对应的执行结果,即接口测试对应的执行结果。与传统的串行测试方法相比,本申请在保证关联性的串行测试的同时,其他无关的测试用例可以以并行的方式执行,脚本可复用性高,能够适应不同的测试场景。并行和串行两种不同的运行方式同时执行,大大提高了接口测试的工作效率,缩短了接口测试的时间,能够快速、准确地实现大量软件接口的短时测试,为之后的软件测试环节减轻了压力。

在本申请中,接口测试设备可以是手机、电脑、平板等终端设备,也可以是服务器等后台设备,接口测试设备的具体设备类型不做限制。

在本申请中,对接口的测试可以是对接口功能的测试。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图2为本申请一实施例的接口测试过程示意图,如图2所示,接口测试设备接收到接口测试指令之后,根据接口测试指令中测试脚本的每一待测试接口对应的接口信息,对每一待测试接口对应的测试用例进行分类,以确定并行测试用例以及串行测试用例。对于串行测试用例,按照串行的方式依次执行每一串行测试用例,以得到每一串行测试用例对应的执行结果;对于并行测试用例,按照并行的方式并行执行每一并行测试用例,以得到每一并行测试用例对应的执行结果。之后,根据每一串行测试用例对应的执行结果,以及每一并行测试用例对应的执行结果,确定接口测试对应的执行结果。

实施例一

图3是本申请一实施例提供的接口测试方法的流程图,本实施例以执行主体为接口测试设备对该接口测试方法进行说明。如图3所示,该接口测试方法可以包括以下步骤:

S101:接收用户输入的接口测试指令,并获取接口测试指令中的测试脚本,测试脚本可以包括每一待测试接口对应的接口信息以及测试用例。

在本实施例中,接口信息可以包括请求构造参数、接口运行方式、关联顺序以及预期结果中的一种或多种。

在本实施例中,测试人员可以根据待测试的软件接口预先编写相应的测试脚本,并将测试脚本上传至接口测试设备,并在相应的测试页面点击“开始”按钮,即向接口测试设备输入接口测试指令。

在本实施例中,测试脚本中的接口信息可以是一个Excel文件,即多个待测试接口的相关接口信息以列表的方式存储。

在本实施例中,测试脚本可以是利用Scala(计算机编程语言)编写的,接口测试设备可以预先下载Gatling软件(一种基于Scala开发的开源的性能测试工具)。即,本申请可以是基于Scala+Gatling环境实现的一种接口自动化测试方法。

S102:根据每一待测试接口的接口信息,确定接口测试对应的并行测试用例以及串行测试用例。

在本实施例中,串行测试用例,可以是只能串行进行测试的用例(一次只能测一个),并行测试用例,可以是能够多个并行进行测试的用例(一次能测多个)。

在一个可能的实施方式中,上述步骤S102根据每一待测试接口的接口信息,确定接口测试对应的并行测试用例以及串行测试用例,可以包括:确定每一待测试接口对应的接口运行方式以及测试用例;若待测试接口对应的接口运行方式为并行运行,则待测试接口对应的测试用例为并行测试用例;若待测试接口对应的接口运行方式为串行运行,则待测试接口对应的测试用例为串行测试用例。

在本实施方式中,接口信息中的接口运行方式可以是表示接口能否并行运行的信息,例如,若某接口的接口运行方式为“是”,则该接口可以并行运行,若某接口的接口运行方式为“否”,则该接口智能串行运行。当然,接口运行方式的表现形式并不仅局限于此,本领域技术人员可以灵活设置,在此不做任何限制,只要通过接口运行方式能够区分接口是串行还是并行即可。

在本实施方式中,通过接口信息中的接口运行方式,即可简便而又准确地确定接口是串行还是并行,从而确定接口对应的测试用例是串行测试用例还是并行测试用例,以便于后续测试用例的分组执行。

S103:按照串行的方式依次执行每一串行测试用例,以得到每一串行测试用例对应的执行结果。

在本实施例中,上述步骤S103按照串行的方式依次执行每一串行测试用例,以得到每一串行测试用例对应的执行结果的具体实施方式,请详见实施例二。

在本实施例中,按照串行的方式依次执行时,一次只能执行一个串行测试用例。

S104:按照并行的方式并行执行每一并行测试用例,以得到每一并行测试用例对应的执行结果。

在本实施例中,上述步骤S104按照并行的方式并行执行每一并行测试用例,以得到每一并行测试用例对应的执行结果的具体实施方式,请详见实施例三。

在本实施例中,按照并行的方式并行执行时,一次可以执行多个并行测试用例。

S105:根据每一串行测试用例对应的执行结果,以及每一并行测试用例对应的执行结果,确定接口测试对应的执行结果。

在本实施例中,在得到接口测试对应的执行结果(即每一待测试接口的执行结果)之后,可以将待测试接口,和与其对应的执行结果,以列表的方式存储,以便后续查阅审核。

在本实施例中,在获取到接口测试指令中的测试脚本之后,首先根据测试脚本中每一待测试接口对应的接口信息,确定接口测试对应的并行测试用例以及串行测试用例。通过这样的设置,可以将必须关联在一起串行进行测试的串行测试用例,与没有关联可以并行进行测试的并行测试用例区分开来。之后,按照串行的方式依次执行每一串行测试用例,并按照并行的方式并行执行每一并行测试用例,即可得到每一测试用例对应的执行结果,即接口测试对应的执行结果。与传统的串行测试方法相比,本申请在保证关联性的串行测试的同时,其他无关的测试用例可以以并行的方式执行,脚本可复用性高,能够适应不同的测试场景。并行和串行两种不同的运行方式同时执行,大大提高了接口测试的工作效率,缩短了接口测试的时间,能够快速、准确地实现大量软件接口的短时测试,为之后的软件测试环节减轻了压力。

下面以具体的实施例二对上述实施例一中的步骤S103按照串行的方式依次执行每一串行测试用例,以得到每一串行测试用例对应的执行结果的实施方式,进行详细的阐述。

实施例二

图4是本申请一实施例提供的接口测试方法的流程图,本实施例以执行主体为接口测试设备对该接口测试方法进行说明。如图4所示,该接口测试方法可以包括以下步骤:

S201:按照关联顺序对串行测试用例进行由小到大的排序,以生成测试序列。

在本实施例中,关联顺序可以表示串行的接口之间相关联的先后顺序,例如接口A1执行之后,接口A2紧跟着执行,之后是接口A3等。当然,关联顺序不仅能够表示接口之间测试的先后顺序,还能够表示测试组别。例如:A1-A5、B1-B7,即A组串行执行A1-A5,B组串行执行B1-B7,A组和B组可以串行,也可以并行。

在本实施例中,测试序列可以为多个,即根据关联关系分为多个组别,每组由小到大分别串行执行测试。

在本实施例中,当待测试接口对应的接口运行方式为串行时,该待测试接口对应的接口信息中才存在关联顺序,并行的接口不存在关联顺序,或者数值为0。

S202:按照串行的方式依次执行测试序列中的每一串行测试用例,以得到每一串行测试用例对应的响应结果。

在一个可能的实施方式中,上述步骤S202按照串行的方式依次执行测试序列中的每一串行测试用例,以得到每一串行测试用例对应的响应结果,可以包括:对于测试序列中的每一串行测试用例,根据串行测试用例对应的请求构造参数,以及串行测试用例的上一串行测试用例的响应结果,构造串行测试用例对应的接口请求;根据串行测试用例对应的接口请求执行相应的接口调用,以获得串行测试用例对应的响应结果;其中,请求构造参数包括请求路径、请求方式、请求头、请求参数中的一种或多种。

在本实施方式中,请求参数可以是请求行、请求体等组成请求的参数,不同的请求方式可以对应不同的请求参数。请求方式、请求头、请求参数是为了构造具体的请求,具体的请求方式、请求头、请求参数本领域技术人员可以根据需求灵活设置。请求路径是请求发送的路径,即网页地址URL或者URI等。

在本实施方式中,接口的测试过程实质上为接口的请求调用以及响应的过程,根据响应结果即可测试接口的功能是否正常。

在本实施方式中,具体进行测试时,由于串行的各测试用例之间具备关联性,因此,需要根据上一个串行测试用例的响应结果,构造当前串行测试用例对应的接口请求(每组的第一个串行测试用例除外),从而保证接口测试的顺利进行。

S203:根据每一串行测试用例对应的响应结果,确定每一串行测试用例对应的执行结果。

在本实施例中,上述步骤S203根据每一串行测试用例对应的响应结果,确定每一串行测试用例对应的执行结果的具体实施方式,请详见实施例四。

在本实施例中,关联顺序可以表示串行的接口之间的测试组别,以及各组中接口相关联的先后顺序。按照关联顺序对串行测试用例进行由小到大的排序,以生成测试序列,即可简单而又准确地对测试用例进行分组排序,以便于后续串行测试用例的执行。分组排序之后,按照串行的方式依次执行测试序列中的每一串行测试用例,就可以快速而又准确地得到每一串行测试用例对应的响应结果,并根据响应结果确定每一串行测试用例对应的执行结果。

下面以具体的实施例三对上述实施例一中的步骤S104按照并行的方式并行执行每一并行测试用例,以得到每一并行测试用例对应的执行结果的实施方式,进行详细的阐述。

实施例三

图5是本申请一实施例提供的接口测试方法的流程图,本实施例以执行主体为接口测试设备对该接口测试方法进行说明。如图5所示,该接口测试方法可以包括以下步骤:

S301:确定接口测试指令对应的预设并行线程数。

在本实施例中,预设并行线程数可以是测试人员预先设置的默认值,即默认测试时按照预设并行线程数进行并行运算。测试人员进行预先设置时,可以从接口测试设备的具体设备参数,以及设备运行时的可用资源等方面综合考虑,在避免资源浪费的前提下最大化的利用设备,从而快速进行接口测试。

S302:根据预设并行线程数,并行执行每一并行测试用例,以得到每一并行测试用例对应的响应结果。

在本实施例中,对于每一并行线程,若检测到并行线程中对应的当前并行测试用例执行完毕,则可以执行待测试队列中排序最先的并行测试用例,直至每一并行测试用例均执行结束。

在本实施例中,所有的并行测试用例可以形成一个待测试队列,开始时,可以开启预设并行线程数个线程,并且各线程按照顺序分别执行队列中的一个并行测试用例。由于不同的并行测试用例的执行时间可能不同,因此,在检测到某个并行线程中的当前并行测试用例执行完毕时,就可以将待测试队列中排序最先的并行测试用例放入该线程中执行,如此循环往复,直至全部并行测试用例均被执行结束。

在一个可能的实施方式中,上述步骤S302执行每一并行测试用例,以得到每一并行测试用例对应的响应结果,可以包括:对于每一并行测试用例,确定并行测试用例对应的请求构造参数,并根据请求构造参数构造并行测试用例对应的接口请求;根据并行测试用例对应的接口请求执行相应的接口调用,以获得并行测试用例对应的响应结果;其中,请求构造参数包括请求路径、请求方式、请求头、请求参数中的一种或多种。

在本实施方式中,请求参数可以是请求行、请求体等组成请求的参数,不同的请求方式可以对应不同的请求参数。请求方式、请求头、请求参数是为了构造具体的请求,具体的请求方式、请求头、请求参数本领域技术人员可以根据需求灵活设置。请求路径是请求发送的路径,即网页地址URL或者URI等。

在本实施方式中,接口的测试过程实质上为接口的请求调用以及响应的过程,根据响应结果即可测试接口的功能是否正常。

在本实施方式中,并行测试时,各测试用例之间没有关联性,因此,各并行的测试用例直接根据相应的请求构造参数构造接口请求,并执行相应的接口调用即可。通过这样的设置,即可简单便捷地得到每一并行测试用例对应的响应结果。

S303:根据每一并行测试用例对应的响应结果,确定每一并行测试用例对应的执行结果。

在本实施例中,上述步骤S303根据每一并行测试用例对应的响应结果,确定每一并行测试用例对应的执行结果的具体实施方式,请详见实施例四。

在本实施例中,预设并行线程数可以是测试人员考虑接口测试设备的具体设备参数,以及设备运行时的可用资源等方面,预先设置的默认值。利用预设并行线程数开启并行线程,可以在避免资源浪费的前提下最大化的利用设备,从而快速进行接口测试,提高了接口测试的工作效率。进一步的,由于不同的并行测试用例的执行时间可能不同,因此,在检测到某个并行线程中的当前并行测试用例执行完毕时,就可以将待测试队列中排序最先的并行测试用例放入该线程中执行。通过这样的设置,可以保证每一并行线程均有测试用例可以执行,避免并行线程控制,最大化的利用并行线程,进一步提高了接口测试的工作效率,缩短接口测试所用时间。

下面以具体的实施例四对上述实施例二中的步骤S203根据每一串行测试用例对应的响应结果,确定每一串行测试用例对应的执行结果的实施方式,以及上述实施例三中的步骤S303根据每一并行测试用例对应的响应结果,确定每一并行测试用例对应的执行结果的实施方式,进行详细的阐述。

在本实施例中,由于串行测试用例和并行测试用例的实施方式相同,因此,可以统称为测试用例。

实施例四

图6是本申请一实施例提供的接口测试方法的流程图,本实施例以执行主体为接口测试设备对该接口测试方法进行说明。如图6所示,该接口测试方法可以包括以下步骤:

S401:对于每一串行测试用例/并行测试用例对应的响应结果,对响应结果进行解析,以得到对应的接口响应数据。

在本实施例中,响应结果是服务侧反馈的结果,不同的接口对应的响应结果的表现形式可能不同,测试时需要的内容也可能不同,因此,在得到响应结果之后,还需要对响应结果进行解析,例如提取字段/值等,以得到需要的数据。

在本实施例中,具体的解析方式本领域技术人员可以灵活设置,在此不做任何限制。

S402:确定测试用例对应的预期结果,并将接口响应数据与预期结果进行对比。将接口响应数据与预期结果进行对比,并判断是否一致

在本实施例中,预期结果可以是测试人员预先设置的,接口调用时预期应该得到的结果。

S403:若接口响应数据与预期结果一致,则测试用例对应的执行结果为成功。

S404:若接口响应数据与预期结果不一致,则测试用例对应的执行结果为失败,并将测试用例对应的响应结果,和/或接口响应数据,存储至测试用例对应的执行结果中。

在本实施例中,在得到每一测试用例的执行结果之后,可以将测试用例对应的待测试接口名称或编号,以及对应的执行结果,以列表的方式存储,若执行结果为失败,还可以存储对应的响应结果,和/或接口响应数据。

在本实施例中,在得到各测试用例的响应结果之后,首先需要对响应结果进行解析,从而提取得到后续与预期结果对比时所需的数据,以便于结果对比。进一步的,当执行结果为失败时,还需要将对应的响应结果,和/或接口响应数据,存储至测试用例对应的执行结果中,以便于后续测试失败的原因分析和处理等,测试失败的接口不需要重复测试,节省了测试资源。

下面以一个具体的实施例对本申请的接口测试方法进行阐述。

实施例五

在一个具体的实施例中,某测试人员想要对某软件的接口进行测试,具体的接口测试过程如下:

第一步,该测试人员在接口测试设备中下载Gatling软件,利用Scala编写该软件接口的测试脚本,在Gatling软件中打开相关的测试页面,并上传测试脚本,之后在相应的测试页面点击“开始”按钮,即向接口测试设备输入接口测试指令。

第二步,接口测试设备接收测试人员输入的接口测试指令,并获取接口测试指令中的测试脚本,测试脚本可以包括每一待测试接口对应的接口信息以及测试用例。

第三步,接口测试设备根据每一待测试接口的接口信息,确定接口测试对应的并行测试用例以及串行测试用例。

第四步,接口测试设备按照关联顺序对串行测试用例进行由小到大的排序,以生成测试序列,按照串行的方式依次执行测试序列中的每一串行测试用例,以得到每一串行测试用例对应的响应结果,根据每一串行测试用例对应的响应结果,确定每一串行测试用例对应的执行结果。

第五步,接口测试设备确定接口测试指令对应的预设并行线程数,根据预设并行线程数,并行执行每一并行测试用例,以得到每一并行测试用例对应的响应结果,根据每一并行测试用例对应的响应结果,确定每一并行测试用例对应的执行结果。

第六步,接口测试设备根据每一串行测试用例对应的执行结果,以及每一并行测试用例对应的执行结果,确定接口测试对应的执行结果,即该软件各接口的执行结果列表。

图7为本申请一实施例的接口测试设备的结构示意图,如图7所示,该接口测试设备包括:接收模块71,用于接收用户输入的接口测试指令,并获取接口测试指令中的测试脚本,测试脚本包括每一待测试接口对应的接口信息以及测试用例;处理模块72,用于根据每一待测试接口的接口信息,确定接口测试对应的并行测试用例以及串行测试用例;按照串行的方式依次执行每一串行测试用例,以得到每一串行测试用例对应的执行结果;按照并行的方式并行执行每一并行测试用例,以得到每一并行测试用例对应的执行结果;根据每一串行测试用例对应的执行结果,以及每一并行测试用例对应的执行结果,确定接口测试对应的执行结果;其中,接口信息包括请求构造参数、接口运行方式、关联顺序以及预期结果中的一种或多种。一个实施方式中,接口测试设备具体实现功能的描述可以参见实施例一中的步骤S101-S105、实施例二中的步骤S201-S203、实施例三中的步骤S301-S303以及实施例四中的步骤S401-S404,在此不做赘述。

图8为本申请一实施例的接口测试设备的结构示意图,如图8所示,该接口测试设备包括:处理器101,以及与处理器101通信连接的存储器102;存储器102存储计算机执行指令;处理器101执行存储器102存储的计算机执行指令,实现上述各方法实施例中接口测试方法的步骤。

在上述接口测试设备中,存储器102和处理器101之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线连接。存储器102中存储有实现数据访问控制方法的计算机执行指令,包括至少一个可以软件或固件的形式存储于存储器102中的软件功能模块,处理器101通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理。

存储器102可以是,但不限于,随机存取存储器(Random Access Memory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称:PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称:EPROM),电可擦除只读存储器(Electric Erasable ProgrammableRead-Only Memory,简称:EEPROM)等。其中,存储器102用于存储程序,处理器101在接收到执行指令后,执行程序。进一步地,上述存储器102内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。

处理器101可以是一种集成电路芯片,具有信号的处理能力。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称:CPU)、网络处理器(Network Processor,简称:NP)等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本申请的一实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现本申请各方法实施例的步骤。

本申请的一实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请各方法实施例的步骤。

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

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

相关技术
  • 接口测试方法、装置、计算机设备及存储介质
  • 接口测试方法、装置、计算机设备和存储介质
  • 接口测试方法、装置、计算机设备和存储介质
  • 接口测试方法、系统、计算机设备和存储介质
  • 接口测试方法、接口测试装置、电子设备及存储介质
  • 接口测试方法、接口测试系统、计算机设备及存储介质
技术分类

06120116458823