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

文档序号:26759154发布日期:2021-09-25 05:13阅读:92来源:国知局
接口测试方法、装置、设备、存储介质及程序产品与流程

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.将所述并集中的测试数据去重,得到所述每个参数对应的测试数据集合。
40.在一种实施方式中,所述测试方法中包括等价类划分法;
41.所述确定模块用于:
42.根据业务规则,利用等价类划分法对所述每个参数的取值进行划分,得到有效等价类和无效等价类;
43.分别从所述有效等价类和所述无效等价类中确定部分测试数据,得到所述等价类划分法对应的测试数据子集。
44.在一种实施方式中,所述测试方法中还包括边界值分析法;
45.所述确定模块用于:
46.确定所述有效等价类的边界值,以形成所述分析法对应的测试数据子集。
47.在一种实施方式中,所述生成模块用于:
48.确定所述每个参数对应的测试数据集合对应的笛卡尔积,得到多个参数对应的目标测试集合;
49.将所述目标测试集合中的每个元素分别导入预设模板中,得到所述待测试接口的测试用例。
50.在一种实施方式中,所述测试模块用于包括:
51.根据所述待测试接口的报文格式和所述测试用例,生成测试报文;
52.根据所述待测试接口的地址,向目标服务器发送所述测试报文,以对所述待测试接口进行测试。
53.在一种实施方式中,所述装置还包括:
54.报告模块,用于接收所述目标服务器发送的响应报文,根据所述响应报文生成测试报告,所述测试报告包括所述响应报文、测试结果或测试耗时中的至少一个。
55.第三方面,本技术提供一种电子设备,包括:存储器和处理器;所述存储器和所述处理器连接;
56.所述存储器用于存储计算机程序;
57.所述处理器用于在计算机程序被执行时,实现如上述第一方面中所述的方法。
58.第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述第一方面中所述的方法。
59.第五方面,本技术提供一种程序产品,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如上述第一方面中所述的方法。
60.本技术提供一种接口测试方法、装置、设备、存储介质及程序产品,通过多个测试方法,确定每个参数对应的测试数据集合,测试数据集合中包括参数的取值的代表值,以及除取值之外的其他值的代表值;根据每个参数对应的测试数据集合,生成测试用例,在保证测试用例能够全面覆盖的前提下,无需对接口的所有参数组合全部进行测试,提高了测试效率。
附图说明
61.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
62.图1为本技术实施例提供的一种接口测试方法的场景示意图;
63.图2为本技术实施例提供的一种接口测试方法的流程示意图;
64.图3为本技术实施例提供的一种接口测试装置的结构示意图;
65.图4为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
66.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
67.目前,在接口测试中,获取测试用于的方法通常是用户将需要测试接口的接口配
置文件导入到系统中,系统根据接口配置文件获取接口名称、接口调用url路径、接口请求方法、接口请求参数列表、接口请求参数说明和接口返回参数说明,然后通过人机交互界面将接口请求参数说明和接口返回参数说明反馈给用户。之后,由用户根据接口请求参数说明和接口返回参数说明,通过人机交互界面为接口请求参数列表中的每个参数配置测试规则。再由系统通过全面实验法,根据所有参数字段的所有测试规则分别生成测试用例。系统根据生成的各个测试用例中的信息分别生成各个接口的请求报文发送到相应接口,以执行生成的各个测试用例,然后根据执行各个测试用例的实际返回结果和相应生成各个测试用例的测试规则中预设的期望结果判断得到相应的测试用例的执行结果,输出测试成功与否的结果。
68.这种采用全面实验法的方案中,需要对接口的参数的所有组合全部实施一次以上的测试,导致测试次数太多,工作量太大,效率较低。为此,可以考虑在上述生成测试用例的过程中采用正交实验法,正交实验法是根据正交性从全面实验中挑选出部分数据进行测试,但是这种选取方法依赖于实际工作者的经验,可能导致由于实际工作者经验不足等原因导致测试案例不能完全覆盖需求,容易出现场景漏测等风险。
69.为了解决上述问题,本技术实施例中,考虑采用多个测试方法,确定每个参数对应的测试数据集合,测试数据集合中包括参数的取值的代表值,以及除取值之外的其他值的代表值,测试数据集合能够中的代表值能够代表测试参数的所有可能的测试结果,根据每个参数对应的测试数据集合,生成测试用例,可以既保证测试用例覆盖全面,同时无需对所有参数的所有组合均进行测试,提高了测试效率。图1为本技术实施例提供的一种接口测试方法的场景示意图。如图1中所示,服务器10可用于执行本技术实施例提供的接口测试方法,生成测试用例,并根据测试用例向目标服务器20发送测试请求,以获得测试结果。
70.下面,将通过具体的实施例对本技术提供的用户定位方法进行详细地说明。可以理解的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
71.图2为本技术实施例提供的一种接口测试方法的流程示意图。该方法的执行主体为接口测试装置,该装置可以通过软件和/或硬件的方式实现。示例的,执行主体可以为用于进行接口测试的服务器。如图2所示,本实施例的方法包括:
72.s201、获取待测试接口的多个参数,并根据多个参数中每个参数的参数类型,确定每个参数的取值。
73.本步骤中待测试接口的多个参数可以从接口文档、接口配置文件或者接口报文中获取。服务器可以从接口文档、接口配置文件或者接口报文中解析获取系统标识、待测试接口使用的协议、待测试接口名称、待测试接口请求方法、入参参数请求列表及类型、回参列表。其中系统标识是指待测试接口所属的系统的标识。本实施例中,服务器可以对单个待测试接口进行解析获取单个待测试接口的参数,或者也可以对多个待测试接口进行解析以获得其中每个待测试接口的参数。此外,还可以通过用户界面展示上述解析结果,以便于用户确定待测试接口的参数。
74.每个参数的参数类型可以从上述解析结果中得到,例如参数类型可以为bool,int,long,string,float,double等。对于每个参数,服务器可以根据其参数类型确定其出现的可能值,例如bool类型有true,false两种可能的取值,int类型可以是

