一种针对不同业务接口的通用字段级自动校验方法和装置与流程

文档序号:33016558发布日期:2023-01-20 16:14阅读:27来源:国知局
一种针对不同业务接口的通用字段级自动校验方法和装置与流程

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.本公开实施例提供的针对不同业务接口的通用字段级自动校验方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
47.在一个实施例中,如图2所示,提供了一种针对不同业务接口的通用字段级自动校验方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
48.步骤s210,将测试数据输入至待测试业务接口,经所述待测试业务接口输出包括有字段的响应结果,其中,所述字段包括字段名称和字段数值;
49.其中,接口测试是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
50.本公开实施例中,当需要对接口进行测试时,将测试数据输入至待测试业务接口,经待测试业务接口输出响应结果。其中,测试数据可以为根据实际应用场景及接口类型事先设置得到。在一个示例中,测试数据可以通过人工规则或人工智能模型输出得到。待测试业务接口输出的响应结果包括字段,字段包括字段名称和字段数值。在一个示例中,二维表的一列称为一个字段,在数据库中的表中的每一列的每一个名称,就是字段名称,字段列中的记录就是字段数值。
51.步骤s220,确定与所述字段名称对应的响应数据类型,其中,所述响应数据类型为根据字段的数据格式特征对字段名称进行分类得到;
52.本公开实施例中,得到待测试业务接口的响应结果后,根据响应结果对应的字段
名称确定待测试业务接口的响应数据类型,其中,响应数据类型为事先划分得到。在划分响应数据类型时,通过字段的数据格式特征对字段名称进行分类得到,通常情况下,不同的字段名称可能对应有相同或相似的数据格式特征,当对应的数据格式特征相同或相似度满足预设要求的情况下,将字段名称对应的字段划分为一类响应数据类型。在确定字段名称对应的响应数据类型时,可以为根据字段名称与响应数据类型之间的对应关系直接获得,也可以为根据响应结果的具体内容进行分析确定得到。
53.步骤s230,确定与所述响应数据类型相匹配的校验规则;
54.本公开实施例中,得到响应数据类型后,确定与响应数据类型相匹配的校验规则,其中,本实施例中,校验规则为对响应结果的字段数值进行判断的规则。在一个示例中,校验规则为根据字段的数据特征确定得到,不同应用场景下可能对应用不同的校验规则。由于同一类响应数据类型的字段数值的格式等特征存在共同点,因此,可以根据同一类响应数据类型的特征共同点设置该类响应数据类型对应的校验规则,校验规则与响应数据类型之间存在对应关系。
55.步骤s240,按照所述校验规则对所述字段数值进行校验,得到所述待测试业务接口的测试结果。
56.本公开实施例中,根据校验规则对响应结果的字段数值进行校验,得到待测试业务接口的测试结果。本实施例中,校验规则为对响应结果的字段数值进行判断的规则。在进行测试时,判断字段数值是否符合校验规则,若符合校验规则,可以认为字段数值正确,即此时接口响应正常,可以认为此时待测试业务接口的测试结果为通过测试;若不符合校验规则,可以认为此时字段数值错误,即此时接口响应异常,可以认为此时待测试业务接口的测试为未通过测试。在一个示例中,得到测试结果后,向测试人员发送测试结果,在测试未通过的情况下,还可以向测试人员发送异常字段值的详细信息,以便于后续测试人员进行问题的排查。
57.本公开实施例,在测试接口时,将测试数据输入至待测试业务接口,经待测试业务接口输出包括有字段的响应结果,根据字段的名称确定对应的响应数据类型,并确定对应的校验规则,根据校验规则对字段数据进行测试,得到接口的测试结果,从而实现了根据待测试业务接口的响应结果的字段直接得到对应的校验规则,根据接口输出字段的特征进行验证,实现对输出字段的测试,无需人工编写对应的预期结果,实现了接口测试结果的自动校验,大大降低了工作量,提高了接口测试的效率。
58.在一个实施例中,如图3所示,响应数据类型与校验规则的关联关系的获取方式,包括:
59.步骤s310,获取预设历史时段内的历史接口响应结果及响应数据类型;
60.步骤s320,根据所述历史响应结果确定响应数据类型与校验规则之间的关联关系。
61.本公开实施例中,在设置校验规则时,获取预设历史时段内历史接口响应结果及响应数据类型,其中,预设历史时段通常为根据实际应用场景确定得到,响应数据类型可以为根据历史接口响应结果的详细信息判断得到。在一个示例中,可以获取与待测试业务接口相对应的历史接口响应结果,其中,根据待测试业务接口的接口类型等数据确定与待测试业务接口相同或相似度满足预设要求的其他接口,获取其他接口的历史接口响应结果及
对应的响应数据类型,本示例中其他接口为通过测试的接口,历史接口响应数据可以为预设历史时段内的接口响应结果。根据历史接口响应结果的字段确定对应的校验规则,得到的校验规则与响应数据类型相匹配,从而得到响应数据类型与校验规则之间的关联关系。
62.本公开实施例,通过历史接口响应数据确定校验规则,无需人工对测试输入数据确定对应的输出语气,提高了接口测试的效率;同时,保证了校验规则的可靠性和准确性,进而使得后续接口测试过程中对待测试业务接口的测试的可靠性,保证了测试结果的准确性。
63.在一个实施例中,所述根据所述历史响应结果确定响应数据类型与校验规则之间的关联关系,包括:
64.获取响应数据类型对应的字段的数据格式特征;
65.根据所述数据格式特征确定对应的校验规则。
66.本公开实施例中,根据历史响应结果确定校验规则时,获取响应数据类型对应的字段的数据格式特征,根据所述数据格式特征确定对应的校验规则。由于不同的字段通常会有不同的数据格式,根据一类响应数据类型的字段的数据格式,确定对应的校验规则,例如,当响应数据类型为时间类型时,对应的字段的数据格式特征可以包括字段格式为年月日,则可以设置对应的校验规则为年月日格式。
67.本公开实施例,根据响应数据类型对应的字段的数据格式特征确定对应的校验规则,保证了校验规则的准确性和可靠性,进而提高了后续接口测试的准确性。
68.在一个实施例中,所述确定与所述字段名称对应的响应数据类型,包括:
69.获取所述响应结果的字段与预设响应数据类型的字段的匹配度;
70.确定匹配度大于预设阈值的所述预设响应数据类型为所述响应结果的字段名称对应的响应数据类型。
71.本公开实施例中,确定响应数据类型时,当字段名称与预设响应数据类型之间不存在对应关系时,获取响应结果的字段与预设响应数据类型的字段的匹配度,其中,预设响应数据类型可以为一个或多个。确定匹配度大于预设阈值的预设响应数据类型为字段名称对应的响应数据类型。在一个示例中,预设阈值可以为事先根据实际应用场景设置得到,也可以直接将所有预设响应数据类型匹配后,最高的匹配度作为预设阈值,对应的预设响应数据类型作为响应结果的字段名称对应的响应数据类型。
72.本公开实施例,当响应结果不存在对应的响应数据类型时,直接根据响应结果与对应的响应数据类型的匹配程度确定响应数据类型,使得本实施例能够适用于更多场景,同时保证了测试结果的准确性,进一步减少了工作量,提高了接口测试的效率。
73.在一个实施例中,所述校验规则的设置方式包括正则表达式匹配、校验方法函数中的至少一种。
74.本公开实施例中,正则表达式,又称规则表达式(regular expression),是一种文本模式,包括普通字符(例如a到z之间的字母)和特殊字符(称为元字符),其中,正则表达式可以通过使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。本实施例中,可以通过正则表达式设置校验规则,判断响应结果的字段值是否符合正则表达式,从而确定接口测试结果。还可以根据字段的格式特征设置对应的校验方法函数,利用对应的校验方法函数对响应结果的字段值进行判断。在一个示例中,还可以通过多种设置方式相结合,得
到最终的校验规则。
75.本公开实施例,通过正则表达式匹配、校验方法函数设置校验规则,保证了校验规则的规范性和可靠性,提高了校验规则设置的效率,进而保证了后续接口测试的准确安全性。
76.图4是根据一示例性实施例示出的一种针对不同业务接口的通用字段级自动校验方法的示意图,参考图4所示,首先,对接口的响应结果中涉及的字段名(即字段名称)进行汇总梳理出涉及的字段名及对应的含义,并按数据的类型归类出不同的数据类型。在一个示例中,接口的响应数据可以为json数据。在另一个示例中,在进行数据类型的划分时,根据数据含义和数据格式特征进行划分,例如,可以将update,createdate会归类为时间类型数据,name,personname等会归类为名字类型数据。得到数据类型后,由于每种数据类型通常具有一定的相同特征,因此可以抽象出该类数据类型的特征规则,作为该数据类型的通用校验规则。在一个示例中,如果是时间类型数据一般会满足通用的时间格式,如年月日时分秒;如果是性别类型的数据则会满足通用的性别格式,如男、女、未知。根据抽象出的特征规则,构造对应的校验规则,在一个示例中,可以使用正则表达式匹配的方式或者编写校验方法函数来实现。在接口测试过程中,获取接口响应数据,对接口响应数据进行遍历,得到接口响应数据的字段名(即字段名称)-字段值(即字段数值)的键值对,通过字段名判断响应数据属于哪一类数据类型,获取该类型的校验规则对字段值进行校验,根据校验结果输出接口的测试结果。
77.在一个示例中,如果遇到未归类的陌生字段名,也可以依据其字段值大部分(例如是80%的数据)符合某类数据类型的规则来反推该字段名所属的数据类型。
78.在一个示例中,除了通过字段名含义抽象出类型规则构建测试规则,还可以通过数据的类型(例如int,string,float,boolean,json格式字符串)来抽取规则构建测试规则。例如,如果一个字段对应的值一直是int类型则不应该突然变为string类型,或者一个字段对应的值一直是json格式的字符串则不应该突然不满足json格式,本实施例同样适用上述实施例中的字段的类型反推。
79.在一个示例中,除了上述的抽象出的规则,还可以有其他的基于字段值特征抽取的规则,其中,基于字段值特征抽取的规则可以包括但不限于字段值不重复,字段值升序,字段值降序等。例如,json数据中含有一份列表数据,则该json列表中的每个id值不应该出现重复值,或者响应json数据是默认降序排列则该json列表中的id字段或者createdate字段应该是字段值降序。
80.通过本实施例,对响应数据按字段抽象出字段名含有规则,字段值类型规则,字段值列表规则来构建测试案例,可以不必关心请求的传入参数,对响应的数据进行字段级别的校验,避免了传统接口测试用例编写时需要精心准备接口传参及测试数据的问题,有效提高接口测试用例覆盖率与编写效率。
81.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,附图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是
可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
82.基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的针对不同业务接口的通用字段级自动校验方法的针对不同业务接口的通用字段级自动校验装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个针对不同业务接口的通用字段级自动校验装置实施例中的具体限定可以参见上文中对于针对不同业务接口的通用字段级自动校验方法的限定,在此不再赘述。
83.在一个实施例中,如图5所示,提供了一种针对不同业务接口的通用字段级自动校验装置,包括:
84.输入模块510,用于将测试数据输入至待测试业务接口,经所述待测试业务接口输出包括有字段的响应结果,其中,所述字段包括字段名称和字段数值;
85.第一确定模块520,用于确定与所述字段名称对应的响应数据类型,其中,所述响应数据类型为根据字段的数据格式特征对字段名称进行分类得到;
86.第二确定模块530,用于确定与所述响应数据类型相匹配的校验规则;
87.校验模块540,用于按照所述校验规则对所述字段数值进行校验,得到所述待测试业务接口的测试结果。
88.在一个实施例中,响应数据类型与校验规则的关联关系的获取模块,包括:
89.获取模块,用于获取预设历史时段内的历史接口响应结果及响应数据类型;
90.确定子模块,用于根据所述历史响应结果确定响应数据类型与校验规则之间的关联关系。
91.在其中一个实施例中,所述确定子模块,包括:
92.获取模块,用于获取响应数据类型对应的字段的数据格式特征;
93.确定模块,用于根据所述数据格式特征确定对应的校验规则。
94.在一个实施例中,所述确定模块,包括:
95.获取模块,用于获取所述响应结果的字段与预设响应数据类型的字段的匹配度;
96.确定子模块,用于确定匹配度大于预设阈值的所述预设响应数据类型为所述响应结果的字段名称对应的响应数据类型。
97.在一个实施例中,所述校验规则的设置模块包括正则表达式匹配单元、校验方法函数单元中的至少一种。
98.上述针对不同业务接口的通用字段级自动校验装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
99.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储接口输出结果、校验规则等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种针对不同业务接口的
通用字段级自动校验方法。
100.本领域技术人员可以理解,图6中示出的结构,仅仅是与本公开实施例方案相关的部分结构的框图,并不构成对本公开实施例方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
101.在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
102.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
103.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
104.需要说明的是,本公开实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
105.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开实施例所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本公开实施例所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本公开实施例所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
106.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
107.以上所述实施例仅表达了本公开实施例的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本公开实施例专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开实施例构思的前提下,还可以做出若干变形和改进,这些都属于本公开实施例的保护范围。因此,本公开实施例的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1