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

接口测试方法、装置、设备及存储介质

文献发布时间:2023-06-19 16:06:26



技术领域

本发明涉及测试领域,尤其涉及一种接口测试方法、装置、设备及存储介质。

背景技术

在应用程序的接口进行测试的过程中,通常由测试人员每个待测试的接口编写测试用例,最后基于编写的测试用例对应用程序的接口进行。

在现有的技术中,通常测试人员需要对每个待测试的接口设计编写单独的测试用例,每一次接口的测试时均需要获取相应的测试用例,流程冗余复杂,从而导致测试效率低下。

发明内容

本发明的主要目的在于解决现有接口测试方法测试效率低下的问题。

本发明第一方面提供了一种接口测试方法,包括:

接收目标服务接口的测试请求,并根据所述测试请求获取预置的接口数据链表,其中,所述接口数据链表中包括多个数据结点,每个数据结点分别对应一个服务接口,每个数据结点的数据域中存储对应服务接口的接口详情数据和依赖数据获取方式,每个数据结点的指针域用于指示对应服务接口的数据依赖信息;

遍历所述接口数据链表,并根据当前遍历数据结点中存储的接口详情数据,调用当前遍历数据结点对应的服务接口,得到当前遍历数据结点对应服务接口的反参;

根据下一遍历数据结点中存储的依赖数据获取方式,从所述反参中提取依赖数据,并基于所提取的依赖数据,更新所述下一遍历数据结点中的接口详情数据;

根据所述下一遍历数据结点中更新后的接口详情数据,调用所述下一遍历数据结点对应的服务接口,得到所述下一遍历数据结点对应服务接口的反参,直至对所述目标服务接口对应的数据结点完成调用,输出目标反参并停止遍历;

获取所述目标服务接口对应的标准反参,并将所述目标反参与所述标准反参进行比对,若比对结果一致,则确定所述目标服务接口通过测试。

可选的,在本发明第一方面的第一种实现方式中,所述接收目标服务接口的测试请求,并根据所述测试请求获取预置的接口数据链表之前,还包括:

获取目标业务流程对应的接口数据集,其中,所述目标业务流程对应多个相互依赖的服务接口,所述接口数据集中包括各所述服务接口的接口详情数据、数据依赖信息以及依赖数据获取方式;

根据所述目标业务流程对应的接口数据集,构建所述目标业务流程对应的接口数据链表,其中,所述接口数据链表中包括多个数据结点,每个数据结点分别与每个服务接口对应,每个数据结点的数据域中存储对应服务接口的接口详情数据和依赖数据获取方式,每个数据结点的指针域用于指示对应服务接口的数据依赖信息。

可选的,在本发明第一方面的第二种实现方式中,所述接口详情数据中包括接口地址和接口参数,所述遍历所述接口数据链表,并根据当前遍历数据结点中存储的接口详情数据,调用当前遍历数据结点对应的服务接口,得到当前遍历数据结点对应服务接口的反参包括:

遍历所述接口数据链表,并根据当前遍历数据结点中的接口地址,获取当前遍历数据结点对应的服务接口;

将当前遍历数据结点中的接口参数作为入参,调用当前遍历数据结点对应的服务接口,得到当前遍历数据结点对应服务接口的反参。

可选的,在本发明第一方面的第三种实现方式中,所述接收目标服务接口的测试请求,并根据所述测试请求获取预置的接口数据链表之后,所述遍历所述接口数据链表,并根据当前遍历数据结点中存储的接口详情数据,调用当前遍历数据结点对应的服务接口,得到当前遍历数据结点对应服务接口的反参之前,还包括:

接收终端发送的数据更新请求,根据所述数据更新请求中的请求参数,更新所述接口数据链表。

可选的,在本发明第一方面的第四种实现方式中,所述接收终端发送的数据更新请求,根据所述数据更新请求中的请求参数,更新所述接口数据链表包括:

接收终端发送的接口新增请求,其中,所述接口新增请求中包括新增服务接口的接口详情数据、数据依赖信息以及依赖数据获取方式;

根据所述接口新增请求动态申请一块空白的目标内存空间;

将所述新增服务接口的接口详情数据和依赖数据获取方式存储至所述目标内存空间的数据域中,得到第一目标数据结点;

