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

allin2024-12-22  63



1.本公开涉及计算机技术领域,尤其涉及接口测试领域。


背景技术:

2.微服务出现后,很多服务之间以api(application programming interface,应用程序编程接口)进行对接,需要对api进行测试,验证是否符合预期功能。在api测试的各种场景中,特定的输入可以具有特定的预期输出。主要将api的实际输出和预期输出进行比对来完成测试。


技术实现要素:

3.本公开提供了一种接口测试方法、装置、设备以及存储介质。
4.根据本公开的一方面,提供了一种接口测试方法,包括:
5.根据第一接口的第一输入数据,调用第一接口,所述第一接口具有依赖的第二接口;
6.根据所述第二接口的第二输入数据,调用所述第二接口得到测试响应;
7.对与所述测试响应关联的有状态数据进行检测,得到接口测试结果。
8.根据本公开的另一方面,提供了一种接口测试装置,包括:
9.第一调用模块,用于根据第一接口的第一输入数据,调用第一接口,所述第一接口具有依赖的第二接口;
10.第二调用模块,用于根据所述第二接口的第二输入数据,调用所述第二接口得到测试响应;
11.检测模块,用于对与所述测试响应关联的有状态数据进行检测,得到接口测试结果。
12.根据本公开的另一方面,提供了一种电子设备,包括:
13.至少一个处理器;以及
14.与该至少一个处理器通信连接的存储器;其中,
15.该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开中任一实施例的方法。
16.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开中任一实施例的方法。
17.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开中任一实施例的方法。
18.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
19.附图用于更好地理解本方案,不构成对本公开的限定。其中:
20.图1是根据本公开一实施例的接口测试方法的流程示意图;
21.图2是根据本公开另一实施例的接口测试方法的流程示意图;
22.图3是根据本公开另一实施例的接口测试方法的流程示意图;
23.图4是根据本公开另一实施例的接口测试方法的流程示意图;
24.图5是根据本公开另一实施例的接口测试方法的流程示意图;
25.图6是根据本公开另一实施例的接口测试方法的流程示意图;
26.图7是根据本公开另一实施例的接口测试方法的流程示意图;
27.图8是根据本公开一实施例的接口测试装置的结构示意图;
28.图9是根据本公开另一实施例的接口测试装置的结构示意图;
29.图10是根据单个输入和单个输出进行接口测试的示意图;
30.图11是根据多个输入和多个输出进行接口测试的示意图;
31.图12是用来实现本公开实施例的接口测试方法的电子设备的框图。
具体实施方式
32.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
33.图1是根据本公开一实施例的接口测试方法的流程示意图。该方法可以包括:
34.s101、根据第一接口的第一输入数据,调用第一接口,所述第一接口具有依赖的第二接口;
35.s102、根据所述第二接口的第二输入数据,调用所述第二接口得到测试响应;
36.s103、对与所述测试响应关联的有状态数据进行检测,得到接口测试结果。
37.在本公开实施例中,在进行api测试的过程中,需要测试的api可能具有依赖的下游api。第一接口可以为需要测试的api,第二接口可以为第一接口依赖的下游api。api也可以称为api服务等。
38.在本公开实施例中,可以执行第一接口的测试用例向第一接口发送第一测试请求,以调用该第一接口。其中,该第一测试请求中可以包括该第一接口的第一输入数据。该第一输入数据可以包括测试用例中预先配置的第一接口的一个或多个输入数据。例如:测试用例中第一接口的输入数据可以包括:请求地址、请求方式、请求参数等。
39.在本公开实施例中,调用第一接口可以根据该第一接口的第一输入数据执行该第一接口的业务逻辑,确定后续需要调用的第二接口。确定后续需要调用的第二接口后,可以向需要调用的第二接口发送第二测试请求,以调用该第二接口。其中,该第二测试请求包括该第二接口的第二输入数据。该第二接口的第二输入数据可以包括测试用例中预先配置的第二接口的一个或多个输入数据。和/或,该第二接口的第二输入数据也可以包括执行第一接口的业务逻辑后得到的该第二接口的一个或多个输入数据。
40.在本公开实施例中,调用第二接口可以根据该第二接口的第二输入数据执行该第
二接口的业务逻辑,得到测试响应。测试响应中可以包括具体测试成功或测试失败等的结果代码,也可以包括测试成功或测试失败等的具体原因。
41.在本公开实施例中,接口调用结果可能包括有状态或无状态。其中,有状态可以表示执行该接口的业务逻辑后有数据需要存储,无状态可以表示执行该接口的业务逻辑后没有数据需要存储。可以将调用接口后需要存储的数据称为与接口的测试响应关联的有状态数据。
42.在本公开实施例中,对与测试响应关联的有状态数据进行检测,可以根据这些有状态数据是否成功存储,来确定接口测试是否成功。例如,如果调用第二接口后的有状态数据成功存储,表示接口测试成功。如果调用第二接口后的有状态数据未成功存储,表示接口测试失败。本公开实施例的接口测试结果可以包括接口测试成功或失败,也可以包括接口测试成功或失败的具体原因。
43.在本公开实施例中,根据第一接口的第一输入数据调用第一接口,并且根据依赖第一接口的第二接口的第二输入数据调用第二接口得到测试响应,能够适用于更加全面的接口测试场景,并且通过检测与测试响应关联的有状态数据能够得到更加准确的接口测试结果。
44.图2是根据本公开另一实施例的接口测试方法的流程示意图。该实施例的方法包括上述接口测试方法实施例的一个或多个特征。在一种可能的实施方式中,所述第二接口为所述第一接口依赖的下游接口,在需要调用多个所述第二接口的情况下,每个所述第二接口具有对应的所述第二输入数据。
45.在本公开实施例中,第一接口可能具有多个依赖的下游接口。不同的下游接口可能具有不同的业务逻辑。不同的下游接口可能需要不同的第二输入数据。不同的下游接口可能返回不同的测试响应。
46.在本公开实施例中,调用第一接口后可以确定需要继续调用哪些下游接口。需要调用的下游接口可以表示为第二接口。如果需要调用一个第二接口,向该第二接口发送包括该第二接口对应的第二输入数据。如果需要调用多个第二接口,可以分别向每个第二接口发送对应的第二输入数据。此外,根据第一接口的业务逻辑,如果需要按照一定的顺序调用不同的接口,也可以按照该顺序向第二接口发送对应的第二输入数据。如果不同的第二接口之间也具有依赖关系,可以根据该依赖关系需要的顺序向不同的第二接口发送对应的第二输入数据。在测试中,通过调用第一接口下游的第二接口,可以使得测试过程更加完备,测试结果更加准确。进一步地,可以适用于更加丰富的应用场景。
47.例如,调用第一接口后需要调用第二接口api1。api1对应的输入数据包括d11和d12。可以向api1传递输入数据d11和d12,调用api1。
48.再如,调用第一接口后需要分别调用第二接口api1和api2。api1对应的输入数据包括d11和d12,api2对应的输入数据包括d21。可以分别向api1和api2传递对应的输入数据,具体地,向api1传递输入参数d11和d12以调用api1,并且向api2传递输入数据d21以调用api2。
49.再如,调用第一接口后需要先调用第二接口api1,再调用第二接口api2。api1对应的输入数据包括d11和d12,api2对应的输入数据包括d21。可以先向api1传递输入数据d11和d12以调用api1,再向api2传递输入数据d21以调用api2。
50.在一种可能的实施方式中,如图2所示,该方法还包括:
51.s201、配置第一接口的测试用例,所述测试用例中包括以下一种或多种:
52.所述第一接口的所述第一输入数据;
53.所述第一输入数据的第一预期输出结果;
54.一个或多个所述第二接口的所述第二输入数据;
55.与所述测试响应关联的有状态数据的第二预期输出结果。
56.在本公开实施例中,可以支持对多种类型的api进行测试。也即是说,第一接口的类型可以有多种,每种类型的第一接口测试所需的第一输入数据可能不同。
57.在第一接口的测试用例中可以配置第一接口的各种输入数据。在第一接口的测试用例中还可以配置第一输入数据的第一预期输出结果。根据第一预期输出结果可以对收到的测试响应进行比较,以确定测试响应是否符合第一预期输出结果。例如,第一预期输出结果包括测试成功需要返回期望内容,可以对测试响应中包括的成功代码和返回的实际内容。如果返回的实际内容与测试成功需要返回期望内容匹配,则可以判定测试响应符合第一预期输出结果。这种情况下,需要进一步检测与测试相应关联的有状态数据。如果返回的实际内容与测试成功需要返回期望内容不匹配,则可以判定测试响应不符合第一预期输出结果。这种情况下,可以不检测与测试相应关联的有状态数据,进而判定本次接口测试失败。
58.在第一接口的测试用例中还可以配置第一接口的各个下游接口的输入数据。有些需要调用的下游接口即第二接口的输入数据也可以是在调用第一接口后生成的。或者,有些第二接口的输入数据一部分在测试用例中,一部分是调用第一接口后生成的。在第一接口的测试用例中还可以配置各种测试响应关联的有状态数据的第二预期输出结果。不同的下游接口可能具有不同的测试响应,不同的测试响应关联的有状态数据的预期输出结果也可能不同。
59.在本公开实施例中,在测试用例中配置多种输入数据和预期输出结果,可以适用于更加丰富的接口测试场景。
60.在一种可能的实施方式中,如图3所示,s103对与所述测试响应关联的有状态数据进行检测,包括:
61.s301、在所述测试响应符合第一预期输出结果的情况下,检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果。
62.在本公开实施例中,可以先检测测试响应是否符合第一预期输出结果。如果测试响应符合第一预期输出结果,再检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果。在与测试响应关联的有状态数据的实际输出结果符合第二预期输出结果的情况下,接口测试结果可以包括测试成功。或者,与测试响应关联的有状态数据的实际输出结果不符合第二预期输出结果的情况下,接口测试结果可以包括测试失败。在本公开实施例中,采用多重校验,不仅校验测试响应,还检测与测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果,可以更加完备的对接口的实际执行结果进行检测,从而得到更加准确的接口测试结果。
63.在一种可能的实施方式中,有状态数据的类型可以包括多种。例如,数据库存储数据、缓存数据、消息、通知事件等。相应地,有状态数据的第二预期输出结果可以包括存储某
些数据存储成功、某些消息写入正常、某些通知事件通知成功等。本公开实施例也可以适用于其他类型的有状态数据,具体不做限制。下面分别对几种类型的有状态数据的检测方法进行举例描述。
64.在一种可能的实施方式中,所述有状态数据的类型包括数据库存储数据,所述第二预期输出结果包括在数据库中存在第一数据。如图4所示,s301中,检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果,包括:
65.s401、向数据库发送第一数据查询请求,所述第一数据查询请求包括所述第一数据;
66.s402、查找所述数据库中是否存在与所述第一数据匹配的数据。
67.例如,调用增加会员api,会在会员数据库中增加某个会员的记录。在调用增加会员api后,可以根据测试成功的响应向会员数据库发送数据查询请求,查询该数据库中是否存在第一数据、即需要存储的会员信息。例如,需要存储的会员信息m1包括用户名称、会员类型、会员等级、会员标识等的键值对。如果数据库中包括与m1相同的信息,则添加会员成功;否则,添加会员失败。
68.再如,调用删除会员api,会在会员数据库中删除某个会员的记录。可以根据测试成功的响应向会员数据库发送数据查询请求,查询该数据库中是否存在第一数据、即需要删除的会员信息。例如,需要删除的会员信息m2包括用户名称、会员类型、会员等级、会员标识等的键值对。如果数据库中包括与m2相同的信息,则删除会员失败;否则删除会员成功。
69.在本公开实施例中,可以查找数据库以检测与测试响应关联的数据库存储数据是否准确,从而得到更加准确的接口测试结果。
70.在一种可能的实施方式中,所述有状态数据的类型包括缓存数据,所述第二预期输出结果包括在缓存中存在第二数据。如图5所示,s301中,检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果,包括:
71.s501、向缓存发送第二数据查询请求,所述第二数据查询请求包括所述第二数据;
72.s502、查找缓存中是否存在与所述第二数据匹配的数据。
73.在本公开实施例中,缓存中可以包括哈希映射。查找缓存中的哈希映射可以确定是否存在与第二数据匹配的数据。例如,需要查找的第二数据包括用户名称、会员类型、会员等级、会员标识等的键值对。哈希映射的主键包括会员标识前缀,根据会员标识前缀可以查找到得到用户名称、会员类型、会员等级等的键值对。然后可以比较查找到的内容与第二数据是否匹配。在添加会员场景中,如果在缓存中查找到的内容与第二数据匹配,可以表示添加会员成功;否则表示添加会员失败。在删除会员场景中,如果在缓存中查找不到与第二数据匹配的内容,可以表示删除会员成功;否则表示删除会员失败。
74.在本公开实施例中,通过查找缓存以检测与测试响应关联的缓存数据是否准确,从而得到更加准确的接口测试结果。
75.在一种可能的实施方式中,所述有状态数据的类型包括异步消息,所述第二预期输出结果包括异步消息写入正常。如图6所示,s301中,检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果,包括:
76.s601、调用消息检测接口,检测与所述测试响应关联的异步消息是否写入正常。
77.在本公开实施例中,异步消息也可以称为异步化消息。使用异步消息传送可以不
用等待结果,并行执行其他操作。如果某些接口测试过程中需要传送一些异步消息,可以调用相关的消息检测接口与异步消息的接收端进行交互,检测该异步消息是否写入正常。
78.在本公开实施例中,可以调用接口检测与测试响应关联的异步消息是否写入正常,从而得到更加准确的接口测试结果。
79.在一种可能的实施方式中,所述有状态数据的类型包括通知事件,所述第二预期输出结果包括通知事件通知成功。如图7所示,s301中,检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果,包括:
80.s701、调用通知检测接口,检测与所述测试响应关联的通知事件是否通知成功。
81.在本公开实施例中,通知事件可以包括具体需要通知的内容,例如通知某个客户端,会员信息添加成功。可以调用通知检测接口与该客户端交互,以检测该通知事件是否通知成功,如果客户端收到了具体通知内容,可以判定该通知事件通知成功;否则判定该通知事件通知失败。
82.在本公开实施例中,可以调用接口检测与测试响应关联的通知事件是否通知成功,从而得到更加准确的接口测试结果。
83.图8是根据本公开一实施例的接口测试装置的结构示意图。该装置可以包括:
84.第一调用模块801,用于根据第一接口的第一输入数据,调用第一接口,所述第一接口具有依赖的第二接口;
85.第二调用模块802,用于根据所述第二接口的第二输入数据,调用所述第二接口得到测试响应;
86.检测模块803,用于对与所述测试响应关联的有状态数据进行检测,得到接口测试结果。
87.图9是根据本公开一实施例的接口测试装置的结构示意图。该实施例的方法包括上述接口测试方法实施例的一个或多个特征。在一种可能的实施方式中,所述第二接口为所述第一接口依赖的下游接口,在需要调用多个所述第二接口的情况下,每个所述第二接口具有对应的所述第二输入数据。
88.在一种可能的实施方式中,该装置还包括:
89.配置模块901,用于配置所述第一接口的测试用例,所述测试用例中包括以下一种或多种:
90.所述第一接口的所述第一输入数据;
91.所述第一输入数据的第一预期输出结果;
92.一个或多个所述第二接口的所述第二输入数据;
93.与所述测试响应关联的有状态数据的第二预期输出结果。
94.在一种可能的实施方式中,所述检测模块803用于在所述测试响应符合第一预期输出结果的情况下,检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果。
95.在一种可能的实施方式中,所述有状态数据的类型包括数据库存储数据,所述第二预期输出结果包括在数据库中存在第一数据,所述检测模块803包括:
96.数据库检测子模块8031,用于向数据库发送第一数据查询请求,所述第一数据查询请求包括所述第一数据;查找所述数据库中是否存在与所述第一数据匹配的数据。
97.在一种可能的实施方式中,所述有状态数据的类型包括缓存数据,所述第二预期输出结果包括在缓存中存在第二数据,所述检测模块803包括:
98.缓存检测子模块8032,用于向缓存发送第二数据查询请求,所述第二数据查询请求包括所述第二数据;
99.查找缓存中是否存在与所述第二数据匹配的数据。
100.在一种可能的实施方式中,所述有状态数据的类型包括异步消息,所述第二预期输出结果包括异步消息写入正常,所述检测模块803包括:
101.消息检测子模块8033,用于调用消息检测接口,检测与所述测试响应关联的异步消息是否写入正常。
102.在一种可能的实施方式中,所述有状态数据的类型包括通知事件,所述第二预期输出结果包括通知事件通知成功,所述检测模块803包括:
103.通知检测子模块8034,用于调用通知检测接口,检测与所述测试响应关联的通知事件是否通知成功。
104.本公开实施例的接口测试装置的各模块、子模块的具体功能和示例的描述,可以参见上述接口测试方法实施例中对应步骤的相关描述,在此不再赘述。
105.参见图10,api的测试用例中可以包括待测api的请求的输入数据(可以简称请求输入)及其对应的预期输出数据(可以简称请求预期输出)。将请求实际输出与请求预期输出进行对比,以确定是否匹配。由于待测api可能依赖一些下游api,单输入单输出所适用的场景较少,测试不完备,容易出现漏测。
106.更加完备的测试可以包括多个输入和多个输出。例如,参见图11的api测试包括两个输入和两个输出对比,具体如下:
107.输入可以包括请求输入和依赖下游响应(response)输入。比如一个api服务x依赖下游api服务y。这个api服务y返回的响应不同,即使api服务x的请求输入相同,得到预期的结果也可能不同。
108.输出可以包括请求预期输出和有状态数据预期输出。这样,可以进行有状态数据的检测。有状态数据可以包括比如数据库(database,db)存储数据、缓存数据、消息、通知事件等。通过调用相关的api接口可以确认db存储数据是否准确、缓存数据是否准确、异步消息是否写入正常、通知事件是否通知到位等。
109.以api文档为参考,可以构造各种正常、异常测试场景。对于特定的输入数据(可以简称输入),有特定预期中的输出数据(可以简称输出),然后与实际返回的输出进行对比,确定是否匹配。例如,某个api服务(server)是http协议的,该api服务是会员状态管理服务。会员状态可以存储在持久化数据库里,比如mysql存储引擎。其中增加会员的api文档如下:
110.请求(request)文档的示例可以包括:
111.请求url:xxx/member/add
112.请求method:post
113.请求的内容(body)可以包括json串,相关的键值(key/value)请求相关参数参见下表:
[0114][0115]
请求body示例如下:
[0116][0117]
有状态数据的检测,以缓存数据为例子。在测试用例里,当收到请求的响应(response)后,在判断响应是否符合预期的同时,还可以去相应的存储层检测数据是否符合预期。
[0118]
以会员状态管理服务为例子,增加会员api的请求的示例如下:
[0119]
curl-v“xxx/member/add
”‑d‘
{"name":"abc","vip_type":1,"vip_level":1,"uid":1}
’‑
x post
[0120]
进行接口测试过程中会将数据写入缓存,该数据可以包括一个哈希映射(hash map),该哈希映射的主键(key)采用用户标识(uid)为前缀,比如“uid-1”。如果在缓存中查询不到记录,说明写入缓存存在问题,查询命令如下:hgetall uid-1。
[0121]
如果正常,hgetall uid-1会得到如下数据:
[0122]
1)"name"
[0123]
2)"abc"
[0124]
3)"vip_tpye"
[0125]
4)"1"
[0126]
5)"vip_level"
[0127]
6)"1"
[0128]
在本公开实施例中,采用多输入和多输出进行测试,提高了测试的完备性,能够覆盖到更多的测试场景,避免漏测。
[0129]
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
[0130]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0131]
图12示出了可以用来实施本公开的实施例的示例电子设备1200的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数
字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0132]
如图12所示,设备1200包括计算单元1201,其可以根据存储在只读存储器(rom)1202中的计算机程序或者从存储单元1208加载到随机访问存储器(ram)1203中的计算机程序,来执行各种适当的动作和处理。在ram 1203中,还可存储设备1200操作所需的各种程序和数据。计算单元1201、rom 1202以及ram 1203通过总线1204彼此相连。输入/输出(i/o)接口1205也连接至总线1204。
[0133]
设备1200中的多个部件连接至i/o接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0134]
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如接口测试方法。例如,在一些实施例中,接口测试方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由rom 1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到ram 1203并由计算单元1201执行时,可以执行上文描述的接口测试方法的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行接口测试方法。
[0135]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0136]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0137]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电
子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0138]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
[0139]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0140]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0141]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0142]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

