接口全流程场景自动化测试方法及装置与流程

文档序号:26556123发布日期:2021-09-08 00:54阅读:197来源:国知局
接口全流程场景自动化测试方法及装置与流程

1.本发明涉及人工智能技术领域,尤其涉及接口全流程场景自动化测试方法及装置。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.在api接口功能测试中,存在一类场景,其全流程测试涉及多个数据接口、页面接口,且各接口间存在前后依赖关系,后序接口发报参数需要从前序接口返回报文获取,全流程接口测试需要多次进行参数传递,现有自动化测试系统大多需要将前后序接口分开测试或通过手工传递参数的方式进行测试,不能实现全流程接口场景化自动测试。


技术实现要素:

4.本发明实施例提供一种接口全流程场景自动化测试方法,该方法包括:
5.配置api接口功能测试中涉及的全部接口的接口文档、测试案例库和业务参数文档,其中接口文档中包括对应接口的测试技术参数;
6.从所述接口文档中获取待测试接口的前序接口访问顺序清单,基于前序接口访问顺序清单,从所述测试案例库中获取前序接口对应的测试案例,从所述测试案例、接口文档和业务参数文档中获取前序接口所需的参数写入前序接口的上送报文中,对需要从其他接口返回报文中获取的参数进行命名,将参数名写入前序接口的上送报文中,完成前序接口上送报文的拼装,生成前序接口调用顺序任务;
7.基于前序接口调用顺序任务,依次调用前序接口,完成前序接口的参数获取,将参数按照参数名存入参数库中;
8.从所述测试案例库中获取待测试接口对应的测试案例,从所述测试案例、接口文档、业务参数文档和参数库中获取待测试接口所需的参数写入待测试接口的上送报文中,完成待测试接口上送报文的拼装,调用待测试接口,将返回报文和返回报文期望值进行比较,若返回报文和返回报文期望值一致,则测试案例通过。
9.本发明实施例还提供一种接口全流程场景自动化测试装置,该装置包括:
10.参数和案例配置模块,用于配置api接口功能测试中涉及的全部接口的接口文档、测试案例库和业务参数文档,其中接口文档中包括对应接口的测试技术参数;
11.报文拼装模块,用于从所述接口文档中获取待测试接口的前序接口访问顺序清单,基于前序接口访问顺序清单,从所述测试案例库中获取前序接口对应的测试案例,从所述测试案例、接口文档和业务参数文档中获取前序接口所需的参数写入前序接口的上送报文中,对需要从其他接口返回报文中获取的参数进行命名,将参数名写入前序接口的上送报文中,完成前序接口上送报文的拼装,生成前序接口调用顺序任务;
12.接口参数获取模块,用于基于前序接口调用顺序任务,依次调用前序接口,完成前
序接口的参数获取,将参数按照参数名存入参数库中;
13.接口测试模块,用于从所述测试案例库中获取待测试接口对应的测试案例,从所述测试案例、接口文档、业务参数文档和参数库中获取待测试接口所需的参数写入待测试接口的上送报文中,完成待测试接口上送报文的拼装,调用待测试接口,将返回报文和返回报文期望值进行比较,若返回报文和返回报文期望值一致,则测试案例通过。
14.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述接口全流程场景自动化测试方法。
15.本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述所述接口全流程场景自动化测试方法的步骤。
16.本发明实施例中,与现有技术中自动化测试系统大多需要将前后序接口分开测试或通过手工传递参数的方式进行测试,不能实现全流程接口场景化自动测试的技术方案相比,本发明通过配置api接口功能测试中涉及的全部接口的接口文档、测试案例库和业务参数文档,其中接口文档中包括对应接口的测试技术参数;从所述接口文档中获取待测试接口的前序接口访问顺序清单,基于前序接口访问顺序清单,从所述测试案例库中获取前序接口对应的测试案例,从所述测试案例、接口文档和业务参数文档中获取前序接口所需的参数写入前序接口的上送报文中,对需要从其他接口返回报文中获取的参数进行命名,将参数名写入前序接口的上送报文中,完成前序接口上送报文的拼装,生成前序接口调用顺序任务;基于前序接口调用顺序任务,依次调用前序接口,完成前序接口的参数获取,将参数按照参数名存入参数库中;从所述测试案例库中获取待测试接口对应的测试案例,从所述测试案例、接口文档、业务参数文档和参数库中获取待测试接口所需的参数写入待测试接口的上送报文中,完成待测试接口上送报文的拼装,调用待测试接口,将返回报文和返回报文期望值进行比较,若返回报文和返回报文期望值一致,则测试案例通过,解决了包含页面接口、数据接口且接口间存在相互关系这类复杂场景的接口全流程测试自动化难题。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
18.图1为本发明实施例中接口全流程场景自动化测试方法流程图一;
19.图2为本发明实施例中接口全流程场景自动化测试方法流程图二;
20.图3为本发明实施例中接口全流程场景自动化测试方法流程图三;
21.图4为本发明实施例中接口全流程场景自动化测试方法流程图四;
22.图5为本发明实施例中接口全流程场景自动化测试方法流程图五;
23.图6为本发明实施例中接口全流程场景自动化测试方法流程图六;
24.图7为本发明实施例中接口全流程场景自动化测试装置结构框图。
具体实施方式
25.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
26.图1为本发明实施例中接口全流程场景自动化测试方法流程图一,如图1所示,该方法包括:
27.步骤101:配置api接口功能测试中涉及的全部接口的接口文档、测试案例库和业务参数文档,其中接口文档中包括对应接口的测试技术参数;
28.步骤102:从所述接口文档中获取待测试接口的前序接口访问顺序清单,基于前序接口访问顺序清单,从所述测试案例库中获取前序接口对应的测试案例,从所述测试案例、接口文档和业务参数文档中获取前序接口所需的参数写入前序接口的上送报文中,对需要从其他接口返回报文中获取的参数进行命名,将参数名写入前序接口的上送报文中,完成前序接口上送报文的拼装,生成前序接口调用顺序任务;
29.步骤103:基于前序接口调用顺序任务,依次调用前序接口,完成前序接口的参数获取,将参数按照参数名存入参数库中;
30.步骤104:从所述测试案例库中获取待测试接口对应的测试案例,从所述测试案例、接口文档、业务参数文档和参数库中获取待测试接口所需的参数写入待测试接口的上送报文中,完成待测试接口上送报文的拼装,调用待测试接口,将返回报文和返回报文期望值进行比较,若返回报文和返回报文期望值一致,则测试案例通过。
31.具体的,api(application programming interface,简称:api),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。换句话说,api也可以看做程序/资源/组件的集成点。它的功能会跟ui有些类似,通过某些特定指令、参数等可以让后台的一堆代码运行起来,最后得到想要的结果。不同的是它不提供可视的按钮文本框之类的界面,而通常是由一个直接和底层代码打交道的链接构成。
32.什么是api功能测试?api测试是针对系统所提供的api做各方面的验证。api的性能和安全测试根据测试策略的不同,会是一个可选测试项。api的功能测试类似于ui功能测试,都是在已知输入内容和期望结果的前提下,使用这个功能/调用这个api并且验证是否能返回期望的结果。不同的是api测试在返回结果被呈现给客户前就完成了,从而对测试环境的依赖会比较小。
33.具体的,步骤101中配置api接口功能测试中涉及的全部接口的接口文档,接口文档中包含全部接口信息,如接口描述、版本信息、接口报文结构、访问流程、接口间相互关系、安全控制措施、报错场景。
34.步骤101中配置测试案例库,测试案例库预置各接口测试案例、发送报文参数值、返回报文期望值、案例名称、字段规则等。
35.测试案例(test case),也就是测试用例,没有经典的定义。比较通常的说法是:指
对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
36.步骤101中配置业务参数文档,业务参数文档包括页面接口访问地址、认证信息访问地址、数据接口访问地址、页面接口授权完成跳转地址、接口访问机构代码、机构密码、测试账号、预约起止时间、认证方式、加密通讯方式、收付款人信息、金额、币种、费用等业务测试信息。
37.对于待测试接口,本发明编辑接口清单,按照需要测试的场景,配置待测试的接口清单。
38.在本发明实施例中,如图2所示,还包括:
39.步骤201:配置接口文档、测试案例库和业务参数文档的地址,基于所述地址访问所述接口文档、测试案例库和业务参数文档。
40.在本发明实施例中,如图3所示,还包括:
41.步骤301:配置版本号,当存在多个版本的接口文档时,根据版本号获取对应版本的接口文档。
42.在本发明实施例中,步骤102包括:
43.s01:根据上述配置的版本号等信息,访问接口文档地址,获取接口报文结构,同时比对待测试接口清单,根据接口文档中接口间相互关系,获取待测试接口的前序接口清单。
44.s02:访问案例库,抽取待测试接口案例,获取案例需要使用的各类参数需求(如不同业务权限参数、不同有效期参数等),写入对应前序接口的报文中。从案例库及接口文档地址获取上送报文的选输字段,选输字段可由用户根据测试需要进行配置,如不配置,则仅测试必输字段。
45.s03:访问业务参数文档,将其他各项业务参数填入前序接口上送报文中。从业务参数文档及参数文档地址获取上送报文的选输字段,选输字段可由用户根据测试需要进行配置,如需对选输字段进行测试,可输入选输字段。
46.对于需要从其他接口的返回报文中获取的参数值,在下述步骤中获取。
47.s04:根据接口文档的前后序接口关系,提取所有需要从其他接口返回报文中获取的参数及参数规则,对各参数进行命名。
48.s05:将以上参数名按照接口文档填入各接口报文值中(即这些报文字段的值为参数名而不是固定的值)。
49.s06:根据以上信息完成所有前序接口上送报文的拼装,并根据接口文档接口间关系生成调用顺序任务。
50.在本发明实施例中,如图4所示,步骤103基于前序接口调用顺序任务,依次调用前序接口,完成前序接口的参数获取,将参数按照参数名存入参数库中,包括:
51.基于前序接口调用顺序任务,依次调用前序接口,完成前序接口的数据接口和页面接口的参数获取,将参数按照参数名存入参数库中。
52.在本发明实施例中,如图5所示,步骤103基于前序接口调用顺序任务,依次调用前序接口,完成前序接口的数据接口和页面接口的参数获取,将参数按照参数名存入参数库中,包括:
53.步骤501:基于前序接口调用顺序任务,调用第一组前序接口的数据接口,接收返
回报文;
54.步骤502:提取返回报文中后序接口需要使用的参数值按照对应的参数名存储到参数库中;
55.步骤503:读取第二组前序接口的数据接口需要获取的参数名,根据参数名从参数库中获取对应的参数值,写入第二组前序接口的上送报文中,调用第二组前序接口的数据接口,接收返回报文;
56.步骤504:基于前序接口调用顺序任务,依次完成全部前序接口的数据接口的调用,进入页面接口参数获取;
57.步骤505:根据接口文档中的页面接口访问地址拼装规则,从参数库中获取所需参数生成页面接口访问地址;
58.步骤506:在用户点击页面接口访问地址后,对页面接口授权完成跳转地址进行监听,接收返回报文,提取返回报文中后序接口需要使用的参数值按照对应的参数名存储到参数库中。
59.在本发明实施例中,如图6所示,步骤502还包括:
60.步骤601:根据接口文档中获取的报文规则,对返回报文合法性进行校验,校验通过后,提取返回报文中后序接口需要使用的参数值按照对应的参数名存储到参数库中。
61.在本发明实施例中,还包括:
62.对页面接口访问地址进行加密。
63.具体的,步骤103包括:
64.s07:根据接口调用顺序任务,调用第一组接口,接收返回报文。
65.s08:根据接口文档中获取的报文规则,对接口返回报文合法性进行校验,校验通过后,提取返回报文中后序接口需要使用的参数值(如token、协议编号等),按照对应的参数名存储到参数库中。
66.s09:根据调用顺序,第一组接口调用完毕并获取到所需参数后,开始调用第二组接口。
67.s10:读取第二组接口中需要获取的参数名,根据参数名从参数库中获取参数值,写入上送报文中。
68.s11:开始调用第二组接口,根据接口调用任务逐一完成数据接口的调用。
69.s12:在上述步骤完成后(也可直接从页面接口开始),进入页面接口参数获取。
70.s13:最后一组数据接口获取到参数后,根据接口文档规范的页面接口访问地址拼装规则,从参数库中获取各参数值(其中包括页面接口授权完成跳转地址),对地址进行加密拼装生成页面接口访问地址。
71.s14:用户点击页面接口访问地址后,对页面接口授权完成跳转地址进行监听。根据接口文档,提取后序接口需要从页面接口获取的参数名。
72.s15:用户完成页面接口授权后,跳转到监听地址,从页面接口返回报文中提取上述参数名并存储进参数库中。
73.在本发明实施例中,步骤104包括:
74.s16:检索前述接口调用顺序清单,比对调用完成所有待测试接口所需前序接口参数获取后,进入接口测试。
75.s17:将案例待测试接口所需参数写入,提取案例库各案例需要上送的其他参数值,拼装接口测试上送报文。
76.s18:调用待测试接口,将各案例配置的字段期望值与返回报文的返回值进行比对,比对全部通过则案例通过。
77.本发明实施例中还提供了一种接口全流程场景自动化测试装置,如下面的实施例所述。由于该装置解决问题的原理与接口全流程场景自动化测试方法相似,因此该装置的实施可以参见接口全流程场景自动化测试方法的实施,重复之处不再赘述。
78.图7为本发明实施例中接口全流程场景自动化测试装置结构框图,如图7所示,该装置包括:
79.参数和案例配置模块02,用于配置api接口功能测试中涉及的全部接口的接口文档、测试案例库和业务参数文档,其中接口文档中包括对应接口的测试技术参数;
80.报文拼装模块04,用于从所述接口文档中获取待测试接口的前序接口访问顺序清单,基于前序接口访问顺序清单,从所述测试案例库中获取前序接口对应的测试案例,从所述测试案例、接口文档和业务参数文档中获取前序接口所需的参数写入前序接口的上送报文中,对需要从其他接口返回报文中获取的参数进行命名,将参数名写入前序接口的上送报文中,完成前序接口上送报文的拼装,生成前序接口调用顺序任务;
81.接口参数获取模块06,用于基于前序接口调用顺序任务,依次调用前序接口,完成前序接口的参数获取,将参数按照参数名存入参数库中;
82.接口测试模块08,用于从所述测试案例库中获取待测试接口对应的测试案例,从所述测试案例、接口文档、业务参数文档和参数库中获取待测试接口所需的参数写入待测试接口的上送报文中,完成待测试接口上送报文的拼装,调用待测试接口,将返回报文和返回报文期望值进行比较,若返回报文和返回报文期望值一致,则测试案例通过。
83.在本发明实施例中,参数和案例配置模块02还用于:
84.配置接口文档、测试案例库和业务参数文档的地址,基于所述地址访问所述接口文档、测试案例库和业务参数文档。
85.在本发明实施例中,参数和案例配置模块02还用于:
86.配置版本号;
87.当存在多个版本的接口文档时,根据版本号获取对应版本的接口文档。
88.在本发明实施例中,接口参数获取模块06具体用于:
89.基于前序接口调用顺序任务,依次调用前序接口,完成前序接口的数据接口和页面接口的参数获取,将参数按照参数名存入参数库中。
90.在本发明实施例中,接口参数获取模块06具体用于:
91.基于前序接口调用顺序任务,调用第一组前序接口的数据接口,接收返回报文;
92.提取返回报文中后序接口需要使用的参数值按照对应的参数名存储到参数库中;
93.读取第二组前序接口的数据接口需要获取的参数名,根据参数名从参数库中获取对应的参数值,写入第二组前序接口的上送报文中,调用第二组前序接口的数据接口,接收返回报文;
94.基于前序接口调用顺序任务,依次完成全部前序接口的数据接口的调用,进入页面接口参数获取;
95.根据接口文档中的页面接口访问地址拼装规则,从参数库中获取所需参数生成页面接口访问地址;
96.在用户点击页面接口访问地址后,对页面接口授权完成跳转地址进行监听,接收返回报文,提取返回报文中后序接口需要使用的参数值按照对应的参数名存储到参数库中。
97.在本发明实施例中,接口参数获取模块06还用于:
98.根据接口文档中获取的报文规则,对返回报文合法性进行校验,校验通过后,提取返回报文中后序接口需要使用的参数值按照对应的参数名存储到参数库中。
99.在本发明实施例中,接口参数获取模块06还用于:
100.对页面接口访问地址进行加密。
101.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述接口全流程场景自动化测试方法。
102.本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述所述接口全流程场景自动化测试方法的步骤。
103.本发明实施例中,与现有技术中自动化测试系统大多需要将前后序接口分开测试或通过手工传递参数的方式进行测试,不能实现全流程接口场景化自动测试的技术方案相比,本发明通过配置api接口功能测试中涉及的全部接口的接口文档、测试案例库和业务参数文档,其中接口文档中包括对应接口的测试技术参数;从所述接口文档中获取待测试接口的前序接口访问顺序清单,基于前序接口访问顺序清单,从所述测试案例库中获取前序接口对应的测试案例,从所述测试案例、接口文档和业务参数文档中获取前序接口所需的参数写入前序接口的上送报文中,对需要从其他接口返回报文中获取的参数进行命名,将参数名写入前序接口的上送报文中,完成前序接口上送报文的拼装,生成前序接口调用顺序任务;基于前序接口调用顺序任务,依次调用前序接口,完成前序接口的参数获取,将参数按照参数名存入参数库中;从所述测试案例库中获取待测试接口对应的测试案例,从所述测试案例、接口文档、业务参数文档和参数库中获取待测试接口所需的参数写入待测试接口的上送报文中,完成待测试接口上送报文的拼装,调用待测试接口,将返回报文和返回报文期望值进行比较,若返回报文和返回报文期望值一致,则测试案例通过,解决了包含页面接口、数据接口且接口间存在相互关系这类复杂场景的接口全流程测试自动化难题。
104.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
105.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
106.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
107.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
108.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1