根据所述新增服务接口的数据依赖信息,确定所述第一目标数据结点在所述接口数据链表中的目标插入位置;

将所述第一目标数据结点插入所述接口数据链表中的目标插入位置中以更新所述接口数据链表。

可选的,在本发明第一方面的第五种实现方式中,所述将所述第一目标数据结点插入所述接口数据链表中的目标插入位置中,得到更新后的接口数据链表包括:

确定所述接口数据链表中的目标插入位置的第一前驱数据结点和第一后继数据结点,其中,所述第一前驱数据结点为在所述目标插入位置之前,且距所述目标插入位置最近的数据结点,第一后继数据结点为在所述目标插入位置之后,且距所述目标插入位置最近的数据结点;

修改所述第一前驱数据结点中的指针域以将所述第一前驱数据结点指向所述第一目标数据结点,以及将所述第一目标数据结点的指针域指向所述第一后继数据结点以更新所述接口数据链表。

可选的,在本发明第一方面的第六种实现方式中,所述接收终端发送的数据更新请求,根据所述数据更新请求中的请求参数,更新所述接口数据链表包括:

接收终端发送的接口删除请求,其中,所述接口删除请求中包括待删除服务接口的接口详情数据;

遍历所述接口数据链表,并根据所述待删除服务接口的接口详情数据,确定所述接口数据链表中待删除的第二目标数据结点;

释放所述第二目标数据结点的内存空间,并将第二前驱数据结点中的指针域指向第二后继数据结点以更新所述接口数据链表,其中,所述第二前驱数据结点为在所述第二目标数据结点之前,且距所述第二目标数据结点最近的数据结点,第二后继数据结点为在所述第二目标数据结点之后,且距所述第二目标数据结点最近的数据结点。

可选的,在本发明第一方面的第七种实现方式中,所述接收目标服务接口的测试请求,并根据所述测试请求获取预置的接口数据链表之前,还包括:

设定与所述目标服务接口对应的测试运行环境或测试运行账号以在所述测试运行环境下或所述测试运行账号下对所述目标服务接口进行测试。

本发明第二方面提供了一种接口测试装置,包括:

数据链表获取模块,用于接收目标服务接口的测试请求,并根据所述测试请求获取预置的接口数据链表,其中,所述接口数据链表中包括多个数据结点,每个数据结点分别对应一个服务接口,每个数据结点的数据域中存储对应服务接口的接口详情数据和依赖数据获取方式,每个数据结点的指针域用于指示对应服务接口的数据依赖信息;

反参获取模块,用于遍历所述接口数据链表,并根据当前遍历数据结点中存储的接口详情数据,调用当前遍历数据结点对应的服务接口,得到当前遍历数据结点对应服务接口的反参;

数据更新模块,用于根据下一遍历数据结点中存储的依赖数据获取方式,从所述反参中提取依赖数据,并基于所提取的依赖数据,更新所述下一遍历数据结点中的接口详情数据;

递归调用模块,用于根据所述下一遍历数据结点中更新后的接口详情数据,调用所述下一遍历数据结点对应的服务接口,得到所述下一遍历数据结点对应服务接口的反参,直至对所述目标服务接口对应的数据结点完成调用,输出目标反参并停止遍历;

反参比对模块,用于获取所述目标服务接口对应的标准反参,并将所述目标反参与所述标准反参进行比对,若比对结果一致,则确定所述目标服务接口通过测试。

可选的,在本发明第二方面的第一种实现方式中,所述装置还包括用于构建接口数据链表的链表构建模块,所述链表构建模块具体包括:

数据集获取单元,用于获取目标业务流程对应的接口数据集,其中,所述目标业务流程对应多个相互依赖的服务接口,所述接口数据集中包括各所述服务接口的接口详情数据、数据依赖信息以及依赖数据获取方式;

链表生成单元,用于根据所述目标业务流程对应的接口数据集,构建所述目标业务流程对应的接口数据链表,其中,所述接口数据链表中包括多个数据结点,每个数据结点分别与每个服务接口对应,每个数据结点的数据域中存储对应服务接口的接口详情数据和依赖数据获取方式,每个数据结点的指针域用于指示对应服务接口的数据依赖信息。