技术特征:
1.一种接口测试方法,包括:根据第一接口的第一输入数据,调用第一接口,所述第一接口具有依赖的第二接口;根据所述第二接口的第二输入数据,调用所述第二接口得到测试响应;对与所述测试响应关联的有状态数据进行检测,得到接口测试结果。2.根据权利要求1所述的方法,其中,所述第二接口为所述第一接口依赖的下游接口,在需要调用多个所述第二接口的情况下,每个所述第二接口具有对应的所述第二输入数据。3.根据权利要求1或2所述的方法,还包括:配置所述第一接口的测试用例,所述测试用例中包括以下一种或多种:所述第一接口的所述第一输入数据;所述第一输入数据的第一预期输出结果;一个或多个所述第二接口的所述第二输入数据;与所述测试响应关联的有状态数据的第二预期输出结果。4.根据权利要求1至3中任一项所述的方法,其中,对与所述测试响应关联的有状态数据进行检测,包括:在所述测试响应符合第一预期输出结果的情况下,检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果。5.根据权利要求4所述的方法,其中,所述有状态数据的类型包括数据库存储数据,所述第二预期输出结果包括在数据库中存在第一数据,检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果,包括:向数据库发送第一数据查询请求,所述第一数据查询请求包括所述第一数据;查找所述数据库中是否存在与所述第一数据匹配的数据。6.根据权利要求4所述的方法,其中,所述有状态数据的类型包括缓存数据,所述第二预期输出结果包括在缓存中存在第二数据,检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果,包括:向缓存发送第二数据查询请求,所述第二数据查询请求包括所述第二数据;查找缓存中是否存在与所述第二数据匹配的数据。7.根据权利要求4所述的方法,其中,所述有状态数据的类型包括异步消息,所述第二预期输出结果包括异步消息写入正常,检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果,包括:调用消息检测接口,检测与所述测试响应关联的异步消息是否写入正常。8.根据权利要求4所述的方法,其中,所述有状态数据的类型包括通知事件,所述第二预期输出结果包括通知事件通知成功,检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果,包括:调用通知检测接口,检测与所述测试响应关联的通知事件是否通知成功。9.一种接口测试装置,包括:第一调用模块,用于根据第一接口的第一输入数据,调用第一接口,所述第一接口具有依赖的第二接口;第二调用模块,用于根据所述第二接口的第二输入数据,调用所述第二接口得到测试
响应;检测模块,用于对与所述测试响应关联的有状态数据进行检测,得到接口测试结果。10.根据权利要求9所述的装置,其中,所述第二接口为所述第一接口依赖的下游接口,在需要调用多个所述第二接口的情况下,每个所述第二接口具有对应的所述第二输入数据。11.根据权利要求9或10所述的装置,还包括:配置模块,用于配置所述第一接口的测试用例,所述测试用例中包括以下一种或多种:所述第一接口的所述第一输入数据;所述第一输入数据的第一预期输出结果;一个或多个所述第二接口的所述第二输入数据;与所述测试响应关联的有状态数据的第二预期输出结果。12.根据权利要求9至11中任一项所述的装置,其中,所述检测模块用于在所述测试响应符合第一预期输出结果的情况下,检测与所述测试响应关联的有状态数据的实际输出结果是否符合第二预期输出结果。13.根据权利要求12所述的装置,其中,所述有状态数据的类型包括数据库存储数据,所述第二预期输出结果包括在数据库中存在第一数据,所述检测模块包括:数据库检测子模块,用于向数据库发送第一数据查询请求,所述第一数据查询请求包括所述第一数据;查找所述数据库中是否存在与所述第一数据匹配的数据。14.根据权利要求12所述的装置,其中,所述有状态数据的类型包括缓存数据,所述第二预期输出结果包括在缓存中存在第二数据,所述检测模块包括:缓存检测子模块,用于向缓存发送第二数据查询请求,所述第二数据查询请求包括所述第二数据;查找缓存中是否存在与所述第二数据匹配的数据。15.根据权利要求12所述的装置,其中,所述有状态数据的类型包括异步消息,所述第二预期输出结果包括异步消息写入正常,所述检测模块包括:消息检测子模块,用于调用消息检测接口,检测与所述测试响应关联的异步消息是否写入正常。16.根据权利要求12所述的装置,其中,所述有状态数据的类型包括通知事件,所述第二预期输出结果包括通知事件通知成功,所述检测模块包括:通知检测子模块,用于调用通知检测接口,检测与所述测试响应关联的通知事件是否通知成功。17.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-8中任一项所述的方法。19.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根
据权利要求1-8中任一项所述的方法。

技术总结
本公开提供了接口测试方法、装置、设备以及存储介质,涉及计算机技术领域,尤其涉及接口测试领域。具体实现方案为:根据第一接口的第一输入数据,调用第一接口,所述第一接口具有依赖的第二接口;根据所述第二接口的第二输入数据,调用所述第二接口得到测试响应;对与所述测试响应关联的有状态数据进行检测,得到接口测试结果。在本公开实施例中,根据第一接口的第一输入数据调用第一接口,并且根据依赖第一接口的第二接口的第二输入数据调用第二接口得到测试响应,能够适用于更加全面的接口测试场景,并且通过检测与测试响应关联的有状态数据能够得到更加准确的接口测试结果。态数据能够得到更加准确的接口测试结果。态数据能够得到更加准确的接口测试结果。


技术研发人员:李鸿斌
受保护的技术使用者:北京百度网讯科技有限公司
技术研发日:2022.04.06
技术公布日:2022/7/4
转载请注明原文地址: https://www.8miu.com/read-17858.html

最新回复(0)