一种微服务接口测试方法、装置、设备及可读存储介质与流程

文档序号:33324178发布日期:2023-03-03 22:16阅读:27来源:国知局
一种微服务接口测试方法、装置、设备及可读存储介质与流程

1.本发明涉及计算机应用技术领域,具体而言,涉及微服务接口测试方法、装置、设备及可读存储介质。


背景技术:

2.在微服务技术领域中,针对行业内微服务架构微服务多、接口多、测试数据多样且来源复杂、接口测试装置无前端页面,或有前端页面但无法支持多案例或跨服务多接口同时提交测试的场景,通过服务名称调起测试,自动匹配测试数据和服务,测试人员无法灵活修改数据,无法同时驱动多个服务的测试;并且在进行测试案例的生成和回归案例的存储时,装置无法前端页面,而测试人员必须在服务端发起交易;并且未对接口进行二次封装,入参多且来源复杂而无法保鲜。


技术实现要素:

3.本发明的目的在于提供一种微服务接口测试方法、装置、设备及可读存储介质,以改善上述问题。为了实现上述目的,本发明采取的技术方案如下:
4.第一方面,本技术提供了一种微服务接口测试方法,包括:
5.获取第一信息,所述第一信息为csv文件,所述csv文件内容包括至少一组动态构造的数据、从数据库中读取的数据、上一接口返回的数据和自定义数据;
6.根据所述第一信息,对微服务接口进行配置,得到第二信息,所述第二信息包括测试微服务调用关系数据;
7.根据所述第一信息和所述第二信息,生成测试接口入参组合数据;
8.根据testng驱动接口,对所述测试接口入参组合数据进行计算,生成测试结果。
9.第二方面,本技术还提供了一种微服务接口测试装置,包括第一获取模块、配置模块、生成模块和计算模块,其中:
10.第一获取模块:用于获取第一信息,所述第一信息为csv文件,所述csv文件内容包括至少一组动态构造的数据、从数据库中读取的数据、上一接口返回的数据和自定义数据;
11.配置模块:用于根据所述第一信息,对微服务接口进行配置,得到第二信息,所述第二信息包括测试微服务调用关系数据;
12.生成模块:用于根据所述第一信息和所述第二信息,生成测试接口入参组合数据;
13.计算模块:用于根据testng驱动接口,对所述测试接口入参组合数据进行计算,生成测试结果。
14.第三方面,本技术还提供了一种微服务接口测试设备,包括:
15.存储器,用于存储计算机程序;
16.处理器,用于执行所述计算机程序时实现所述微服务接口测试方法的步骤。
17.第四方面,本技术还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于微服务接口测试方法的步骤。
18.本发明的有益效果为:本发明是属于微服务技术领域,针对行业内微服务架构微服务多、接口多、测试数据多样且来源复杂、接口测试装置无前端页面,或有前端页面但无法支持多案例或跨服务多接口同时提交测试的场景,通过对微服务接口二次封装重新定义入参,通过数据文件名称自动识别接口所在路径,通过数据文件内容和其他数据来源动态生成接口的入参,使用testng驱动接口自动执行,并生成测试报告,最终实现通过把二次封装接口的入参数据配置在数据文件中,配置不同的数据文件名称自动调起相应微服务接口执行测试,并自动返回测试报告的测试方法。
19.本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
20.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
21.图1为本发明实施例中所述的微服务接口测试方法流程示意图;
22.图2为本发明实施例中所述的微服务接口测试装置结构示意图;
23.图3为本发明实施例中所述的微服务接口测试设备结构示意图。
24.图中:701、第一获取模块;702、配置模块;7021、第一获取单元;7022、输入单元;7023、命名单元;7024、接口输入单元;7025、配置单元;703、生成模块;7031、关联单元;7032、第一确定单元;7033、第一判断单元;7034、第二确定单元;7035、第一拆分单元;7036、更新单元;7037、第二拆分单元;7038、第一计算单元;7039、第二获取单元;7040、第二计算单元;704、计算模块;7041、识别单元;7042、第二判断单元;7043、第三判断单元;7044、测试单元;7045、展示单元;705、确定模块;706、分类模块;707、匹配模块;708、配对模块;800、微服务接口测试设备;801、处理器;802、存储器;803、多媒体组件;804、输入/输出(i/o)接口;805、通信组件。
具体实施方式
25.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
26.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
27.实施例1:
28.本实施例提供了一种微服务接口测试方法。
29.需要说明的是,在本实施例中,涉及到的关联交互模块如下若干个模块,分别为:上传模块、处理模块、存储模块、服务识别模块、接口二次封装模块、案例执行模块、测试报告展示模块,其中:
30.1.上传模块:提供前端页面供测试人员上传数据文件,并异步调用后端接口返回测试报告。
31.数据文件格式为csv格式。
32.数据文件命名标准:微服务中接口名字,多个接口以“+”连接。
33.数据文件内容为接口二次封装后所需的入参值,支持设置多组入参数据,支持不同微服务接口的入参数据配置在同一个csv文件中。
34.2.处理模块:接收前端页面传送的csv文件;若一个csv文件包含多个微服务接口数据,根据接口拆分csv文件;根据文件名称计算出对应接口入参文件在服务端的路径。
35.3.存储模块:把处理模块拆分后的csv文件,根据路径更新服务端入参文件。
36.4.服务识别模块:根据前端上传数据文件的名称,计算对应的微服务接口及脚本文件所在路径;若文件名称包括多个接口名称,则分别计算接口及脚本文件所在路径。
37.5.接口二次封装模块:服务端配置不同微服务调用所需参数,比如i p、端口、数据库配置;加入结果验证点,验证结果存入测试报告;梳理微服务接口的入参,按照来源分类。分为需测试人员动态构造的数据、从数据库中读取的数据、上一接口返回的数据、需写死数据;测试人员动态构造的数据:保存在csv数据文件中,可通过前端页面传入,是二次封装接口的入参;从数据库中读取的数据:模块中保证动态实时从数据库获取;上一接口返回的数据:模块中执行接口调用,保证数据动态实时获取;自定义数据:模块中定义,比如当前操作时间,或操作员等可以写死的数据。
38.6.案例执行模块:把csv数据、数据库、接口返回等数据组装成微服务接口所需的入参。根据服务识别模块识别到的微服务接口,使用testng驱动接口自动执行,顺序执行接口调用。使用testng建立执行测试所用的testng.xm l文件,文件内维护对应的脚本文件及接口。c l ass name对应服务的脚本文件路径,methods对应接口。结果验证点存入测试报告并提交给测试报告展示模块。
39.7.测试报告展示模块:测试人员上传csv数据文件后,异步调用后端接口返回测试报告。提供前端页面展示测试报告。
40.本实施例中,参见图1,图中示出了本方法包括步骤s100、步骤s200、步骤s300和步骤s400。
41.s100、获取第一信息,第一信息为csv文件,csv文件内容包括至少一组动态构造的数据、从数据库中读取的数据、上一接口返回的数据和自定义数据。
42.可以理解的是,在本s100步骤中之前包括s200、s300、s400和s500,其中:
43.s200、确定微服务接口的入参数据;
44.s300、对入参数据按照来源进行分类;
45.s400、针对分类后的入参数据,对每个入参数据进行匹配,得到每个入参数据的格式类型;
46.s500、针对每个入参数据,从预设的参数值生成规则中,选择与每个入参数据相对应的格式类型相匹配的规则,且自动生成每个入参数据相对应的替换参数值。
47.需要说明的是,测试人员梳理微服务接口的入参,按照来源分类,入参分为需测试人员动态构造的数据、从数据库中读取的数据、上一接口返回的数据、自定义数据。测试人员动态构造的数据为第一信息,为模型的输入。从数据库中读取的数据、上一接口返回的数据、自定义数据为第二信息,为模型内部配置的信息。比如查询用户贷款余额接口,测试人员动态构造的数据包括用户的姓名、身份证号,从数据库中读取的数据包括用户的唯一i d号、贷款协议号、借据号,上一接口返回的数据包括每一笔贷款协议的余额,需自定义数据包括操作员、查询时间戳、流水号等。
48.s200、根据第一信息,对微服务接口进行配置,得到第二信息,第二信息包括测试微服务调用关系数据。
49.可以理解的是,在本s200步骤中,包括步骤s201、s202、s203、s204和s205,其中:
50.s201、获取对微服务接口封装所需的参数值;
51.s202、将参数值输入至第一信息中;
52.s203、对第一信息中的接口进行逐一命名;
53.s204、将命名后的至少一个接口名称输入至csv文件;
54.s205、根据csv文件和第一信息,对微服务接口进行配置,得到第二信息,第二信息包括与第一信息相匹配的至少一组从数据库中读取的数据、上一接口返回的数据和自定义数据。
55.其中,获取第一信息为csv文件,测试人员通过模型的前端网页上传第一信息。csv文件内容包括步骤1的动态构造的一组或多组数据,csv文件名称为接口名字,多个接口名称以“+”连接。
56.模型内部配置第二信息,包括从数据库中读取的数据、上一接口返回的数据、自定义数据。
57.s300、根据第一信息和第二信息,生成测试接口入参组合数据。
58.可以理解的是,在本s300步骤中,包括s301、s302、s303、s304、s305和s306,其中:
59.s301、根据对第一信息进行拆分,得到至少一个csv文件,作为第三信息;
60.s302、对第三信息进行更新;
61.s303、对更新后的第三信息进行拆分,得到至少一组微服务接口的入参数据;
62.s304、根据入参数据和第二信息计算得到第四信息;
63.s305、获取第四信息中所需测试的接口名称和所需测试的脚本文件所在路径的数据信息;
64.s306、根据接口名称和数据信息进行计算得到测试接口入参组合数据。
65.需要说明的是,在上述步骤中模型接收上传的csv文件,并把包含多个微服务接口数据的csv文件,根据文件名称中的接口名称拆分为1个或多个csv文件,作为第三信息。模型使用第三信息,新建或更新服务端本地的第三信息。
66.可以理解的是,在本s300步骤中,之后包括s305、s306、s307和s308,其中:
67.s305、根据接口名称确定与测试接口关联的数据用例集信息;其中,数据用例集信息包括测试数据版本和数据用例集名称;
68.s306、根据测试数据版本和数据用例集名称从候选数据用例中确定目标数据用例集,作为目标数据用例;
69.s307、若接口类型为文件,根据接口名称确定与接口关联的文件名称和文件地址;
70.s308、根据文件名称和文件地址从候选数据用例中确定目标文件,作为目标数据用例。
71.其中,需要说明的是,拆分的csv文件名称获取所需测试的接口名称,计算微服务、接口及脚本文件所在路径的数据信息。
72.若第一信息的csv文件名称仅包括一个接口,则仅计算此接口对应的微服务、接口及脚本文件所在路径的数据信息。
73.若第一信息的csv文件名称包括多个接口,则分别计算对应的微服务、接口及脚本文件所在路径的数据信息。
74.s400、根据testng驱动接口,对测试接口入参组合数据进行计算,生成测试结果。
75.可以理解的是,在本s400步骤中包括s401、s402、s403、s404和s405,其中:
76.s401、根据文件名称对接口相对应的脚本进行识别;
77.s402、判断识别出的脚本是否跨服务;若是,则根据testng逐个建立类模块;
78.s403、判断检验后的类模块是否存在多接口;
79.s404、识别类模块中多接口的新增methods字段,并对类模块进行测试;
80.s405、将测试结果生成测试报告并进行展示。
81.此步骤中,根据上述步骤计算得出的数据信息,用testng驱动接口自动执行,顺序执行接口调用。
82.若上述步骤中仅涉及单个服务,使用testng建立单个类模块;
83.若上述步骤中涉及多个服务,使用testng逐个建立类模块,并顺序执行测试;
84.针对每个服务,若上述步骤中仅涉及单个接口,使用testng针对类模块新增单个接口字段,仅执行此接口测试;
85.针对每个服务,若上述步骤中涉及多个接口,使用testng针对类模块模块逐个新增接口字段,顺序执行接口测试;
86.针对每个接口,若拆分后的第三信息仅包括单组数据,则使用第四信息仅执行一轮测试,记录测试结果;
87.针对每个接口,若拆分后的第三信息包括多组数据,则使用第四信息顺序执行多轮测试,记录测试结果。
88.最后,服务端将执行后的结果验证点存入测试报告并提交给前端。前端网页异步调用后端接口,展示并且生成的测试报告。
89.综上,通过csv文件名称自动识别将要执行的服务,支持多案例或跨服务多接口同时提交,大大提高了测试效率;通过在前端页面上传csv文件驱动后端服务自动执行和生成测试报告返回前端展示,解决了测试人员必须在接口封装层手工发起交易、代码能力差无法维护脚本的问题;通过对微服务接口二次封装,重新梳理数据来源,重新定义入参,解决了入参多、来源复杂且无法保鲜的问题;在接口的二次封装中加入验证点,验证结果存入测试报告并返回前端,美观且直观。
90.在实际操作中,目前的系统测试域个贷测试团队已经使用该方法对采用微服务架
构的个人信贷授信活动中心、个人信贷用信活动中心、押品管理系统的微服务接口进行了测试,测试人员不需要太多代码基础,通过维护csv文件,使用前端页面上传csv文件便可进行微服务接口测试;测试人员通过在csv文件中维护单接口的多组数据,或者同时维护跨服务的多个接口,文件上传后,服务端自动识别将要执行的服务,自动顺序执行接口案例,大大提高了测试效率。
91.实施例2:
92.如图2所示,本实施例提供了一种微服务接口测试装置,参见图2装置包括第一获取模块701、配置模块702、生成模块703和计算模块704,其中:
93.第一获取模块701:用于获取第一信息,第一信息为csv文件,csv文件内容包括至少一组动态构造的数据、从数据库中读取的数据、上一接口返回的数据和自定义数据;
94.配置模块702:用于根据第一信息,对微服务接口进行配置,得到第二信息,第二信息包括测试微服务调用关系数据;
95.生成模块703:用于根据第一信息和第二信息,生成测试接口入参组合数据;
96.计算模块704:用于根据testng驱动接口,对测试接口入参组合数据进行计算,生成测试结果。
97.优选地,第一获取模块701,之前包括确定模块705、分类模块706、匹配模块707和配对模块708,其中:
98.确定模块705:用于确定微服务接口的入参数据;
99.分类模块706:用于对入参数据按照来源进行分类;
100.匹配模块707:用于针对分类后的入参数据,对每个入参数据进行匹配,得到每个入参数据的格式类型;
101.配对模块708:用于针对每个入参数据,从预设的参数值生成规则中,选择与每个入参数据相对应的格式类型相匹配的规则,且自动生成每个入参数据相对应的替换参数值。
102.优选地,配置模块702,包括第一获取单元7021、输入单元7022、命名单元7023、接口输入单元7024和配置单元7025,其中:
103.第一获取单元7021:用于获取对微服务接口封装所需的参数值;
104.输入单元7022:用于将参数值输入至第一信息中;
105.命名单元7023:用于对第一信息中的接口进行逐一命名;
106.接口输入单元7024:用于将命名后的至少一个接口名称输入至csv文件;
107.配置单元7025:用于根据csv文件和第一信息,对微服务接口进行配置,得到第二信息,第二信息包括与第一信息相匹配的至少一组从数据库中读取的数据、上一接口返回的数据和自定义数据。
108.优选地,生成模块703,之后包括关联单元7031、第一确定单元7032、第一判断单元7033和第二确定单元7034,其中:
109.关联单元7031:用于根据接口名称确定与测试接口关联的数据用例集信息;其中,数据用例集信息包括测试数据版本和数据用例集名称;
110.第一确定单元7032:用于根据测试数据版本和数据用例集名称从候选数据用例中确定目标数据用例集,作为目标数据用例;
eread-on l y memory,简称eeprom),可擦除可编程只读存储器(erasab l e programmab l e read-on l y memory,简称eprom),可编程只读存储器(programmab l e read-on l y memory,简称prom),只读存储器(read-on l y memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该微服务接口测试设备800与其他设备之间进行有线或无线通信。无线通信,例如wi-f i,蓝牙,近场通信(near f i e l dcommun i cat i on,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:w i-f i模块,蓝牙模块,nfc模块。
131.在一示例性实施例中,微服务接口测试设备800可以被一个或多个应用专用集成电路(app l i cat i on spec i f i c i ntegrated c i rcu i t,简称as i c)、数字信号处理器(d i g i ta l s i gna l processor,简称dsp)、数字信号处理设备(d i g i ta l s i gna l process i ng dev i ce,简称dspd)、可编程逻辑器件(programmab l e log i c dev i ce,简称pld)、现场可编程门阵列(f i e l d programmab l e gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的微服务接口测试方法。
132.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的微服务接口测试方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由微服务接口测试设备800的处理器801执行以完成上述的微服务接口测试方法。
133.实施例4:
134.相应于上面的方法实施例,本实施例中还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种微服务接口测试方法可相互对应参照。
135.一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的微服务接口测试方法的步骤。
136.该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-on l y memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
137.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
138.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1