可选的,在本发明第二方面的第二种实现方式中,所述反参获取模块具体包括:

接口获取单元,用于遍历所述接口数据链表,并根据当前遍历数据结点中的接口地址,获取当前遍历数据结点对应的服务接口;

入参调用单元,用于将当前遍历数据结点中的接口参数作为入参,调用当前遍历数据结点对应的服务接口,得到当前遍历数据结点对应服务接口的反参。

可选的,在本发明第二方面的第三种实现方式中,所述装置还包括链表更新模块,所述链表更新模块用于:

接收终端发送的数据更新请求,根据所述数据更新请求中的请求参数,更新所述接口数据链表。

可选的,在本发明第二方面的第四种实现方式中,所述链表更新模块具体包括:

新增请求接收单元,用于接收终端发送的接口新增请求,其中,所述接口新增请求中包括新增服务接口的接口详情数据、数据依赖信息以及依赖数据获取方式;

内存申请单元,用于根据所述接口新增请求动态申请一块空白的目标内存空间;

数据存储单元,用于将所述新增服务接口的接口详情数据和依赖数据获取方式存储至所述目标内存空间的数据域中,得到第一目标数据结点;

位置确定单元,用于根据所述新增服务接口的数据依赖信息,确定所述第一目标数据结点在所述接口数据链表中的目标插入位置;

结点插入单元,用于将所述第一目标数据结点插入所述接口数据链表中的目标插入位置中以更新所述接口数据链表。

可选的,在本发明第二方面的第五种实现方式中,所述结点插入单元具体用于:

确定所述接口数据链表中的目标插入位置的第一前驱数据结点和第一后继数据结点,其中,所述第一前驱数据结点为在所述目标插入位置之前,且距所述目标插入位置最近的数据结点,第一后继数据结点为在所述目标插入位置之后,且距所述目标插入位置最近的数据结点;

修改所述第一前驱数据结点中的指针域以将所述第一前驱数据结点指向所述第一目标数据结点,以及将所述第一目标数据结点的指针域指向所述第一后继数据结点以更新所述接口数据链表。

可选的,在本发明第二方面的第六种实现方式中,所述链表更新模块具体包括:

删除请求接收单元,用于接收终端发送的接口删除请求,其中,所述接口删除请求中包括待删除服务接口的接口详情数据;

结点确定单元,用于遍历所述接口数据链表,并根据所述待删除服务接口的接口详情数据,确定所述接口数据链表中待删除的第二目标数据结点;

结点删除单元,用于释放所述第二目标数据结点的内存空间,并将第二前驱数据结点中的指针域指向第二后继数据结点以更新所述接口数据链表,其中,所述第二前驱数据结点为在所述第二目标数据结点之前,且距所述第二目标数据结点最近的数据结点,第二后继数据结点为在所述第二目标数据结点之后,且距所述第二目标数据结点最近的数据结点。

可选的,在本发明第二方面的第七种实现方式中,所述装置还包括测试环境设定模块,所述测试环境设定模块用于:

设定与所述目标服务接口对应的测试运行环境或测试运行账号以在所述测试运行环境下或所述测试运行账号下对所述目标服务接口进行测试。

本发明第三方面提供了一种接口测试设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述接口测试设备执行上述的接口测试方法的各个步骤。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的接口测试方法的各个步骤。

本发明提供的技术方案中,接收目标服务接口的测试请求,获取接口数据链表;遍历该接口数据链表,并根据当前遍历数据结点中的接口详情数据,调用对应的服务接口,得到对应的反参;根据下一遍历数据结点中的依赖数据获取方式,从该反参中提取依赖数据,并基于该依赖数据更新其中的接口详情数据;以及根据该接口详情数据,调用对应的服务接口,得到该服务接口的反参,直至对目标服务接口对应的数据结点完成调用,输出目标反参并停止遍历,从而通过对接口数据链表进行遍历以递归调用各服务接口,得到各服务接口的反参,进而将目标服务接口的反参与预置的标准反参进行比对,以确定目标服务接口是否通过测试,本发明实施例中,仅需遍历同一个接口数据链表,即可得到接口数据链表中任意服务接口的反参,从而对其进行测试,无需基于每个服务接口单独的测试用例逐个进行测试,其测试效率更高;且由于链表的数据结构特性,其易于修改编辑,当接收到新增或删除服务接口时,直接修改指针域,可拓展性良好。

