接口测试方法、装置、设备及计算机可读存储介质与流程

文档序号:27830207发布日期:2021-12-07 22:03阅读:41来源:国知局
接口测试方法、装置、设备及计算机可读存储介质与流程

1.本公开涉及计算机领域,尤其涉及一种接口测试方法、装置、设备及计算机可读存储介质。


背景技术:

2.在软件接口测试的过程中,经常会遇到测试环境不稳定、接口未开发完成、模拟某些特定数据响应返回、待测试服务依赖较为复杂等情况。发生上述情况时,则无法采用真实服务进行软件接口测试。需要对接口进行模拟,根据模拟服务进行软件接口测试。但是,现有的模拟操作(mock),技术只针对http协议,不支持远程过程调用协议(remote procedure call protocol,简称rpc协议)。
3.为了解决上述技术问题,现有技术中一般都是利用现有的开源框架自带的mock功能,进行参数配置把mock开关打开,每mock一个接口都要写一个实现类。
4.但是,采用上述方法进行接口模拟操作时,代码入侵程度较高。且需要对每一个需要模拟的接口进行实现类的编写,测试人员或者开发人员维护困难。


技术实现要素:

5.本公开提供一种接口测试方法、装置、设备及计算机可读存储介质,用于解决现有的基于rpc协议的接口模拟操作代码入侵程度较高,且维护困难的技术问题。
6.本公开的第一个方面是提供一种接口测试方法,包括:
7.获取客户端发送的测试请求,所述测试请求中包括至少一个待编辑接口标识;
8.根据所述测试请求,在预设的组名映射表中确定所述待编辑接口标识对应的目标组名,所述组名映射表中关联存储有各接口标识以及对应的自定义组名;
9.根据所述待编辑接口中的目标组名,从预设的模拟服务数据库中调用与所述目标组名对应的基于rpc协议的模拟服务;
10.根据所述目标组名对应的模拟服务进行接口测试操作。
11.本公开的第二个方面是提供一种接口测试装置,包括:
12.第一获取模块,用于获取客户端发送的测试请求,所述测试请求中包括至少一个待编辑接口标识;
13.确定模块,用于根据所述测试请求,在预设的组名映射表中确定所述待编辑接口标识对应的目标组名,所述组名映射表中关联存储有各接口标识以及对应的自定义组名;
14.第一调用模块,用于根据所述待编辑接口中的目标组名,从预设的模拟服务数据库中调用与所述目标组名对应的基于rpc协议的模拟服务;
15.测试模块,用于根据所述目标组名对应的模拟服务进行接口测试操作。
16.本公开的第三个方面是提供一种接口测试设备,包括:存储器,处理器;
17.存储器;用于存储所述处理器可执行指令的存储器;
18.其中,所述处理器用于调用所述存储器中的程序指令执行如第一方面所述的接口
测试方法。
19.本公开的第四个方面是提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的接口测试方法。
20.本公开提供的接口测试方法、装置、设备及计算机可读存储介质,通过预先在模拟服务数据库中存储有多个接口对应的模拟服务,每一模拟服务对应有用户设置的自定义组名。从而在模拟服务调用时,仅需对代码中接口对应的组名进行修改,即可以实现对模拟服务的调用操作。无需在代码中对每一接口进行模拟服务的撰写。因此,代码入侵程度不高。而且,在模拟服务需要进行修改时,仅需要对模拟服务数据库中的模拟服务进行修改即可,测试人员或开发人员对模拟服务的维护操作较为简单。
附图说明
21.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
22.图1为本公开基于的网络架构示意图;
23.图2为本公开实施例一提供的接口测试方法的流程示意图;
24.图3为本公开实施例二提供的接口测试方法的流程示意图;
25.图4为本公开实施例提供的显示界面示意图;
26.图5为本公开实施例三提供的接口测试方法的流程示意图;
27.图6为本公开实施例四提供的接口测试装置的结构示意图;
28.图7为本公开实施例五提供的接口测试装置的结构示意图;
29.图8为本公开实施例六提供的接口测试设备的结构示意图。
具体实施方式
30.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例所获得的所有其他实施例,都属于本公开保护的范围。
31.针对上述提及的现有的基于rpc协议的接口模拟操作代码入侵程度较高,且维护困难的技术问题,本公开提供了一种接口测试方法、装置、设备及计算机可读存储介质。
32.需要说明的是,本公开提供接口测试方法、装置、设备及计算机可读存储介质可运用在各种基于dubbo的模拟操作的场景中。
33.在接口测试过程中,为了实现对基于rpc协议的模拟操作,现有技术中一般都是对开源框架自带的mock功能进行参数配置,把mock功能的开关调节至开启状态。针对每一个需要采用模拟服务进行测试操作的接口,撰写一个模拟服务。但是,上述方法往往代码入侵程度较高,且较难维护。
34.在解决上述技术问题的过程中,发明人通过研究发现,为了避免在每次接口测试的过程中都进行模拟服务的撰写操作,可以预先建立模拟服务数据库。模拟服务数据库中
存储有多个接口对应的模拟服务,每一模拟服务对应有用户设置的自定义组名。从而在模拟服务调用时,仅需对代码中接口对应的组名进行修改,即可以实现对模拟服务的调用操作。无需在代码中对每一接口进行模拟服务的撰写。因此,代码入侵程度不高,且维护难度不高。
35.图1为本公开基于的网络架构示意图,如图1所示,本公开基于的网络架构至少包括:服务器11以及服务器2,其中,服务器1中设置有客户端,该服务器2中设置有接口测试装置。其中,接口测试装置2采用c/c++、java、shell或python等语言编写。客户端1与服务器2通信连接,从而客户端1能够与服务器2进行信息交互。
36.图2为本公开实施例一提供的接口测试方法的流程示意图,如图2所示,该方法包括:
37.步骤101、获取客户端发送的测试请求,所述测试请求中包括至少一个待编辑接口标识。
38.本实施例的执行主体为接口测试装置,该接口测试装置可耦合于服务器中。该服务器与客户端的服务器通信连接,从而能够与客户端进行信息交互。
39.在本实施方式中,当测试人员需要进行接口测试时,可以在客户端上发起测试请求。相应地,接口测试装置可以获取客户端发送的测试请求,该测试请求中包括至少一个待编辑接口标识。
40.步骤102、根据所述测试请求,在预设的组名映射表中确定所述待编辑接口标识对应的目标组名,所述组名映射表中关联存储有各接口标识以及对应的自定义组名。
41.实际应用中,在接口测试过程中,可能存在某些接口对应的真实服务测试环境不稳定、接口未开发完成、特定数据响应返回或者真实服务所依赖的环境较为复杂的问题,此时无法采用真实服务进行接口测试。因此,可以通过mock技术构建该真实服务对应的模拟服务。进而可以根据该模拟服务进行接口测试操作。
42.为了避免在构建模拟服务时,由运维人员或测试人员手动在代码中进行模拟服务实现类的撰写,可以预先构建模拟服务数据库。当完成对某一真实服务的模拟操作之后,可以将该真实服务对应的模拟服务发布至该模拟服务数据库中,以供后续调用。其中,该模拟服务是基于rpc协议的模拟服务。
43.相应地,模拟服务对应的组名可以为用户设置的自定义组名,该自定义组名区别于真实服务的组名。举例来说,真实服务的组名可以为xxxxxa,其对应的模拟服务的自定义组名可以为xxxxxb。
44.在本实施方式中,由于自定义组名区别于真实服务的组名,在实际应用中,可以根据测试请求,在预设的组名映射表中确定待编辑接口标识对应的目标组名。通过更改组名,实现对模拟服务的调用操作。
45.作为一种可以实施的方式,用户可以根据实际需求,直接在代码中对每一待测试接口对应的组名进行手动修改。
46.步骤103、根据所述待编辑接口中的目标组名,从预设的模拟服务数据库中调用与所述目标组名对应的基于rpc协议的模拟服务。
47.在本实施方式中,在确定待编辑接口对应的目标组名之后,可以从预设的模拟服务数据库中调用与目标组名对应的基于rpc协议的模拟服务。
48.步骤104、根据所述目标组名对应的模拟服务进行接口测试操作。
49.在本实施方式中,在获取到真实服务对应的模拟服务之后,既可以根据该基于rpc协议的模拟服务进行接口测试操作。
50.本实施例提供的接口测试方法,通过预先在模拟服务数据库中存储有多个接口对应的模拟服务,每一模拟服务对应有用户设置的自定义组名。从而在模拟服务调用时,仅需对代码中接口对应的组名进行修改,即可以实现对模拟服务的调用操作。无需在代码中对每一接口进行模拟服务的撰写。因此,代码入侵程度不高。而且,在模拟服务需要进行修改时,仅需要对模拟服务数据库中的模拟服务进行修改即可,测试人员或开发人员对模拟服务的维护操作较为简单。
51.图3为本公开实施例二提供的接口测试方法的流程示意图,在实施例一的基础上,如图3所示,步骤102之前,还包括:
52.步骤201、获取客户端发送的模拟服务创建请求,所述模拟服务创建请求中包括多个待模拟接口标识。
53.步骤202、根据所述模拟服务创建请求,从预设的数据服务器中获取每一所述待模拟接口对应的资源包以及依赖关系信息。
54.步骤203、根据所述资源包以及依赖关系信息构建每一所述待模拟接口对应的模拟服务。
55.步骤204、针对每一所述模拟服务,获取客户端发送的自定义组名,其中,所述自定义组名是用户在客户端上输入的。
56.步骤205、将所述模拟服务以及所述模拟服务对应的自定义组名发送至预设的模拟服务数据库中进行存储。
57.在本实施例中,在从模拟服务数据库中获取模拟服务,并根据模拟服务进行接口测试之前,需要构建该模拟服务数据库。具体地,可以获取客户端发送的模拟服务创建请求,其中,该模拟服务创建请求中包括多个待模拟接口标识。该待模拟接口标识为当前无法采用真实服务进行测试的接口的标识。
58.进一步地,可以根据该多个待模拟接口标识从预设的数据服务器中获取每一待模拟接口对应的资源包以及依赖关系信息。根据该资源包以及依赖关系信息构件每一待模拟接口需要调用的真实服务对应的模拟服务。
59.针对每一构建的模拟服务,用户可以根据实际需求对该模拟服务进行组名设置。具体地,可以获取客户端发送的自定义组名,该自定义组名是用户在客户端上输入的。需要说明的是,该自定义组名区别于该模拟服务对应的真实服务的组名。
60.将该模拟服务以及模拟服务对应的自定义组名发送至预设的模拟服务数据库中进行存储,完成对模拟服务数据库的构建操作。
61.具体地,用户还可以通过预设的控制台对模拟服务数据库中的模拟服务进行管理操作。图4为本公开实施例提供的显示界面示意图,如图4所示,显示界面上可以显示有当前模拟服务数据库中的全部模拟服务,用户可以通过界面交互实现对该模拟服务的管理操作。其中,该管理操作具体可以包括增加模拟服务、删除模拟服务、修改模拟服务、查询模拟服务等。
62.进一步地,在实施例一的基础上,步骤205之后,还包括:
63.获取客户端发送的模板信息,其中,所述模板信息中包括所述模拟服务对应的入参信息以及响应信息;
64.将所述模板信息发送至预设的模拟服务数据库中进行存储。
65.在本实施例中,针对每一构建的模拟服务,还需要设置该模拟服务对应的入参信息以及响应信息。在接口测试过程中,可以根据该接口调用的虚拟服务反馈的响应信息来确定该接口的性能。
66.具体地,可以获取客户端发送的模板信息,其中,该模板信息中包括模拟服务对应的入参信息以及响应信息。该入参信息以及响应信息是用户在客户端设置的。将该模板信息发送至预设的模拟服务数据库中,与其对应的模拟服务进行关联存储。从而后续可以根据该模板信息实现对接口的测试操作。
67.进一步地,在实施例一的基础上,步骤205之后,还包括:
68.根据所述模拟服务对应的自定义组名以及所述模拟服务对应的待模拟接口标识建立所述组名映射表。
69.在本实施例中,在获取到客户端发送的自定义组名之后,即可以根据该自定义组名以及模拟服务对应的待模拟接口标识建立组名映射表。从而后续可以根据该组名映射表实现对目标组名的确定。
70.本实施例提供的接口测试方法,通过在从模拟服务数据库中获取模拟服务,并根据模拟服务进行接口测试之前,构建模拟服务数据库,从而后续仅需对代码中接口对应的组名进行修改,即可以实现对模拟服务的调用操作。无需在代码中对每一接口进行模拟服务的撰写。因此,代码入侵程度不高。
71.进一步地,在上述任一实施例的基础上,所述测试请求中还包括目标入参信息,步骤104具体包括:
72.根据所述目标入参信息,在预设的数据服务器中获取与所述目标入参信息对应的响应信息。
73.将所述响应信息发送至所述客户端。
74.在本实施例中,测试请求中具体还可以包括目标入参信息。在采用基于rpc协议的模拟服务对接口进行测试时,可以根据目标入参信息,在数据服务器中获取与该目标入参信息对应的响应信息。将该响应信息发送至客户端,从而可以根据该响应信息测试调用该模拟服务的接口的性能。
75.本实施例提供的接口测试方法,通过根据所述目标入参信息,在预设的数据服务器中获取与所述目标入参信息对应的响应信息。将所述响应信息发送至所述客户端,从而能够实现对接口的测试操作。
76.进一步地,在上述任一实施例的基础上,所述测试请求中还包括待测试接口标识,步骤101之后,还包括:
77.根据所述待测试接口标识对应的待测试接口调用真实服务,根据所述真实服务进行接口测试操作。
78.在本实施例中,在测试过程中,可能存在部分接口已经开发完毕,且调用的真实服务的依赖关系不复杂,因此,可以直接采用该真实服务进行接口测试操作。
79.具体地,测试请求中还包括待测试接口标识。相应地,可以根据该待测试接口标识
直接调用真实服务,根据该真实服务进行待测试接口的测试操作。
80.图5为本公开实施例三提供的接口测试方法的流程示意图,在上述任一实施例的基础上,如图5所示,所述根据所述真实服务进行接口测试操作,包括:
81.步骤301、若检测到任一真实服务在测试过程中超过预设的时间阈值未反馈响应信息,则根据所述真实服务对应的待测试接口,在预设的组名映射表中确定所述待测试接口对应的目标组名。
82.步骤302、根据所述目标组名,从预设的模拟服务数据库中调用与所述目标组名对应的基于rpc协议的模拟服务。
83.步骤303、根据所述目标组名对应的模拟服务进行接口测试操作。
84.在本实施例中,可能部分真实服务在调用过程中出现故障,无法及时给出响应信息。此时,为了提高接口测试的效率,可以直接采用该真实服务对应的模拟服务进行接口测试操作。
85.具体地,如果检测到任一真实服务在测试过程中超过预设的时间阈值未反馈响应信息,则根据所述真实服务对应的待测试接口,在预设的组名映射表中确定所述待测试接口对应的目标组名。根据所述目标组名,从预设的模拟服务数据库中调用与所述目标组名对应的基于rpc协议的模拟服务。根据所述目标组名对应的模拟服务进行接口测试操作。
86.本实施例提供的接口测试方法,通过在真实服务在调用过程中出现故障,无法及时给出响应信息时,直接采用真实服务对应的模拟服务进行接口测试操作,从而能够提高接口测试的效率。
87.图6为本公开实施例四提供的接口测试装置的结构示意图,如图6所示,该接口测试装置包括:第一获取模块41、确定模块42、第一调用模块43以及测试模块44,其中,第一获取模块41,用于获取客户端发送的测试请求,所述测试请求中包括至少一个待编辑接口标识。确定模块42,用于根据所述测试请求,在预设的组名映射表中确定所述待编辑接口标识对应的目标组名,所述组名映射表中关联存储有各接口标识以及对应的自定义组名。第一调用模块43,用于根据所述待编辑接口中的目标组名,从预设的模拟服务数据库中调用与所述目标组名对应的基于rpc协议的模拟服务。测试模块44,用于根据所述目标组名对应的模拟服务进行接口测试操作。
88.图7为本公开实施例五提供的接口测试装置的结构示意图,在实施例四的基础上,如图7所示,所述装置还包括:第二获取模块51、第三获取模块52、构建模块53、组名获取模块54以及第一存储模块55。其中,第二获取模块51,用于获取客户端发送的模拟服务创建请求,所述模拟服务创建请求中包括多个待模拟接口标识。第三获取模块52,用于根据所述模拟服务创建请求,从预设的数据服务器中获取每一所述待模拟接口对应的资源包以及依赖关系信息。构建模块53,用于根据所述资源包以及依赖关系信息构建每一所述待模拟接口对应的模拟服务。组名获取模块54,用于针对每一所述模拟服务,获取客户端发送的自定义组名,其中,所述自定义组名是用户在客户端上输入的。第一存储模块55,用于将所述模拟服务以及所述模拟服务对应的自定义组名发送至预设的模拟服务数据库中进行存储。
89.进一步地,在实施例四的基础上,所述装置还包括:
90.第三获取模块,用于获取客户端发送的模板信息,其中,所述模板信息中包括所述模拟服务对应的入参信息以及响应信息;
91.第二存储模块,用于将所述模板信息发送至预设的模拟服务数据库中进行存储。
92.进一步地,在实施例四的基础上,所述装置还包括:
93.建立模块,用于根据所述模拟服务对应的自定义组名以及所述模拟服务对应的待模拟接口标识建立所述组名映射表。
94.进一步地,在实施例四的基础上,所述测试请求中还包括目标入参信息,所述测试模块用于:
95.根据所述目标入参信息,在预设的数据服务器中获取与所述目标入参信息对应的响应信息;
96.将所述响应信息发送至所述客户端。
97.进一步地,在上述任一实施例的基础上,所述测试请求中还包括待测试接口标识,所述装置还包括:
98.第二调用模块,用于根据所述待测试接口标识对应的待测试接口调用真实服务,根据所述真实服务进行接口测试操作。
99.进一步地,在上述任一实施例的基础上,所述第二调用模块用于:
100.若检测到任一真实服务在测试过程中超过预设的时间阈值未反馈响应信息,则根据所述真实服务对应的待测试接口,在预设的组名映射表中确定所述待测试接口对应的目标组名;
101.根据所述目标组名,从预设的模拟服务数据库中调用与所述目标组名对应的基于rpc协议的模拟服务;
102.根据所述目标组名对应的模拟服务进行接口测试操作。
103.图8为本公开实施例六提供的接口测试设备的结构示意图,如图8所示,该接口测试设备包括:存储器61,处理器62;
104.存储器61;用于存储所述处理器62可执行指令的存储器61;
105.其中,所述处理器62用于调用所述存储器61中的程序指令执行如上述任一实施例所述的接口测试方法。
106.存储器61,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器61可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
107.其中,处理器62可能是一个中央处理器(central processing unit,简称为cpu),或者是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本公开实施例的一个或多个集成电路。
108.可选的,在具体实现上,如果存储器61和处理器62独立实现,则存储器61和处理器62可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,简称为pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称为eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
109.可选的,在具体实现上,如果存储器61和处理器62集成在一块芯片上实现,则存储器61和处理器62可以通过内部接口完成相同间的通信。
110.本公开又一实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述任一实施例所述的接口测试方法。
111.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
112.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
113.最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1