32768至32767
之间的取值等。
75.可选的,在参数类型的基础上,服务器还可以结合业务规则确定每个参数的取值,业务规则可以由用户进行设置。例如,比如该参数是必填还是选填,参数的长度是否有限制,参数是否可以重复,参数的取值范围是否有限制等,具体可以根据实际的业务规则进行设定。本步骤,每个参数的取值是指该参数符合参数类型和/或业务规则的正常取值。
76.s202、根据多个测试方法,确定每个参数对应的测试数据集合,测试数据集合中包括参数的取值的代表值,以及除取值之外的其他值的代表值。
77.本步骤中的测试方法是指测试思想,例如等价类划分法和边界值方法等,根据每个测试方法,可以分别确定每个参数的测试数据,进而根据多个测试方法所确定出的测试数据来确定每个参数对应的测试数据集合。
78.示例的,针对每个参数,确定多个测试方法中每个测试方法对应的测试数据子集;确定多个测试数据子集的并集;将并集中的测试数据去重,得到每个参数对应的测试数据集合。
79.需要说明的是,多个测试方法中每个测试方法对应的测试数据子集中的数据可以是该测试方法下每个参数的一些取值的代表值和/或取值之外的其他值(即异常取值)的代表值。其中每个参数的取值的代表值可以用来测试接口的功能是否正确实现,而取值之外的其他值的代表值则可以用于测试接口是否有正常的异常处理能力。
80.将多个测试方法对应的测试数据子集进行合并去重后,所得到测试数据集合中的数据则包括了每个参数的取值的代表值以及取值之外的其他值的代表值。测试数据集合中所包括的每个参数的取值的代表值的测试结果可以代表所有取值的测试结果,而取值之外的其他值的代表值则可以代表所有异常取值的测试结果。
81.此外,异常取值对应的测试用例可以称为反向案例,参数的取值对应的测试用例可以称为正向案例。根据测试用例的正反向属性得到该测试用例的预期结果。本技术实施例中也可以由用户编辑设置具体的每个测试用例的预期结果,以便于与执行测试后的结果进行比对。通过这种方法,可以得到对需求全覆盖的正反向最小测试案例集。
82.s203、根据每个参数对应的测试数据集合,生成测试用例。
83.在得到每个参数对应的测试数据集合后,可以对每个参数的代表值进行组合,从而得到接口的入参代表值,生成测试用例。
84.可选的,确定每个参数对应的测试数据集合对应的笛卡尔积,得到多个参数对应的目标测试集合;将目标测试集合中的每个元素分别导入预设模板中,得到待测试接口的测试用例。其中,两个集合x和y的笛卡尔积,又称直积,表示为x
×
y,是指第一个对象是x的成员而第二个对象是y的一个成员的所有可能的有序对。
85.对每个参数对应的测试数据集合进行笛卡尔积计算,可以保证得到所有参数的代表值的所有组合,从而保证测试用例覆盖的全面性。此外,生成测试用例时,相关技术中通常需要人员进行编写,有大量重复性工作,因此,在本步骤中可以根据预设模板的要求,配置模板相应的导出字段,从而将生成的测试用例按照模板进行导出。从而大大减少人工工作量,提高效率。并且按照预设模板生成的测试用例,还可以提供用户编辑修改功能,以根据用户实际评审进行优化,得到最终的测试用例。
86.s204、采用测试用例,对待测试接口进行测试。
87.在生成测试用例后,需要按照测试用例中的参数等信息对接口进行测试,即,根据待测试接口的报文格式和测试用例,生成测试报文;根据待测试接口的地址,向目标服务器发送测试报文,以对待测试接口进行测试。此外,还可以接收目标服务器发送的响应报文,根据响应报文生成测试报告,测试报告包括响应报文、测试结果或测试耗时中的至少一个。
88.每个待测试接口对应的系统可配置一个测试的地址,即待测试接口的地址,服务器根据待测试接口的地址、待测试接口使用的协议、待测试接口的报文格式、以及测试用例中的入参代表值的组合,组装报文,向目标服务器发送请求。在实际测试中,可以采用测试用例单步调试或批量执行的方法进行测试。其中,单步调试是可以在逐个执行测试用例的过程中查看每个测试用例的返回报文以及断言的结果,例如可以在初次运行测试用例的时候使用单步调试。批量执行即将多个测试用例并发执行,在执行过程中不展示每个测试用例的执行结果,可以在执行完毕后生成详细的测试报告以查看每个测试用例的返回报文及断言结果。
89.对于测试用例的执行结果,相关技术中通常只反馈执行成功或失败的结果,而本技术实施例中,则提供详细的结果分析,包括执行的成功率,执行的总时长,每个测试案例执行成功与否、执行耗时、断言结果,以及每个测试报文的输出展示,从而为用户提供一个全方面的执行结果分析报告,便于排查测试出现的问题。
90.本技术实施例提供的接口测试方法,相比于全面试验法和正交实验法,这种生成测试用户的方法一方面能够实现测试需求的全面覆盖,另一方面能够使用最小的测试用例集就达到了穷举的方法产生的测试效果,提高了测试效率。
91.在上述实施例的基础上,对如何确定每个参数对应的测试数据集合进行说明。
92.在一种实施方式中,测试方法中包括等价类划分法。等价类划分法是指从大量数据中划分范围(每个范围内的数据测试效果是等价的,所以每个范围是一个等价类),然后从每个范围中挑选代表数据,这些代表数据能反应这个范围内数据的测试结果。
93.采用等价类划分法确定对应的测试数据子集时,可以按如下方法:根据业务规则,利用等价类划分法对每个参数的取值进行划分,得到有效等价类和无效等价类;分别从有效等价类和无效等价类中确定部分测试数据,得到等价类划分法对应的测试数据子集。
94.其中,有效等价类是指对程序来说,有意义的、合理的输入数据集合,用来测试功能是否正确实现。无效等价类是指对程序来说,无意义的、不合理的输入数据集合,用来测试程序是否有强大的异常处理能力。
95.在一种实施方式中,测试方法中包括边界值分析法,边界值分析法是对输入或输出的边界值进行测试的一种黑盒测试方法。在边界值分析法作为对等价类划分法的补充时,其测试用例的取值可以来自边界值分析法中等价类的边界。即,确定有效等价类的边界值,以形成分析法对应的测试数据子集。
96.示例的,参数p基于参数类型的可能值集合为a1={p1,p2,...},若需求中对该参数有业务规则要求,基于业务规则,使用测试方法1得到代表值集合,即测试数据子集a2={p3,p4,...},使用测试方法2得到代表值集合,即测试数据子集a3={p5,p6,...},使用测试方法n得到代表值集合,即测试数据子集an={pn,...},则参数p的代表值集合,即测试数据集合a=a2∪a3∪...∪an。若需求中未对该参数进行业务规则限制,则参数p的代表值集合为a=a1。依次类推,可以得到这个接口所有参数的测试数据集合a、b、至n,将各个参数的
测试数据集合进行笛卡尔积,得到测试用例的入参代表值集合为c=a
×
b
×
...
×
n。
97.本技术实施例汇总,采用测试思想比如等价类划分法、边界值法,而且可以扩展到多种分析方法,再结合相应的需求中的业务规则,得到每个接口的参数的代表值集合,将每个字段的代表值集合做笛卡尔积,得到每个接口的测试用例集,该测试用例集是对需求全面覆盖的正反向最小测试用例集,从而提高了测试效率。
98.图3为本技术实施例提供的一种接口测试装置的结构示意图。如图3所示,接口测试装置30包括:
99.获取模块301,用于获取待测试接口的多个参数,并根据多个参数中每个参数的参数类型,确定每个参数的取值;
100.确定模块302,用于根据多个测试方法,确定每个参数对应的测试数据集合,测试数据集合中包括参数的取值的代表值,以及除取值之外的其他值的代表值;
101.生成模块303,用于根据每个参数对应的测试数据集合,生成测试用例;
102.测试模块304,用于采用测试用例,对待测试接口进行测试。
103.在一种实施方式中,确定模块302用于:
104.针对每个参数,确定多个测试方法中每个测试方法对应的测试数据子集;
105.确定多个测试数据子集的并集;
106.将并集中的测试数据去重,得到每个参数对应的测试数据集合。
107.在一种实施方式中,测试方法中包括等价类划分法;
108.确定模块302用于:
109.根据业务规则,利用等价类划分法对每个参数的取值进行划分,得到有效等价类和无效等价类;
110.分别从有效等价类和无效等价类中确定部分测试数据,得到等价类划分法对应的测试数据子集。
111.在一种实施方式中,测试方法中还包括边界值分析法;
112.确定模块302用于:
113.确定有效等价类的边界值,以形成分析法对应的测试数据子集。
114.在一种实施方式中,生成模块303用于:
115.确定每个参数对应的测试数据集合对应的笛卡尔积,得到多个参数对应的目标测试集合;
116.将目标测试集合中的每个元素分别导入预设模板中,得到待测试接口的测试用例。
117.在一种实施方式中,测试模块304用于包括:
118.根据待测试接口的报文格式和测试用例,生成测试报文;
119.根据待测试接口的地址,向目标服务器发送测试报文,以对待测试接口进行测试。
120.在一种实施方式中,接口测试装置30还包括:
121.报告模块,用于接收目标服务器发送的响应报文,根据响应报文生成测试报告,测试报告包括响应报文、测试结果或测试耗时中的至少一个。
122.本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
123.图4为本技术实施例提供的一种电子设备的结构示意图。如图4所示,电子设备40包括:存储器401和处理器402。可选的,存储器401和处理器402可以通过总线403连接。
124.存储器401用于存储计算机程序。
125.处理器402用于在计算机程序被执行时,实现如上述任一实施例中的方法。
126.本技术提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现如上述任一实施例中的方法。
127.本技术提供一种程序产品,包括程序代码,程序代码在计算机上运行时,使得计算机执行如上述任一实施例中的方法。
128.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
129.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1