附图说明

图1为本发明实施例中接口测试方法的第一个实施例示意图;

图2为本发明实施例中接口测试方法的第二个实施例示意图;

图3为本发明实施例中接口测试方法的第三个实施例示意图;

图4为本发明实施例中接口测试装置的一个实施例示意图;

图5为本发明实施例中接口测试装置的另一个实施例示意图;

图6为本发明实施例中接口测试设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种接口测试方法、装置、设备及存储介质,测试效率更高。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中接口测试方法的第一个实施例包括:

101、接收目标服务接口的测试请求,并根据该测试请求获取预置的接口数据链表,其中,该接口数据链表中包括多个数据结点,每个数据结点分别对应一个服务接口,每个数据结点的数据域中存储对应服务接口的接口详情数据和依赖数据获取方式,每个数据结点的指针域用于指示对应服务接口的数据依赖信息;

可以理解的是,业务流程对应的程序设计中是由服务接口实现,业务逻辑较为复杂的业务流程中可能会包括多个存在相互数据依赖的服务接口,而目标服务接口即为其中某一亟需测试的接口对象,服务器通过对其进行自动化测试从而确定该接口是否达至预期的功能或性能。

应当理解的是,该接口数据链表对应包含目标服务接口的目标业务流程,链表为一种基于内存地址且不连续的数据存储结构,在该接口数据链表中包括多个数据结点,而每个数据结点即与该目标业务流程中的每个服务接口逐一对应。链表中每个数据结点中由数据域和指针域组成,其中,数据域用于存储数据,而指针域用于存储内存地址,从而连接两块不连续的内存空间。

在本实施例中,该数据结点中的数据域存储的即是服务接口的接口详情数据和依赖数据获取方式,其中,接口详情数据包括但不限于接口名称、接口地址(url)、接口请求方式(get或post)、接口参数以及请求头和请求体等信息,依赖数据获取方式即从所依赖的服务接口对应的反参中提取依赖数据的函数表达式。

可选的,在服务器接收目标服务接口的测试请求,并根据该测试请求获取预置的接口数据链表之前,服务器还预先构建了该接口数据链表,具体包括:

获取目标业务流程对应的接口数据集,其中,目标业务流程对应多个相互依赖的服务接口,接口数据集中包括各服务接口的接口详情数据、数据依赖信息以及依赖数据获取方式;

根据所述目标业务流程对应的接口数据集,构建所述目标业务流程对应的接口数据链表,其中,接口数据链表中包括多个数据结点,每个数据结点分别与每个服务接口对应,每个数据结点的数据域中存储对应服务接口的接口详情数据和依赖数据获取方式,每个数据结点的指针域用于指示对应服务接口的数据依赖信息。

可选的,该接口数据链表可以为单向链表结构,该单向链表中的头数据结点对应的服务接口即为无数据依赖的服务接口,后继数据结点的指针域中存储前驱数据结点的内存地址以将后继数据结点单向指向该前驱数据结点,从而表示后继数据结点对应的服务接口数据依赖于前驱数据结点对应的服务接口,即后者均依赖于前者。

可选的,该接口数据链表还可以为双向链表结构,从而可以双向遍历以减少时间复杂度,提高遍历的效率。此时,每个数据结点中包括数据域、前指针域以及后指针域,相邻两个数据结点之间通过前驱数据结点的后指针域与后继数据结点的前指针域双向连接,此时由于指针域的指向无法表达数据结点对应服务接口之间的数据依赖信息,而在数据域中可进一步划分出一块内存区域以存储对应的数据依赖信息。

102、遍历该接口数据链表,并根据当前遍历数据结点中存储的接口详情数据,调用当前遍历数据结点对应的服务接口,得到当前遍历数据结点对应服务接口的反参;

