一种接口测试方法、装置、系统及介质与流程

文档序号:28738442发布日期:2022-02-07 21:04阅读:49来源:国知局
一种接口测试方法、装置、系统及介质与流程

1.本发明涉及接口自动化测试领域,特别涉及一种接口测试方法、装置、系统及介质。


背景技术:

2.当前,在接口自动化测试领域中,通常使用以下测试步骤完成接口测试:手动梳理测试需求;根据需求编写测试用例;根据测试用例及接口设计编写接口测试脚本;运行接口测试脚本进行测试。但是当测试系统比较复杂,例如某些大型的应用,它可能包括几百个核心应用以及成千上万个接口,并且接口实现也比较复杂时,如果再通过测试人员手动编写测试脚本的方式去完成接口测试,就会耗费巨大的人力成本及时间成本,效率极低。并且通过这种方式编写的测试场景比较单调,可能还会由于测试用例的缺失导致系统不能完整的完成接口测试,从而给系统带来风险。
3.综上可见,如何能进行完整的接口测试并提高测试过程中的效率是目前有待解决的问题。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种接口测试方法、装置、系统及介质,能够进行完整的接口测试并提高测试过程中的效率。其具体方案如下:
5.第一方面,本技术公开了一种接口测试方法,包括:
6.获取服务器集群在响应用户业务操作的过程中产生的用户日志数据;
7.从所述用户日志数据中提取出所述用户业务操作所调用业务接口的接口请求信息;
8.获取自定义业务流,并基于所述自定义业务流所流经的目标业务接口生成相应的接口路径;
9.利用所述接口请求信息对所述接口路径中的目标业务接口进行信息配置并封装,以得到相应的待测接口流量;
10.将所述待测接口流量分别在基准环境和测试环境进行流量回放,以得到相应的接口测试结果。
11.可选的,所述获取服务器集群在响应用户业务操作的过程中产生的用户日志数据,包括:
12.按照时间段和/或服务名创建预设用户日志获取规则;
13.利用所述预设用户日志获取规则获取服务器集群在响应用户业务操作的过程中产生的用户日志数据。
14.可选的,所述从所述用户日志数据中提取出所述用户业务操作所调用业务接口的接口请求信息,包括:
15.从所述用户日志数据中提取出所述用户业务操作所调用业务接口的请求方法、请
求路径、请求参数和请求头部信息中的任意一种或几种信息作为接口请求信息。
16.可选的,所述基于所述自定义业务流所流经的目标业务接口生成相应的接口路径,包括:
17.以预设接口路径模板中的初始业务接口为路径起点并基于所述自定义业务流中的业务节点对应的目标业务接口生成相应的接口路径,其中,当所述自定义业务流中任一业务节点对应的业务接口为多个业务接口,则从该业务节点对应的所述多个业务接口中随机选择一个业务接口作为该业务节点对应的所述目标业务接口。
18.可选的,所述接口测试方法,还包括:
19.基于所述服务器集群中的所有业务接口以及不同业务接口之间的调用顺序创建接口路径模板,以得到所述预设接口路径模板。
20.可选的,所述将所述待测接口流量分别在基准环境和测试环境进行流量回放,以得到相应的接口测试结果,包括:
21.将所述待测接口流量分别在基准环境和测试环境进行流量回放,以得到第一测试结果和第二测试结果,并对所述第一测试结果和所述第二测试结果进行结果比对;
22.如果所述第一测试结果和所述第二测试结果一致,则将所述待测接口流量直接保存在第一本地流量库中;
23.如果所述第一测试结果和所述第二测试结果不一致,则将所述待测接口流量标记为失败,并保存在第二本地流量库中。
24.可选的,所述将所述待测接口流量标记为失败,并保存在第二本地流量库中之后,还包括:
25.基于被标记为失败的所述待测接口流量生成测试报告;
26.如果所述测试报告表征失败原因为所述待测接口流量无法找到所述接口路径,则将所述待测接口流量从所述第二本地流量库中进行剔除。
27.第二方面,本技术公开了一种接口测试装置,包括:
28.数据获取模块,用于获取服务器集群在响应用户业务操作的过程中产生的用户日志数据;
29.信息提取模块,用于从所述用户日志数据中提取出所述用户业务操作所调用业务接口的接口请求信息;
30.路径生成模块,用于获取自定义业务流,并基于所述自定义业务流所流经的目标业务接口生成相应的接口路径;
31.流量获取模块,用于利用所述接口请求信息对所述接口路径中的目标业务接口进行信息配置并封装,以得到相应的待测接口流量;
32.流量回放模块,用于将所述待测接口流量分别在基准环境和测试环境进行流量回放,以得到相应的接口测试结果。
33.第三方面,本技术公开了一种计算机设备,包括:
34.存储器,用于保存计算机程序;
35.处理器,用于执行所述计算机程序,以实现前述公开的接口测试方法的步骤。
36.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的接口测试方法的步骤。
37.可见,本技术提供了一种接口测试方法,首先获取服务器集群在响应用户业务操作的过程中产生的用户日志数据;并从所述用户日志数据中提取出所述用户业务操作所调用业务接口的接口请求信息;然后获取自定义业务流,并基于所述自定义业务流所流经的目标业务接口生成相应的接口路径;利用所述接口请求信息对所述接口路径中的目标业务接口进行信息配置并封装,以得到相应的待测接口流量;最后将所述待测接口流量分别在基准环境和测试环境进行流量回放,以得到相应的接口测试结果。由此可见,本技术对获取到的用户日志数据进行相关分析和编辑得到待测接口流量,并将该待测接口流量进行流量回放得到相应的接口测试结果。通过这种方式,本技术能基于接口测试结果确定该待测接口流量能否作为测试用例以完成自动化接口测试,并且,本技术通过采用线上用户真实的日志数据,而无需测试人员手动编写测试用例,提高了接口自动化测试效率,节省了人力成本和时间成本,也避免了通过手动编写测试用例可能造成测试用例缺失给系统带来的风险问题。
附图说明
38.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
39.图1为本技术公开的一种接口测试方法流程图;
40.图2为本技术公开的一种具体的接口测试方法流程图;
41.图3为本技术公开的一种具体的接口测试方法流程图;
42.图4为本技术公开的一种具体的接口测试流程图;
43.图5本技术公开的一种接口测试装置结构示意图;
44.图6为本技术公开的一种计算机设备结构图。
具体实施方式
45.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.当前,在接口自动化测试领域中,通常是通过测试人员手动编写测试脚本的方式去完成接口测试。但是当测试系统比较复杂时,如果再通过测试人员手动编写测试脚本的方式去完成接口测试,就会耗费巨大的人力成本及时间成本,效率极低。并且通过这种方式编写的测试场景比较单调,可能还会由于测试用例的缺失导致系统不能完整的完成接口测试,从而给系统带来风险。为此,本发明实施例公开了一种接口测试方法,能够进行完整的接口测试并提高测试过程中的效率。
47.参见图1所示,本发明实施例公开了一种接口测试方法,该方法包括:
48.步骤s11:获取服务器集群在响应用户业务操作的过程中产生的用户日志数据。
49.本实施例中,上述获取服务器集群在响应用户业务操作的过程中产生的用户日志
数据,具体可以包括:按照时间段和/或服务名创建预设用户日志获取规则;利用所述预设用户日志获取规则获取服务器集群在响应用户业务操作的过程中产生的用户日志数据。可以理解的是,本实施例在获取服务器集群在响应用户线上业务操作的过程中产生的用户日志数据时,主要是按照时间段信息和/或服务名信息对上述用户日志数据进行获取,也即本实施例中,并不是将服务器集群在响应用户业务操作的过程中产生的所有用户日志数据都进行获取,而是按照预先设定的用户日志获取规则对上述用户日志数据进行获取,以得到符合要求的用户日志数据。例如,当某购物平台在20:00至22:00内有购物活动时,可以选择拉取该平台这一时间段的用户日志数据,也可以拉取与用户购买商品这一业务操作对应的用户日志数据。
50.步骤s12:从所述用户日志数据中提取出所述用户业务操作所调用业务接口的接口请求信息。
51.本实施例中,上述从所述用户日志数据中提取出所述用户业务操作所调用业务接口的接口请求信息,具体可以包括:从所述用户日志数据中提取出所述用户业务操作所调用业务接口的请求方法、请求路径、请求参数和请求头部信息中的任意一种或几种信息作为接口请求信息。可以理解的是,本实施例在获取到上述用户日志数据后,需要从获取到的用户日志数据中提取出用户业务操作所调用业务接口的接口请求信息,并且还需要将该接口请求信息按照接口测试所要求的格式存储在本地数据库中。其中,需要指出的是,在上述提取过程中,可以将用户日志数据中的用户标识数据均配置为统一的数值,上述用户标识数据可以包括但不限于token(令牌)、name(姓名)和phone(电话),以及上述接口请求信息可以包括但不限于请求方法、请求路径、请求参数和请求头部信息。
52.步骤s13:获取自定义业务流,并基于所述自定义业务流所流经的目标业务接口生成相应的接口路径。
53.本实施例中,需要注意的是,首先获取自定义业务流,并基于所述自定义业务流所流经的目标业务接口随机生成相应的一条或多条接口路径。
54.步骤s14:利用所述接口请求信息对所述接口路径中的目标业务接口进行信息配置并封装,以得到相应的待测接口流量。
55.本实施例中,在生成上述接口路径之后,需要利用步骤s12中得到的接口请求信息,也即请求方法、请求路径、请求参数和请求头部信息中的任意一种或几种信息对该接口路径中的目标业务接口进行信息配置和参数封装,得到待测接口流量。
56.步骤s15:将所述待测接口流量分别在基准环境和测试环境进行流量回放,以得到相应的接口测试结果。
57.本实施例中,需要将得到的待测接口流量在线下测试环境进行测试,其中,线下测试环境包括两个部分,一个是主干分支代码的基准环境,一个是个人分支的测试环境,上述基准环境可以理解为非常理想化的环境,它是用来校正和比较在其他测试环境下的测试结果的约定环境,而测试环境则是符合真实测试场景的环境。因此,通过将待测接口流量分别在基准环境和测试环境进行流量回放得到最后的接口测试结果。
58.可见,本技术实施例首先获取服务器集群在响应用户业务操作的过程中产生的用户日志数据;并从所述用户日志数据中提取出所述用户业务操作所调用业务接口的接口请求信息;然后获取自定义业务流,并基于所述自定义业务流所流经的目标业务接口生成相
应的接口路径;利用所述接口请求信息对所述接口路径中的目标业务接口进行信息配置并封装,以得到相应的待测接口流量;最后将所述待测接口流量分别在基准环境和测试环境进行流量回放,以得到相应的接口测试结果。由此可见,本技术对获取到的用户日志数据进行相关分析和编辑得到待测接口流量,并将该待测接口流量进行流量回放得到相应的接口测试结果。通过这种方式,本技术能基于接口测试结果确定该待测接口流量能否作为测试用例以完成自动化接口测试,并且,本技术通过采用线上用户真实的日志数据,而无需测试人员手动编写测试用例,提高了接口自动化测试效率,节省了人力成本和时间成本,也避免了通过手动编写测试用例可能造成测试用例缺失给系统带来的风险问题。
59.参见图2所示,本发明实施例公开了一种具体的接口测试方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体包括:
60.步骤s21:获取服务器集群在响应用户业务操作的过程中产生的用户日志数据。
61.步骤s22:从所述用户日志数据中提取出所述用户业务操作所调用业务接口的接口请求信息。
62.步骤s23:获取自定义业务流,并以预设接口路径模板中的初始业务接口为路径起点并基于所述自定义业务流中的业务节点对应的目标业务接口生成相应的接口路径,其中,当所述自定义业务流中任一业务节点对应的业务接口为多个业务接口,则从该业务节点对应的所述多个业务接口中随机选择一个业务接口作为该业务节点对应的所述目标业务接口。
63.本实施例中,所述接口测试方法还包括:基于所述服务器集群中的所有业务接口以及不同业务接口之间的调用顺序创建接口路径模板,以得到所述预设接口路径模板。可以理解的是,不同的业务接口之间有规定先后调用顺序,因此,测试人员需要对服务器集群中的所有业务接口的调用顺序进行编辑并创建接口路径模板。
64.在得到上述接口路径模板之后,以模板中的初始业务接口,也即最先调用的业务接口为路径起点,并基于自定义业务流中的业务节点对应的目标业务接口生成相应的接口路径。需要注意的是,该自定义业务流中的很多业务节点对应的业务接口可能为多个,也即该节点有多个可选业务,当遇到这种情况时,则从多个业务接口中随机选择一个业务接口作为该业务节点对应的目标业务接口。如此一来,通过这种随机选择业务接口的方式,当整个自定义业务流的流程结束后,则会生成多条随机的接口路径,实现了尽可能多的对测试场景进行覆盖,并减少了漏测问题的发生。
65.步骤s24:利用所述接口请求信息对所述接口路径中的目标业务接口进行信息配置并封装,以得到相应的待测接口流量。
66.步骤s25:将所述待测接口流量分别在基准环境和测试环境进行流量回放,以得到相应的接口测试结果。
67.其中,关于上述步骤s21、s22、s24和s25更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
68.可见,本技术实施例在生成接口路径时通过随机选择一个业务接口,最大限度接近用户真实的业务操作场景,达到了尽可能多的覆盖测试业务接口的目的,并使得生成的所述待测接口流量也是与所述接口路径对应的随机待测接口流量,从而尽可能多的测试用户业务操作场景,减少了因为测试人员编写接口测试脚本数量有限而出现的漏测问题,提
高了系统的安全性,并且由于本技术采用自动化方式无需测试人员手动编写、调试、维护测试脚本等一系列工作,所以本技术的接口测试方法具有便捷、高效率、技术难度低特点。
69.参见图3所示,本发明实施例公开了一种具体的接口测试方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体包括:
70.步骤s31:获取服务器集群在响应用户业务操作的过程中产生的用户日志数据。
71.步骤s32:从所述用户日志数据中提取出所述用户业务操作所调用业务接口的接口请求信息。
72.步骤s33:获取自定义业务流,并基于所述自定义业务流所流经的目标业务接口生成相应的接口路径。
73.步骤s34:利用所述接口请求信息对所述接口路径中的目标业务接口进行信息配置并封装,以得到相应的待测接口流量。
74.步骤s35:将所述待测接口流量分别在基准环境和测试环境进行流量回放,以得到第一测试结果和第二测试结果,并对所述第一测试结果和所述第二测试结果进行结果比对。如果所述第一测试结果和所述第二测试结果一致,则将所述待测接口流量直接保存在第一本地流量库中。
75.本实施例中,将待测接口流量分别在基准环境和测试环境进行流量回放得到的第一测试结果和第二测试结果进行比对。当比对结果一致时,则将该待测接口流量保存在第一本地流量库中,也即说明本次的待测接口流量是符合真实场景的,那么后期可以直接使用第一本地流量库中存储的待测接口流量作为系统测试的接口测试用例。
76.需要指出的是,如果所述第一测试结果和所述第二测试结果不一致,则将所述待测接口流量标记为失败,并保存在第二本地流量库中。并且上述将所述待测接口流量标记为失败,并保存在第二本地流量库中之后,还包括:基于被标记为失败的所述待测接口流量生成测试报告;如果所述测试报告表征失败原因为所述待测接口流量无法找到所述接口路径,则将所述待测接口流量从所述第二本地流量库中进行剔除。本实施中,如果在测试环境得到的第二测试结果与在基准环境中得到的第一测试结果不一致,则说明该待测接口流量可能在测试环境上存在问题,所以会将该待测接口流量标记为失败,并单独保存在第二本地流量库中,并且会将上述被标记为失败的待测接口流量生成测试报告,以供测试人员进行分析并确认该待测接口流量是否真的存在问题,其中,如果失败原因为上述待测接口流量无法找到相应的接口路径,则将该待测接口流量从第二本地流量库中进行剔除。可以理解的是,因为在接口路径的生成过程中,用到了随机化的处理,相当于待测接口流量也是随机生成的,则有可能会出现一些不符合真实场景的待测接口流量,也即无法找到相应的接口路径,从而在测试环境中进行流量回放出现了错误。针对这类情况,则将上述待测接口流量从第二本地流量库中进行剔除。需要指出的是,本实施例中第二本地流量库中最终存储的被标记为失败的接口流量,很有可能是因为测试环境中相应的功能出现了问题而引起的。为此,本技术通过将这些被标记为失败的接口流量存储下来,可以方便以后对这些接口流量进行分析排查,以找出导致异常功能问题的原因并确定相应的解决方案。另外,在采取手段对上述功能异常问题进行解决之后,还可以进一步通过执行上述接口流量以验证相应的功能异常问题是否得到成功的解决。
77.其中,关于上述步骤s31、s32、s33和s34更加具体的处理过程可以参考前述实施例
中公开的相应内容,在此不再进行赘述。
78.可见,本技术实施例通过将待测接口流量分别在基准环境和测试环境进行流量回放得到的第一测试结果和第二测试结果进行比对,并基于比对结果确定本次待测接口流量是否能作为后期系统测试的接口测试用例。通过这种方式,无需通过测试人员手动编写测试脚本的方式去完成接口测试,提高了接口自动化测试效率,节省了人力成本和时间成本,同时也避免了通过手动编写测试用例可能造成测试用例缺失给系统带来的风险问题。
79.参见图4所示,本发明实施例公开了一种具体的接口测试流程图,该流程图包括:首先获取服务器集群响应线上用户业务操作中产生的用户日志数据并进行线上日志存储;再通过对线上用户日志数据的时间段信息、服务名信息进行拉取,并从拉取后得到的用户日志数据中提取出线上用户业务操作时所调用的业务接口的请求方法、请求路径、请求参数和请求头部信息作为接口请求信息,并将该接口请求信息进行本地日志存储;然后对上述存储的日志数据进行智能分析编辑生成待测接口流量并保存至本地流量库中;最后将该待测接口流量分别在基准环境和测试环境中进行流量回放得到各自相应的测试结果,并根据测试结果从本地流量库中将不合适的流量进行剔除,同时固化本次流量。
80.参见图5所示,本发明实施例还公开了一种接口测试装置,该装置包括:
81.数据获取模块11,用于获取服务器集群在响应用户业务操作的过程中产生的用户日志数据;
82.信息提取模块12,用于从所述用户日志数据中提取出所述用户业务操作所调用业务接口的接口请求信息;
83.路径生成模块13,用于获取自定义业务流,并基于所述自定义业务流所流经的目标业务接口生成相应的接口路径;
84.流量获取模块14,用于利用所述接口请求信息对所述接口路径中的目标业务接口进行信息配置并封装,以得到相应的待测接口流量;
85.流量回放模块15,用于将所述待测接口流量分别在基准环境和测试环境进行流量回放,以得到相应的接口测试结果。
86.可见,本技术首先获取服务器集群在响应用户业务操作的过程中产生的用户日志数据;并从所述用户日志数据中提取出所述用户业务操作所调用业务接口的接口请求信息;然后获取自定义业务流,并基于所述自定义业务流所流经的目标业务接口生成相应的接口路径;利用所述接口请求信息对所述接口路径中的目标业务接口进行信息配置并封装,以得到相应的待测接口流量;最后将所述待测接口流量分别在基准环境和测试环境进行流量回放,以得到相应的接口测试结果。由此可见,本技术对获取到的用户日志数据进行相关分析和编辑得到待测接口流量,并将该待测接口流量进行流量回放得到相应的接口测试结果。通过这种方式,本技术能基于接口测试结果确定该待测接口流量能否作为测试用例以完成自动化接口测试,并且,本技术通过采用线上用户真实的日志数据,而无需测试人员手动编写测试用例,提高了接口自动化测试效率,节省了人力成本和时间成本,也避免了通过手动编写测试用例可能造成测试用例缺失给系统带来的风险问题。
87.在一些具体实施例中,所述数据获取模块11,还包括:
88.规则创建单元,用于按照时间段和/或服务名创建预设用户日志获取规则;
89.日志数据获取单元,用于利用所述预设用户日志获取规则获取服务器集群在响应
unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
106.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
107.其中,操作系统221用于管理与控制计算机设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由计算机设备20执行的接口测试方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括计算机设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
108.进一步的,本发明实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的由接口测试过程中执行的方法步骤。
109.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
110.以上对本发明所提供的一种接口测试方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1