一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种接口测试用例生成方法及接口测试方法与流程

2022-03-01 18:15:47 来源:中国专利 TAG:


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.图1是本实施例提供的接口测试用例生成方法的流程图;
38.图2是本实施例提供的接口库的录入示意图;
39.图3是本实施例提供的接口测试方法的流程图;
40.图4是本实施例提供的对多个待测试接口执行接口测试的过程图;
41.图5是本实施例提供的接口测试报告生成的过程图;
42.图6是本实施例提供的一种终端设备的结构原理图。
具体实施方式
43.本发明提供一种接口测试用例生成方法及接口测试方法,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
44.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
45.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
46.下面结合具体实施例对本发明进行详细说明。
47.如图1所示,本实施例提供了一种接口测试用例生成方法,所述方法包括:
48.s100、获取待测试接口,确定所述待测试接口对应的预设插件。
49.具体地,所述待测试接口是通过入口脚本提供的接口测试要求而确定的。例如,所述接口测试要求可以为根据待带测试接口仅生成接口测试用例;也可以为根据待测试接口生成接口测试用例,并通过所述接口测试用例进行接口测试,以生成待测试接口的测试报告。根据所述接口测试要求可以确定需要取用的待测试接口以及预设插件,所述待测试接口可以为一个也可以为多个,所述预设插件为预先设计的插件,并用于对接口数据进行变化以得到接口测试用例。本实施例通过一个待测试接口生成接口测试用例,对接口测试用例的生成方法进行详细说明。
50.在本实施例中,所述所述获取待测试接口,根据所述待测试接口确定待测试接口对应的至少一个预设插件具体为:
51.s101、获取待测试接口,并确定所述待测试接口对应的测试点;
52.s102、根据所述测试点确定所述待测试接口对应的预设插件。
53.具体地,所述测试点是指需要通过接口测试验证待测试接口是否能够实现接口功
能,一个测试点用于验证待测试接口的一个接口功能,所述测试点是通过入口脚本提供的接口测试要求而确定的,所述接口测试要求包括待测试接口和待测试接口对应的测试点,每个待测试接口可以有一个测试点也可以有多个测试点,所述测试点和所述预设插件为一一对应的关系,从而可以根据接口测试要求中待测试接口对应的测试点确定所述待测试接口对应的预设插件。
54.在本实施例一个实现方式中,在获取待测试接口前,通过录入不同接口的接口数据能够得到不同接口组成的接口库,根据不同测试点设计不同的插件,在对所述预设插件进行设计时,通过录入预设插件适用的接口范围、变化函数等以得到不同预设插件,从而能够得到不同插件组成的插件库。
55.在本实施例的一个具体实现方式中,所述预设插件为fuzzing插件,根据不同测试点能够设计不同的fuzzing插件,对待测试接口的接口数据进行fuzzing变化,从而自动生成不同测试点对应的接口测试用例。在根据接口测试需求确定了待测试接口以及待测试接口对应的测试点以后,通过接口库调用待测试接口,而后根据待测试接口的测试点在插件库中确定需要调用的fuzzing插件,并通过fuzzing插件对待测试接口的接口数据进行fuzzing变化,从而得到不同的接口测试用例。
56.在本实施例的一个具体实现方式中,如图2所示,对于接口库中接口的录入,用户可以根据接口文档获取待测试接口的接口数据,所述接口数据包括接口的原始测试字段名和re-match字段等,并根据接口库的录入格式,新建接口脚本以完成接口的录入,例如,所述接口脚本可以为:
[0057][0058][0059]
按照上述脚本格式可以将接口文档中的待测试接口的接口数据录入到接口脚本中,复制接口脚本到接口库的文件目录下即可完成将接口脚本导入接口库,得到名称为
login_api_info.py的接口,进而实现对不同接口的录入以生成接口库。
[0060]
进一步,根据所述测试点完成预设插件的设计并录入预设插件,例如,若测试点为验证待测试接口是否对不同大小写的字段名正常响应,待测试接口中原始测试字段名为“content-type”,通过预设插件对原始测试字段名大小写进行变化,得到content-type、content-type以及“conttent-type”等接口测试用例,进而执行接口测试确定待测试接口对content-type,content-type,conttent-type是否能进行正常响应,从而实现通过预设插件生成的接口测试用例验证接口功能是否实现。
[0061]
对于fuzzing插件的设计,可以按照插件库的格式,新增fuzzing插件的脚本,通过录入预设插件适用的接口范围可以确定所述预设插件能够生成哪些接口的测试用例,通过针对不同测试点录入预设插件的变化函数,用以对待测试接口的原始测试字段名进行不同变化,以得到针对不同测试点生成接口测试用例,进而能够实现针对不同测试点自动生成不同接口的接口测试用例,并且每个接口只需要通过录入接口数据时维护一次,每个测试点也只需通过录入预设插件时维护一次,从而实现提高了接口测试用例的生成效率。例如,所述fuzzing插件的脚本可以为:
[0062][0063]
根据上述fuzzing插件的脚本可以得到fuzzing插件:field_name_upper_lower_fuzzing.py,通过fuzzing插件脚本中fuzzing_type等字段,可以确定所述fuzzing插件适用的接口类型,通过fuzzing插件的脚本中fuzzing函数字段,可以实现对fuzzing插件适用的接口进行fuzzing变化,以得到原始测试字段名发生大小写变化的接口测试用例。
[0064]
在本实施例的一个实现方式中,若所述测试点为多个测试点,所述根据所述测试点确定所述待测试接口对应的预设插件具体包括:
[0065]
s1021、对于若干测试点中的每个测试点,根据该测试点确定所述待测试接口对应的预设插件,其中,若干测试点中的各测试点对应的预设插件互不相同。
[0066]
具体地,当根据接口测试要求确定了多个测试点,所述测试点和所述预设插件为一一对应的关系,每个测试点对应的预设插件互不相同,那么可以根据多个测试点可以确定多个测试点对应的多个预设插件。在本实施例的一个实现方式中,根据接口测试要求可以确定所述待测试接口对应的预设插件为插件库中的所有插件。
[0067]
s200、获取待测试接口的接口数据,控制所述预设插件基于所述接口数据生成所述待测试接口对应的接口测试用例。
[0068]
具体地,所述待测试接口的接口数据包括接口的url(统一资源标识符)和测试字段,所述测试字段包括字段名称、字段类型以及字段的取值范围。可选地,所述接口数据还可以包括re-match字段,所述re-match字段包括所述待测试接口对应的期望值,用以覆盖
预设插件设置的默认期望值。通过所述预设插件可以对所述测试字段进行不同的变化,从而得到不同的接口测试用例。相应地,所述获取待测试接口的接口数据,控制所述预设插件基于所述接口数据生成所述待测试接口对应的接口测试用例具体为:
[0069]
s201、获取待测试接口的接口数据,根据所述接口数据确定所述待测试接口对应的测试字段;
[0070]
s202、控制所述预设插件基于所述测试字段,生成所述待测试接口对应的接口测试用例。
[0071]
具体地,所述测试字段是指待测试接口用于生成不同接口测试用例的字段,获取接口数据后,将接口数据导入fuzzing插件,对测试字段进行fuzzing变化,能够生成该测试字段对应的接口测试用例。
[0072]
例如,对于上述接口名称为login_api_info.py的接口,其包括名为“content-type”的原始测试字段,当根据测试点从fuzzing插件库取出预设插件:field_name_upper_lower_fuzzing.py,根据该插件的描述,可以判断该插件可适用于该接口,进而将待测试接口的接口数据导入该插件,对于原始的测试字段名“content-type”,经过该fuzzing插件可以生成多个不同大小写的字段名:content-type,content-type,conttent-type,每个新生成的字段名均为一个新接口测试用例。相应地,所述控制所述预设插件基于所述测试字段,生成所述待测试接口对应的接口测试用例具体包括:
[0073]
s2021、获取所述预设插件的变化函数;
[0074]
s2022、通过所述变化函数对测试字段进行变化,以生成所述待测试接口对应的接口测试用例。具体地,当所述预设插件为fuzzing插件时,根据fuzzing插件的fuzzing函数字段对接口数据中的测试字段进行fuzzing变化,能够得到不同的接口测试用例。
[0075]
值得注意的是,在调用预设插件时,由于不同的插件使用的接口范围可能不同,因而在调用预设插件时还需要判断待测试接口和预设插件是否匹配。相应地,所述依次通过所述至少一个预设插件依次对所述第一测试字段进行处理以生成所述待测试接口对应的接口测试用例具体为:
[0076]
m10、确定所述预设插件对应的测试接口集;
[0077]
m20、若所述待测试接口包含于所述测试接口集,则执行所述控制所述预设插件基于所述接口数据生成所述待测试接口对应的接口测试用例步骤;
[0078]
m30、若所述待测试接口未包含于所述测试接口集,则放弃所述预设插件。
[0079]
具体地,在对插件进行录入时,通过fuzzing_type字段确定了插件适用的测试接口集,也就是插件适用的接口范围,所述测试接口集可以仅包括一个接口,也可以包括多个接口,若所述待测试接口包含于所述测试接口集,则说明所述预设插件和所述待测试接口相匹配,从而将接口数据导入预设插件生成接口测试用例,若所述待测试接口未包含于所述测试接口集,则说明所述预设插件和所述待测试要求不相匹配,则弃用所述预设插件。
[0080]
在本实施例的一个实现方式中,所述测试点为若干测试点时,所述获取待测试接口的接口数据,控制所述预设插件基于所述接口数据生成所述待测试接口对应的接口测试用例具体包括:
[0081]
n10、获取待测试接口的接口数据;
[0082]
n20、对于每个测试点对应的预设插件,控制该预设插件基于所述接口数据生成所
述待测试接口对应的接口测试用例。
[0083]
在本实施例的一个实现方式中,当根据接口测试要求确定了多个测试点,需要对插件库多个预设插件进行取用,那么可以通过手动选定的方式根据每个测试点选取需要调用的预设插件,并按照选定的顺序依次调用选定的预设插件,每次调用插件后直接利用该插件基于测试字段生成接口测试用例。
[0084]
在本实施例的一个实现方式中,当接口测试要求需要对插件库中的所有插件进行调用,那么在完成上一个插件的调用并生成接口测试用例后,判断插件库中是否存在未调用的插件,若存在未调用的插件,那么继续调用所述未调用的插件,直至完成对插件库中所有插件的调用。
[0085]
基于上述接口测试用例的生成方法,本实施例还提供一种接口测试方法,如图3所示,用于执行上述接口测试用例,所述方法包括:
[0086]
s300、获取待测试接口的所有接口测试用例,根据所述所有接口测试用例执行接口测试,并接收每个接口测试用例的返回值;
[0087]
s400、获取所述待测试接口的期望值,根据所述期望值和每个接口测试用例的返回值确定每个接口测试用例的测试结果;
[0088]
s500、根据所有接口测试用例的测试结果生成所述待测试接口的接口测试报告。
[0089]
具体地,通过入口脚本确定接口测试要求,所述接口测试要求可以为指定某个接口做某个插件的fuzzing并执行接口测试,也可以为对所有接口用所有插件进行fuzzing并执行接口测试,所述re-match字段是指接口数据中预先设置的期望值,所述返回值是指云端根据接口测试用例对应的接口响应结果发送的反馈结果。
[0090]
当接口测试要求为对所有接口用所有插件进行fuzzing并执行接口测试时,所述系统入口脚本可以为:
[0091]
python fuzzing_test.py
--
fuzzing_all_plugin
--
fuzzing_all_api。
[0092]
进一步,通过从存放接口数据的特定文件目录下取出待测试接口,再从fuzzing插件库里取出待测试接口对应的fuzzing插件,以将待测试接口的接口数据导入fuzzing插件以生成接口测试用例,而后直接执行接口测试,并获取云端返回的接口测试用例的返回值;通过fuzzing插件设置的默认期望值可以对接口测试的结果进行判断,从而得到不同接口测试用例的测试结果。
[0093]
在本实施例的一种实现方式中,当接口数据中包括re-match字段时,所述re-match字段可以对fuzzing插件设置的默认期望值进行覆盖,以使得根据re-match字段确定待测试接口的期望值。
[0094]
相应地,所述获取所述待测试接口的期望值,根据所述期望值和所述接口测试用例的返回值确定所述接口测试用例的测试结果具体包括:
[0095]
s401、获取所述待测试接口期望值,判断所述期望值和每个接口测试用例的返回值是否相同;
[0096]
s402、若所述期望值和接口测试用例的返回值相同,则以第一标记作为接口测试用例的测试结果;
[0097]
s403、若所述期望值和所述接口测试用例的返回值相同,则以第二标记作为接口测试用例的测试结果。
[0098]
具体地,根据上述fuzzing插件生成的接口测试用例逐一发起接口测试,并检查每个接口测试用例的返回值,并根据所述返回值判断该接口测试用例是否通过,例如,对于上述接口测试用例:content-type,执行接口测试完毕后,接收该测试用例对应的返回值,根据接口的re_match字段确定接口测试的期望值,根据所述期望值判断返回值和所述期望值是否相同是否匹配,若匹配则标记该接口测试用例通过。在生成接口测试用例后,对接口测试用例执行接口测试,将该接口测试用例的返回值和待测试接口的期望值进行比较,若所述返回值和所述期望值相同,则以第一标记“true”作为接口测试用例的测试结果,否则以第二标记“false”作为接口测试用例的测试结果,并将接口测试用例的标记结果进行保存。
[0099]
在完成一个接口的所有接口测试用例的接口测试以后,继续从接口库中取出下一个接口,从目标插件中选出接口要求和下一个接口相匹配的fuzzing插件,并生成下一个接口的接口测试用例以用于接口测试,具体执行过程图如图4所示。在完成所有接口的接口测试后,汇总所有接口测试用例的标记,通过记录接口测试环境等信息,根据所述标记生成每个接口对应的测试报告。在实际应用中,可以根据标记结果生成特定格式的报告文件,如html报告,放在指定目录下,以从所述指定目录读取报告,具体执行流程图如图5所示。
[0100]
本发明通过上述接口测试用例生成方法,仅需维护一次接口和维护一次fuzzing插件,自动地生成不同接口的接口测试用例,并且能够将接口测试用例用于执行接口测试,从而大幅提高接口测试覆盖面和测试效率。
[0101]
本发明还提供了一种终端设备,如图6所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(communications interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
[0102]
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
[0103]
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
[0104]
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
[0105]
此外,上述存储介质以及移动终端中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
[0106]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献