可以理解的是,接口详情数据包括但不限于接口地址(url)、接口请求方式(get或post)、接口参数等信息,服务器通过遍历该接口数据链表,并根据当前遍历数据结点中的接口地址,获取当前遍历数据结点对应的服务接口,其次将当前遍历数据结点中的接口参数、接口请求方式作为该服务接口的入参以调用当前遍历数据结点对应的服务接口,从而得到当前遍历数据结点对应服务接口的反参。

103、根据下一遍历数据结点中存储的依赖数据获取方式,从反参中提取依赖数据,并基于所提取的依赖数据,更新该下一遍历数据结点中的接口详情数据;

可以理解的是,依赖数据获取方式即从所依赖的服务接口对应的反参中提取依赖数据的函数表达式,服务器基于该函数表达式从该反参中提取出所需的依赖数据,并将该依赖数据赋值给对应预置的依赖数据变量或直接将该依赖数据替换预置的模板字符串,从而对接口详情数据进行更新。

104、根据该下一遍历数据结点中更新后的接口详情数据,调用该下一遍历数据结点对应的服务接口,得到该下一遍历数据结点对应服务接口的反参,直至对目标服务接口对应的数据结点完成调用,输出目标反参并停止遍历;

可以理解的是,服务器通过遍历各数据结点以访问结点中存储的接口相关数据,同时根据所访问的接口相关数据递归调用各服务接口以得到待测试的目标服务接口的目标反参,例如A←B←C←D,其中,A、B、C、D均为数据结点,箭头的指向表示各数据结点对应服务接口的数据依赖信息,即D依赖于C,C依赖于B,B依赖于A,若目标服务接口为C,服务器从头遍历至A结点中的接口相关数据,从而根据A结点中的接口详情数据调用A结点对应的服务接口,得到A反参,然后遍历至B结点,由于B结点对应的服务接口需要依赖数据才可正常调用,进而服务器根据其中的依赖数据获取方式,从A反参中提取依赖数据,进而对B结点中的接口详情数据进行更新后调用B结点对应的服务接口,得到B反参,类似的,调用C结点对应的服务接口,得到C反参,作为目标反参,停止继续向下遍历。

105、获取目标服务接口对应的标准反参,并将该目标反参与标准反参进行比对,若比对结果一致,则确定该目标服务接口通过测试。

可以理解的是,标准反参为程序设计时该接口预期输出的结果,而目标反参即为当前目标服务接口实际输出的结果,将两者进行比对,即可确定该目标服务接口是否存在异常。

可选的,服务器还可以基于预置的相似度算法计算目标反参与标准反参之间的相似度,进而根据所计算的相似度确定相应的异常等级,从而对接口的测试结果进行分级,其中,相似度算法可以如欧氏距离、皮尔逊相关系数、余弦相似度等算法,本实施例对其不做限定。

可选的,服务器还可以基于预置的测试报告模板,生成测试结果对应的测试报告,并对测试报告进行持久化存储,便于日后调用与查看。

可以理解的是,本发明的执行主体可以为接口测试装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

本发明实施例中,通过遍历同一个接口数据链表,即可得到接口数据链表中任意服务接口的反参,从而对其进行测试,无需基于每个服务接口单独的测试用例逐个进行测试,其测试效率更高;且由于链表的数据结构特性,其易于修改编辑,当接收到新增或删除服务接口时,直接修改指针域,可拓展性良好。

请参阅图2,本发明实施例中接口测试方法的第二个实施例包括:

201、接收目标服务接口的测试请求,并根据该测试请求获取预置的接口数据链表,其中,该接口数据链表中包括多个数据结点,每个数据结点分别对应一个服务接口,每个数据结点的数据域中存储对应服务接口的接口详情数据和依赖数据获取方式,每个数据结点的指针域用于指示对应服务接口的数据依赖信息;

其中,步骤201与上述步骤101的执行步骤类似,具体此处不再赘述。

202、接收终端发送的数据更新请求,根据数据更新请求中的请求参数,更新该接口数据链表;

可以理解的是,数据更新请求包括但不限于新增接口、删除接口、修改接口等,当目标业务流程的逻辑需要修改时,此时终端会向服务器发送相应的数据更新请求以对该目标业务流程对应的接口数据链表进行更新调整。

可选的,服务器还可以将接口数据链表中各对应服务接口的接口测试参数存储至一临时存储空间,进而接收终端发送的数据更新请求,根据数据更新请求中的请求参数,更新接口数据链表。

可选的,该数据更新请求为接口新增请求时,服务器首先接收终端发送的接口新增请求,其中,接口新增请求中包括新增服务接口的接口详情数据、数据依赖信息以及依赖数据获取方式;

其次,服务器根据该接口新增请求,通过使用malloc函数动态申请一块空白的目标内存空间,将新增服务接口的接口详情数据和依赖数据获取方式存储至该目标内存空间的数据域中,从而得到第一目标数据结点;

然后,服务器根据新增服务接口的数据依赖信息,确定第一目标数据结点在该接口数据链表中的目标插入位置;

最后,服务器将该第一目标数据结点插入该接口数据链表中的目标插入位置中以更新该接口数据链表。具体的,服务器首先确定该接口数据链表中的目标插入位置的第一前驱数据结点和第一后继数据结点,其中,第一前驱数据结点为在该目标插入位置之前,且距该目标插入位置最近的数据结点,第一后继数据结点为在该目标插入位置之后,且距该目标插入位置最近的数据结点;然后,服务器修改该第一前驱数据结点中的指针域以将该第一前驱数据结点指向该第一目标数据结点,以及将该第一目标数据结点的指针域指向该第一后继数据结点以更新该接口数据链表。

可选的,该数据更新请求为接口删除请求时,服务器首先接收终端发送的接口删除请求,其中,接口删除请求中包括待删除服务接口的接口详情数据;

其次,服务器遍历该接口数据链表,并根据待删除服务接口的接口详情数据,确定该接口数据链表中待删除的第二目标数据结点;

最后,服务器释放该第二目标数据结点的内存空间,并将第二前驱数据结点中的指针域指向第二后继数据结点以更新该接口数据链表,其中,第二前驱数据结点为在第二目标数据结点之前,且距该第二目标数据结点最近的数据结点,第二后继数据结点为在该第二目标数据结点之后,且距该第二目标数据结点最近的数据结点。

203、遍历该接口数据链表,并根据当前遍历数据结点中存储的接口详情数据,调用当前遍历数据结点对应的服务接口,得到当前遍历数据结点对应服务接口的反参;

204、根据下一遍历数据结点中存储的依赖数据获取方式,从反参中提取依赖数据,并基于所提取的依赖数据,更新该下一遍历数据结点中的接口详情数据;

205、根据该下一遍历数据结点中更新后的接口详情数据,调用该下一遍历数据结点对应的服务接口,得到该下一遍历数据结点对应服务接口的反参,直至对目标服务接口对应的数据结点完成调用,输出目标反参并停止遍历;

206、获取目标服务接口对应的标准反参,并将该目标反参与标准反参进行比对,若比对结果一致,则确定该目标服务接口通过测试。

其中,步骤203-206与上述步骤102-105的执行步骤类似,具体此处不再赘述。

本发明实施例中,详细描述了对接口数据链表的更新过程,基于链表的结构特性,通过灵活调整指针域,释放或申请内存空间,从而便捷地进行插入或删除数据结点,可拓展性良好,进而便于测试维护。

请参阅图3,本发明实施例中接口测试方法的第三个实施例包括:

301、设定与目标服务接口对应的测试运行环境或测试运行账号;

可以理解的是,该测试运行环境是指测试用例的运行终端的环境或运行地址,由于测试用例最终需要在客户端上运行,因此这里需要使用多种运行环境对测试用例进行测试,如开发环境、测试环境或预发布环境等,这样方便测试人员在不同的运行环境下对该测试用例进行调整。

这里的运行账号是指测试用例运行需要使用的业务账号、用户账号或订单账号等业务数据。如测试某个应用的白金用户的贷款金额调整情况,则需要实用白金用户账号登录该应用进行测试。如该测试用例运行不需要使用任何运行账号数据,也可不设置运行账号。

可选的,服务器还可以设定测试框架,从而在该测试运行环境中,通过所设定测试框架的接口,使用该测试运行账号对目标服务接口进行测试。

可选的,服务器设定与目标服务接口对应的测试运行环境或测试运行账号可包括:获取目标服务接口的类型,并根据目标服务接口的类型确定是否设定测试运行账号以及运行账号的类型,以及根据该目标服务接口预置的测试要求,设定相应的测试运行环境。

302、接收目标服务接口的测试请求,并根据该测试请求获取预置的接口数据链表,其中,该接口数据链表中包括多个数据结点,每个数据结点分别对应一个服务接口,每个数据结点的数据域中存储对应服务接口的接口详情数据和依赖数据获取方式,每个数据结点的指针域用于指示对应服务接口的数据依赖信息;

303、遍历该接口数据链表,并根据当前遍历数据结点中存储的接口详情数据,调用当前遍历数据结点对应的服务接口,得到当前遍历数据结点对应服务接口的反参;

304、根据下一遍历数据结点中存储的依赖数据获取方式,从反参中提取依赖数据,并基于所提取的依赖数据,更新该下一遍历数据结点中的接口详情数据;

305、根据该下一遍历数据结点中更新后的接口详情数据,调用该下一遍历数据结点对应的服务接口,得到该下一遍历数据结点对应服务接口的反参,直至对目标服务接口对应的数据结点完成调用,输出目标反参并停止遍历;

306、获取目标服务接口对应的标准反参,并将该目标反参与标准反参进行比对,若比对结果一致,则确定该目标服务接口通过测试。

其中,步骤302-306与上述步骤101-105的执行步骤类似,具体此处不再赘述。

本发明实施例中,详细描述了为待测试的目标服务接口设定测试环境或测试运行账号的过程,通过在预置的测试环境或测试运行账号下对目标服务接口进行测试,其测试结果更加准确。

上面对本发明实施例中接口测试方法进行了描述,下面对本发明实施例中接口测试装置进行描述,请参阅图4,本发明实施例中接口测试装置一个实施例包括:

数据链表获取模块401,用于接收目标服务接口的测试请求,并根据所述测试请求获取预置的接口数据链表,其中,所述接口数据链表中包括多个数据结点,每个数据结点分别对应一个服务接口,每个数据结点的数据域中存储对应服务接口的接口详情数据和依赖数据获取方式,每个数据结点的指针域用于指示对应服务接口的数据依赖信息;

反参获取模块402,用于遍历所述接口数据链表,并根据当前遍历数据结点中存储的接口详情数据,调用当前遍历数据结点对应的服务接口,得到当前遍历数据结点对应服务接口的反参;

数据更新模块403,用于根据下一遍历数据结点中存储的依赖数据获取方式,从所述反参中提取依赖数据,并基于所提取的依赖数据,更新所述下一遍历数据结点中的接口详情数据;

递归调用模块404,用于根据所述下一遍历数据结点中更新后的接口详情数据,调用所述下一遍历数据结点对应的服务接口,得到所述下一遍历数据结点对应服务接口的反参,直至对所述目标服务接口对应的数据结点完成调用,输出目标反参并停止遍历;

反参比对模块405,用于获取所述目标服务接口对应的标准反参,并将所述目标反参与所述标准反参进行比对,若比对结果一致,则确定所述目标服务接口通过测试。

本发明实施例中,通过遍历同一个接口数据链表,即可得到接口数据链表中任意服务接口的反参,从而对其进行测试,无需基于每个服务接口单独的测试用例逐个进行测试,其测试效率更高;且由于链表的数据结构特性,其易于修改编辑,当接收到新增或删除服务接口时,直接修改指针域,可拓展性良好。

请参阅图5,本发明实施例中接口测试装置的另一个实施例包括:

测试环境设定模块501,用于设定与所述目标服务接口对应的测试运行环境或测试运行账号以在所述测试运行环境下或所述测试运行账号下对所述目标服务接口进行测试;

链表构建模块502,用于构建接口数据链表;

数据链表获取模块503,用于接收目标服务接口的测试请求,并根据所述测试请求获取接口数据链表,其中,所述接口数据链表中包括多个数据结点,每个数据结点分别对应一个服务接口,每个数据结点的数据域中存储对应服务接口的接口详情数据和依赖数据获取方式,每个数据结点的指针域用于指示对应服务接口的数据依赖信息;

链表更新模块504,用于接收终端发送的数据更新请求,根据所述数据更新请求中的请求参数,更新所述接口数据链表;

反参获取模块505,用于遍历所述接口数据链表,并根据当前遍历数据结点中存储的接口详情数据,调用当前遍历数据结点对应的服务接口,得到当前遍历数据结点对应服务接口的反参;

数据更新模块506,用于根据下一遍历数据结点中存储的依赖数据获取方式,从所述反参中提取依赖数据,并基于所提取的依赖数据,更新所述下一遍历数据结点中的接口详情数据;

递归调用模块507,用于根据所述下一遍历数据结点中更新后的接口详情数据,调用所述下一遍历数据结点对应的服务接口,得到所述下一遍历数据结点对应服务接口的反参,直至对所述目标服务接口对应的数据结点完成调用,输出目标反参并停止遍历;

反参比对模块508,用于获取所述目标服务接口对应的标准反参,并将所述目标反参与所述标准反参进行比对,若比对结果一致,则确定所述目标服务接口通过测试。

其中,所述链表构建模块502具体包括:

数据集获取单元5021,用于获取目标业务流程对应的接口数据集,其中,所述目标业务流程对应多个相互依赖的服务接口,所述接口数据集中包括各所述服务接口的接口详情数据、数据依赖信息以及依赖数据获取方式;

链表生成单元5022,用于根据所述目标业务流程对应的接口数据集,构建所述目标业务流程对应的接口数据链表,其中,所述接口数据链表中包括多个数据结点,每个数据结点分别与每个服务接口对应,每个数据结点的数据域中存储对应服务接口的接口详情数据和依赖数据获取方式,每个数据结点的指针域用于指示对应服务接口的数据依赖信息。

其中,所述链表更新模块504具体包括:

新增请求接收单元5041,用于接收终端发送的接口新增请求,其中,所述接口新增请求中包括新增服务接口的接口详情数据、数据依赖信息以及依赖数据获取方式;

内存申请单元5042,用于根据所述接口新增请求动态申请一块空白的目标内存空间;

数据存储单元5043,用于将所述新增服务接口的接口详情数据和依赖数据获取方式存储至所述目标内存空间的数据域中,得到第一目标数据结点;

位置确定单元5044,用于根据所述新增服务接口的数据依赖信息,确定所述第一目标数据结点在所述接口数据链表中的目标插入位置;

结点插入单元5045,用于将所述第一目标数据结点插入所述接口数据链表中的目标插入位置中以更新所述接口数据链表。

其中,所述结点插入单元5045具体用于:

确定所述接口数据链表中的目标插入位置的第一前驱数据结点和第一后继数据结点,其中,所述第一前驱数据结点为在所述目标插入位置之前,且距所述目标插入位置最近的数据结点,第一后继数据结点为在所述目标插入位置之后,且距所述目标插入位置最近的数据结点;

修改所述第一前驱数据结点中的指针域以将所述第一前驱数据结点指向所述第一目标数据结点,以及将所述第一目标数据结点的指针域指向所述第一后继数据结点以更新所述接口数据链表。

其中,所述反参获取模块505具体包括:

接口获取单元5051,用于遍历所述接口数据链表,并根据当前遍历数据结点中的接口地址,获取当前遍历数据结点对应的服务接口;

入参调用单元5052,用于将当前遍历数据结点中的接口参数作为入参,调用当前遍历数据结点对应的服务接口,得到当前遍历数据结点对应服务接口的反参。

本发明实施例中,模块化的设计让临床路径的构建装置各部位的硬件专注于某一功能的实现,最大化实现了硬件的性能,同时模块化的设计也降低了装置的模块之间的耦合性,更加方便维护。

上面图4和图5从模块化功能实体的角度对本发明实施例中的接口测试装置进行详细描述,下面从硬件处理的角度对本发明实施例中接口测试设备进行详细描述。

图6是本发明实施例提供的一种接口测试设备的结构示意图,该接口测试设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对接口测试设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在接口测试设备600上执行存储介质630中的一系列指令操作。

接口测试设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的接口测试设备结构并不构成对接口测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种接口测试设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述接口测试方法的各个步骤。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述接口测试方法的各个步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术分类

06120114704823