一种接口自动化测试方法、系统、计算机设备及存储介质与流程
未命名
08-17
阅读:134
评论:0
1.本发明涉及自动化测试技术领域,具体涉及一种接口自动化测试方法、系统、计算机设备及存储介质。
背景技术:
2.随着微服务概念的不断普及,越来越多的系统采用前后端分离的架构,后端的api接口(application programming interface,应用程序接口)也越来越多。对于多模块的应用系统,每个模块的业务逻辑都有明确的界限,而一个功能或许会涉及多个模块,因此在应用系统的生命周期中,随着每个版本的发布都会有对应的后端的api接口,多版本的api接口管理较为繁琐,并且在进入测试阶段之前,研发人员都会进行api接口的内测,因此,如何对后端多版本的api接口进行自动化测试是本领域技术人员亟待解决的问题。
技术实现要素:
3.有鉴于此,本发明提供了一种接口自动化测试方法、系统、计算机设备及存储介质,以解决对后端多版本的api接口进行测试较为困难的问题。
4.第一方面,本发明提供了一种接口自动化测试方法,包括:获取客户端上传的接口文档,基于接口文档接入至少一个应用程序接口;其中,接口文档符合开放式应用编程接口规范;基于至少一个应用程序接口对应的业务处理逻辑创建接口测试任务;执行接口测试任务,生成自动化测试结果报表。
5.本发明提供的一种接口自动化测试方法,用户在客户端通过预设开放式应用编程接口规范文件生成接口文档,基于接口文档接入至少一个应用程序接口,实现了对多版本的api接口的管理,提高资源的使用率,并且基于至少一个应用程序接口对应的业务处理逻辑创建接口测试任务,以执行接口测试任务,生成自动化测试结果报表,实现了接口测试任务的自动化创建,有效降低了测试环境创建、维护了时间成本。
6.在一种可选的实施方式中,获取客户端上传的接口文档,基于接口文档接入至少一个应用程序接口,包括:提取接口文档中的目标接口信息,根据预设标签分组对目标接口信息进行分组查找;基于分组查找结果选取至少一个应用程序接口,接入至少一个应用程序接口。
7.本发明提供的一种接口自动化测试方法,根据预设标签分组对目标接口信息进行分组查找,提高了对应用程序接口的识别效率与精确度。
8.在一种可选的实施方式中,基于至少一个应用程序接口对应的业务处理逻辑创建接口测试任务,包括:基于接口文档确定至少一个应用程序接口对应的接口请求方式;基于至少一个应用程序接口,利用预设参数列表确定接口参数;
基于接口文档确定至少一个应用程序接口对应的预设接口状态码信息和预设接口返回数据;基于接口请求方式、接口参数、预设接口状态码信息和预设接口返回数据创建接口测试任务。
9.本发明提供的一种接口自动化测试方法,基于接口请求方式、接口参数、接口状态码信息和接口返回数据创建接口测试任务,使得创建的接口测试任务更加符合用户的业务逻辑,可以有效地对多版本的api接口进行管理。
10.在一种可选的实施方式中,执行接口测试任务,生成自动化测试结果报表,包括:将接口请求方式和接口参数输入至少一个应用程序接口,生成当前接口状态码信息和当前接口返回数据;将当前接口状态码信息与预设接口状态码信息进行比较,并对当前接口返回数据中的数据结构进行检测;当当前接口状态码信息与预设接口状态码信息不相同,且当前接口返回数据中的数据结构为空时,则结束接口测试任务,生成自动化测试结果报表。
11.本发明提供的一种接口自动化测试方法,通过接口状态码信息与接口返回数据,可以对应用程序接口对应的接口测试任务进行实时监测,进而将自动化测试结果反馈给用户,以便用户实时了解接口测试任务的测试过程。
12.在一种可选的实施方式中,执行接口测试任务,生成自动化测试结果报表,还包括:将当前接口状态码信息与预设异常值进行比较,当当前接口状态码信息为预设异常值,且当前接口返回数据中的数据结构为空时,则结束接口测试任务。
13.本发明提供的一种接口自动化测试方法,将当前接口状态码信息与预设异常值进行比较,提高了对接口测试任务总执行结果的判断速度。
14.在一种可选的实施方式中,执行接口测试任务,生成自动化测试结果报表,还包括:当接口测试任务为多阶段测试任务时,则获取当前阶段测试任务对应的自动化测试结果;当当前阶段测试任务对应的自动化测试结果为异常时,则中断执行接口测试任务,生成中断结果,并将中断结果通过客户端进行显示。
15.本发明提供的一种接口自动化测试方法,通过分别对不同阶段的测试任务结果进行监测,节省了测试时间,实现了对多阶段测试任务的实时监测与修改。
16.在一种可选的实施方式中,还包括:获取上一阶段的字段编号,提取接口返回数据中当前阶段的字段编号,并将当前阶段的字段编号与上一阶段的字段编号进行关联。
17.本发明提供的一种接口自动化测试方法,由于在自动化测试过程中,各阶段的参数为同一路径,因此将字段编号进行关联,可以利用字段编号有效地对接口测试任务的上一阶段的相关参数进行准确识别。
18.在一种可选的实施方式中,在执行接口测试任务,生成自动化测试结果报表之前,包括:
获取客户端上传的用户操作数据或预设周期触发数据,基于用户操作数据或预设周期触发数据执行接口测试任务,生成自动化测试结果报表。
19.本发明提供的一种接口自动化测试方法,通过用户操作数据或预设周期触发数据可以对接口测试任务进行实时监测或周期性监测,提高了对应用程序接口管理的灵活性。
20.在一种可选的实施方式中,还包括:将自动化测试结果报表发送给客户端进行可视化显示,以便用户基于自动化测试结果报表编排测试结果反馈信息;其中,自动化测试结果报表包括接口测试任务总执行结果、接口测试任务的总执行时间、接口测试任务的每个阶段的执行时间、接口测试任务的每个阶段的执行结果和接口测试的覆盖率。
21.本发明提供的一种接口自动化测试方法,将自动化测试结果报表发送给客户端进行可视化显示,从多种维度直观地展示了用户关注的测试结果,以便用户通过自动化测试结果报表实时编排测试结果反馈信息。
22.在一种可选的实施方式中,还包括:获取用户上传的测试结果反馈信息,基于测试结果反馈信息对接口测试任务进行管理。
23.本发明提供的一种接口自动化测试方法,通过用户上传的测试结果反馈信息对接口测试任务进行管理,使得接口测试任务更加符合当前测试场景,提高研发人员的工作效率,实现了对后端多版本api的灵活管理。
24.在一种可选的实施方式中,基于测试结果反馈信息对接口测试任务进行管理,包括:基于测试结果反馈信息更新接口测试任务,生成更新后的接口测试任务;基于测试结果反馈信息删除接口测试任务和自动化测试结果报表。
25.在一种可选的实施方式中,基于测试结果反馈信息对接口测试任务进行管理,还包括:执行更新后的接口测试任务,生成接口测试修改执行结果,并将接口测试修改执行结果发送给客户端进行可视化显示。
26.本发明提供的一种接口自动化测试方法,接口测试任务更新单元可以实现在已有接口测试任务的基础上,基于测试结果反馈信息创建符合当前场景下的接口测试任务,节约了接口测试任务的创建时间,并通过对接口测试任务的更新与删除实现了对后端多版本api接口的灵活管理。
27.在一种可选的实施方式中,在获取客户端上传的接口文档,基于接口文档接入至少一个应用程序接口之前,还包括:利用接口文档生成工具生成符合开放式应用编程接口规范的接口文件,将符合开放式应用编程接口规范的接口文件在客户端进行显示;获取用户编辑后的符合开放式应用编程接口规范的接口文件,并将用户编辑后的符合开放式应用编程接口规范的接口文件作为接口文档。
28.在一种可选的实施方式中,接口文档生成工具采用swagger工具。
29.本发明提供的一种接口自动化测试方法,预先利用接口文档生成工具生成符合开放式应用编程接口规范的接口文件,使得用户可以更加直观简单地对接口文档的相关数据
进行设置,对用户的设置要求较低,扩大了接口自动化测试方法的应用场景。
30.第二方面,本发明提供了一种接口自动化测试系统,包括:应用程序接口接入模块,用于获取客户端上传的接口文档,基于接口文档接入至少一个应用程序接口;其中,接口文档符合开放式应用编程接口规范;测试任务编排模块,与应用程序接口接入模块连接,用于基于至少一个应用程序接口对应的业务处理逻辑创建接口测试任务;测试任务执行模块,与测试任务编排模块连接,用于执行接口测试任务,生成自动化测试结果报表。
31.在一种可选的实施方式中,测试任务编排模块,包括:接口关联单元,用于基于接口文档确定至少一个应用程序接口对应的接口请求方式;接口参数设置单元,用于基于至少一个应用程序接口,利用预设参数列表确定接口参数;接口响应设置单元,用于基于接口文档确定至少一个应用程序接口对应的接口状态码信息和接口返回数据;测试任务创建单元,与接口关联单元、接口参数设置单元和接口响应设置单元连接,用于基于接口请求方式、接口参数、接口状态码信息和接口返回数据创建接口测试任务。
32.在一种可选的实施方式中,还包括:测试任务管理模块,用于获取用户上传的测试结果反馈信息,基于测试结果反馈信息对接口测试任务进行管理。
33.在一种可选的实施方式中,测试任务管理模块,包括:接口测试任务更新单元,用于基于测试结果反馈信息更新接口测试任务,生成更新后的接口测试任务;接口测试任务删除单元,用于基于测试结果反馈信息删除接口测试任务和自动化测试结果报表。
34.第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的一种接口自动化测试方法。
35.第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的一种接口自动化测试方法。
附图说明
36.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1是根据本发明实施例的一种接口自动化测试方法的流程示意图;
图2是根据本发明实施例的另一接口自动化测试方法的流程示意图;图3是根据本发明实施例的又一接口自动化测试方法的流程示意图;图4是根据本发明实施例的再一接口自动化测试方法的流程示意图;图5是根据本发明实施例的接口自动化测试过程的流程示意图;图6是根据本发明实施例的宠物商店中查看新建宠物的流程示意图;图7是根据本发明实施例的宠物商店中编排多阶段宠物测试任务的流程示意图;图8是根据本发明实施例的一种接口自动化测试系统的结构框图;图9是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
38.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.根据本发明实施例,提供了一种接口自动化测试方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
40.在本实施例中提供了一种接口自动化测试方法,可用于上述的移动终端,如手机、平板电脑等,图1是根据本发明实施例的一种接口自动化测试方法的流程图,如图1所示,该流程包括如下步骤:步骤s101,获取客户端上传的接口文档,基于接口文档接入至少一个应用程序接口;其中,接口文档符合开放式应用编程接口规范。
41.具体地,在获取客户端上传的接口文档之前,利用接口文档生成工具生成符合开放式应用编程接口规范的接口文件,将符合开放式应用编程接口规范的接口文件在客户端进行显示;获取用户编辑后的符合开放式应用编程接口规范的接口文件,并将用户编辑后的符合开放式应用编程接口规范的接口文件作为接口文档。
42.进一步地,接口文档生成工具采用swagger工具(一个接口文档生成工具)。
43.具体地,客户端存储有预设开放式应用编程接口规范(简称openapi规范)文件,用户直接在客户端存储的预设开放式应用编程接口规范文件选择api接口(即应用程序接口),并设置相应的接口参数和接口请求方式,进而生成接口文档。
44.进一步地,openapi规范为一种restful api(一套协议来规范多种形式的前端和同一个后台的交互方式)的规范,swagger工具提供了java、python、golang等计算机编程语言的sdk(software development kit,软件开发工具包),因此用户也可以利用swagger工具编排符合openapi规范的json(javascript object notation,js对象简谱,是一种轻量级的数据交换格式)或者yaml(yaml ain't markup language,用来表达数据序列化的格式)文件(即接口文档);对于已经使用openapi规范的开发团队,只需要提供对应的json或者yaml文件就能将应用系统的不同版本的api接入进来;而对于未使用openapi规范的开发团队,也可以在线录入api的功能。
45.步骤s102,基于至少一个应用程序接口对应的业务处理逻辑创建接口测试任务。
46.具体地,将一个或者多个api(即应用程序接口)连接起来完成一个业务的处理逻辑,每个api都有输入和输出,api的输入代表着参数的传递,输出表示接口的返回以及状态;对于多个api的情况也会有关联信息的记录,进而创建接口测试任务,接口测试任务为一个有前驱后置的执行流程图。
47.步骤s103,执行接口测试任务,生成自动化测试结果报表。
48.具体地,在执行接口测试任务,生成自动化测试结果报表之前,还包括:获取客户端上传的用户操作数据或预设周期触发数据,基于用户操作数据或预设周期触发数据执行接口测试任务,生成自动化测试结果报表。
49.进一步地,接口测试任务的执行方式包括:手动触发以及周期性触发;手动触发的方式需要用户在客户端的web(world wide web,全球广域网)界面上进行点击操作,生成用户操作数据;而周期性触发,用户只需要定义好触发周期即可生成预设周期性触发数据,例如可以指定每天的某个特定的时间执行该测试任务;或者按周、按每小时等等执行测试任务,具体情况按照研发进度需求设置。
50.进一步地,将自动化测试结果报表发送给客户端进行可视化显示,以便用户基于自动化测试结果报表编排测试结果反馈信息;其中,自动化测试结果报表包括接口测试任务总执行结果(成功或者失败,失败的原因)、接口测试任务的总执行时间(从开始到结束的时间)、接口测试任务的每个阶段的执行时间(应用程序接口的响应时间)、接口测试任务的每个阶段的执行结果(应用程序接口的返回信息和响应状态等)和接口测试的覆盖率。
51.进一步地,获取用户上传的测试结果反馈信息,基于测试结果反馈信息对接口测试任务进行管理,具体包括:基于测试结果反馈信息更新接口测试任务,生成更新后的接口测试任务;基于测试结果反馈信息删除接口测试任务和自动化测试结果报表。
52.进一步地,接口测试任务的复制和更新操作是为了更好地应对多版本api的情景,在微服务架构下每个模块的更新迭代情况不一,所以为了更快地编排出新版本的api测试任务,用户可以直接复制上一版本的接口测试任务,然后在此基础上进行修改,生成测试结果反馈信息。
53.进一步地,执行更新后的接口测试任务,生成接口测试修改执行结果,并将接口测试修改执行结果发送给客户端进行可视化显示。
54.本实施例提供的一种接口自动化测试方法,用户在客户端通过预设开放式应用编程接口规范文件生成接口文档,基于接口文档接入至少一个应用程序接口,实现了对多版本的api接口的管理,提高资源的使用率,并且基于至少一个应用程序接口对应的业务处理逻辑创建接口测试任务,以执行接口测试任务,生成自动化测试结果报表,实现了接口测试任务的自动化创建,有效降低了测试环境创建、维护了时间成本。
55.在本实施例中提供了一种接口自动化测试方法,可用于上述的移动终端,如手机、平板电脑等,图2是根据本发明实施例的一种接口自动化测试方法的流程图,如图2所示,该流程包括如下步骤:步骤s201,获取客户端上传的接口文档,基于接口文档接入至少一个应用程序接口;其中,接口文档符合开放式应用编程接口规范。
56.具体地,上述步骤s201包括:
步骤s2011,提取接口文档中的目标接口信息,根据预设标签分组对目标接口信息进行分组查找。
57.步骤s2012,基于分组查找结果选取至少一个应用程序接口,接入至少一个应用程序接口。
58.步骤s202,基于至少一个应用程序接口对应的业务处理逻辑创建接口测试任务。详细请参见图1所示实施例的步骤s102,在此不再赘述。
59.步骤s203,执行接口测试任务,生成自动化测试结果报表。详细请参见图1所示实施例的步骤s103,在此不再赘述。
60.本实施例提供的一种接口自动化测试方法,根据预设标签分组对目标接口信息进行分组查找,提高了对应用程序接口的识别效率与精确度。
61.在本实施例中提供了一种接口自动化测试方法,可用于上述的移动终端,如手机、平板电脑等,图3是根据本发明实施例的一种接口自动化测试方法的流程图,如图3所示,该流程包括如下步骤:步骤s301,获取客户端上传的接口文档,基于接口文档接入至少一个应用程序接口;其中,接口文档符合开放式应用编程接口规范。详细请参见图2所示实施例的步骤s201,在此不再赘述。
62.步骤s302,基于至少一个应用程序接口对应的业务处理逻辑创建接口测试任务。
63.具体地,上述步骤s302包括:步骤s3021,基于接口文档确定至少一个应用程序接口对应的接口请求方式。
64.步骤s3022,基于至少一个应用程序接口,利用预设参数列表确定接口参数。
65.步骤s3023,基于接口文档确定至少一个应用程序接口对应的预设接口状态码信息和预设接口返回数据。
66.步骤s3024,基于接口请求方式、接口参数、预设接口状态码信息和预设接口返回数据创建接口测试任务。
67.具体地,将接口测试任务中的接口请求方式和接口参数作为应用程序接口的输入,将接口状态码信息和接口返回数据作为应用程序接口的输出,进而执行接口测试任务,得到自动化测试结果。
68.进一步地,接口测试任务支持分支流程,串行流程、并行流程;并且支持各种类型的请求方式。
69.进一步地,获取上一阶段的字段编号,提取接口返回数据中当前阶段的字段编号,并将当前阶段的字段编号与上一阶段的字段编号进行关联。
70.进一步地,当接口测试任务为多阶段任务时,在执行完成上一阶段的接口测试任务后,执行当前阶段的接口测试任务时,需要将当前阶段的字段编号与上一阶段的字段编号进行关联。
71.步骤s303,执行接口测试任务,生成自动化测试结果报表。详细请参见图2所示实施例的步骤s203,在此不再赘述。
72.本实施例提供的一种接口自动化测试方法,由于在自动化测试过程中,各阶段的参数为同一路径,因此将字段编号进行关联,可以利用字段编号有效地对接口测试任务的上一阶段的相关参数进行准确识别。
73.在本实施例中提供了一种接口自动化测试方法,可用于上述的移动终端,如手机、平板电脑等,图4是根据本发明实施例的一种接口自动化测试方法的流程图,如图4所示,该流程包括如下步骤:步骤s401,获取客户端上传的接口文档,基于接口文档接入至少一个应用程序接口;其中,接口文档符合开放式应用编程接口规范。详细请参见图3所示实施例的步骤s301,在此不再赘述。
74.步骤s402,基于至少一个应用程序接口对应的业务处理逻辑创建接口测试任务。详细请参见图3所示实施例的步骤s302,在此不再赘述。
75.步骤s403,执行接口测试任务,生成自动化测试结果报表。
76.具体地,上述步骤s403包括:步骤s4031,将接口请求方式和接口参数输入至少一个应用程序接口,生成当前接口状态码信息和当前接口返回数据。
77.步骤s4032,将当前接口状态码信息与预设接口状态码信息进行比较,并对当前接口返回数据中的数据结构进行检测。
78.步骤s4033,当当前接口状态码信息与预设接口状态码信息不相同,且当前接口返回数据中的数据结构为空时,则结束接口测试任务,生成自动化测试结果报表。
79.或者,将当前接口状态码信息与预设异常值进行比较,当当前接口状态码信息为预设异常值,且当前接口返回数据中的数据结构为空时,则结束接口测试任务。
80.进一步地,当接口测试任务为多阶段测试任务时,则获取当前阶段测试任务对应的自动化测试结果;当当前阶段测试任务对应的自动化测试结果为异常时,则中断执行接口测试任务,生成中断结果,并将中断结果通过客户端进行显示。
81.本实施例提供的一种接口自动化测试方法,基于接口请求方式、接口参数、接口状态码信息和接口返回数据创建接口测试任务,使得创建的接口测试任务更加符合用户的业务逻辑,可以有效地对多版本的api接口进行管理。
82.下面通过具体实施例来说明一种接口自动化测试方法的测试过程的。
83.实施例1:如图5所示,在api接口自动化测试之前,用户在符合openapi规范的文档中手动录入api接口的相关信息,生成接口文档,并将接口文档上传至api自动化测试系统;api自动化测试系统通过接口文档创建api自动测试任务,并关联api接口;api自动化测试系统保存测试任务;api自动化测试系统执行测试任务,并将执行结果发送给用户;用户查看测试任务执行结果,api自动化测试系统展示任务执行结果,包括执行时间、失败原因等;用户向api自动化测试系统发送更新、删除测试任务的相关数据;api自动化测试系统更新、删除测试任务,进而重新执行更新、删除后的测试任务,以此进行迭代。
84.实施例2:以下实施例2和实施例3以宠物商店为应用场景进行接口测试任务编排,其中,接口文档使用json文件,定义了4个接口和2个数据结构,分别为:
1)/pets,get方法,可以根据宠物类别进行过滤查询,返回所有的宠物信息;2)/pets,post方法,在宠物商店中新建一个宠物,返回新建的宠物信息;3)/pets/{id},get方法,根据宠物id进行查询,返回宠物信息;4)/pets/{id},delete方法,根据宠物id进行删除;5)pet结构,宠物信息,包括id和newpet结构;6)newpet结构,新宠物信息,包括宠物名称和宠物类别。
85.如图6所示,宠物商店中可以查看新建的宠物,编排任务流程如下:1)根据业务逻辑,满足本条需求需要分为两个阶段,第一阶段是在宠物商店中新建一个宠物,第二阶段是根据新建的宠物信息查询到该宠物,即对应流程图中的虚线部分;开始和结束流程是可视化界面中内置的标志位;2)宠物新建阶段;a)api关联;基于openapi规范的api定义中都会有一个tags分组,通过web界面进行api关联的时候,先根据tags进行分组,然后用户在分组下选择对应的api,特别是当应用系统的api数量很多时,会先根据tags进行分组查找;选择api之后,再选择使用的请求方式;b)api的参数设置;上一步骤中选择请求方式之后,在web界面上会展示对应的参数列表,在本示例中会展示宠物名称和宠物类别,对于不同的参数类型,会有一个默认的填充值,默认值用户可以修改,这样简化了用户的操作流程;c)api接口响应设置;这个阶段是为了让用户告诉系统如何判断接口返回是正常的,包括两方面:第一是接口的状态码信息,正常值和异常值;第二是接口的返回数据是否正确;比如本例中正常的状态是接口返回状态码是200以及返回的数据是pet的数据结构;3)宠物查询阶段;a)api关联;基于openapi规范的api定义中都会有一个tags分组,通过web界面进行api关联的时候,先根据tags进行分组,然后用户在分组下选择对应的api,特别是当应用系统的api数量很多时,会先根据tags进行分组查找;选择api之后,再选择使用的请求方式;b)api的参数设置;上一步骤中选择请求方式之后,在web界面上会展示对应的参数列表,在本示例中参数信息是在路径中,且与上一阶段有关联,所以需要进行参数关联设置;c)api的参数关联设置;本示例中id参数是宠物新建接口返回数据中的id字段,只需要将id关联到上一阶段的返回数据的id字段即可;本示例的场景比较简单,如果遇到复杂的测试场景,参数关联设置可以关联之前的任意阶段,请求参数和返回数据都可;d)api接口响应设置;这个阶段是为了让用户告诉系统如何判断接口返回是正常的,包括两方面:第一是接口的状态码信息,正常值和异常值;第二是接口的返回数据是否正确;比如本例中正常的状态是接口返回状态码是200以及返回的数据是pet的数据结构且不可为空;接口测试任务创建之后,在执行阶段,只有上一阶段执行成功且数据正常才会继续执行下一阶段;如果执行任务中断可以在web界面上看到异常提示信息。
86.实施例3:
如图7所示,本实施例的应用场景为:在宠物商店中新建宠物之前,校验宠物名称是否可用,如果可用的话,新建宠物;新建之后查询该宠物信息,查询成功之后删除,并验证删除成功。
87.1)根据业务逻辑,满足本条需求需要分为五阶段,第一阶段是校验宠物是否存在,第二阶段是在宠物商店中新建一个宠物,第三阶段是根据新建的宠物信息查询到该宠物,第四阶段是删除新建的宠物,第五阶段是校验宠物成功删除,即对应流程图中的虚线部分;开始和结束流程是可视化界面中内置的标志位;2)宠物新建校验阶段:/pet接口进行简单扩充,可以根据宠物名称和宠物类别进行过滤查询a)api关联:基于openapi规范的api定义中都会有一个tags分组,通过web界面进行api关联的时候,先根据tags进行分组,然后用户在分组下选择对应的api,特别是当应用系统的api数量很多时,会先根据tags进行分组查找;选择api之后,再选择使用的请求方式;b)api的参数设置:上一步骤中选择请求方式之后,在web界面上会展示对应的参数列表,在本示例中会展示宠物名称和宠物类别,且参数实在查询路径中,对于不同的参数类型,会有一个默认的填充值,默认值用户可以修改,这样简化了用户的操作流程;c)api接口响应设置:这个阶段是为了让用户告诉系统如何判断接口返回是正常的,包括两方面:第一是接口的状态码信息,正常值和异常值;第二是接口的返回数据是否正确;比如本例中正常的状态是接口返回状态码是200以及返回的数据是pet的数据结构,且数据为空;宠物校验成功之后继续进行宠物新建阶段,如果校验失败,直接结束,在web界面中会显示的表明该api测试任务进行的是哪个分支。
88.3)宠物新建阶段:a)api关联:基于openapi规范的api定义中都会有一个tags分组,通过web界面进行api关联的时候,先根据tags进行分组,然后用户在分组下选择对应的api,特别是当应用系统的api数量很多时,会先根据tags进行分组查找;选择api之后,再选择使用的请求方式;b)api的参数设置:上一步骤中选择请求方式之后,在web界面上会展示对应的参数列表,在本示例中会展示宠物名称和宠物类别,对于不同的参数类型,会有一个默认的填充值,默认值用户可以修改,这样简化了用户的操作流程;c)api的参数关联设置:本示例中name参数是宠物校验接口参数中的name字段,只需要将name关联到上一阶段的参数设置中的name字段即可;本示例的场景比较简单,如果遇到复杂的测试场景,参数关联设置可以关联之前的任意阶段,请求参数和返回数据都可;d)api接口响应设置:这个阶段是为了让用户告诉系统如何判断接口返回是正常的,包括两方面:第一是接口的状态码信息,正常值和异常值;第二是接口的返回数据是否正确;比如本例中正常的状态是接口返回状态码是200以及返回的数据是pet的数据结构;4)宠物查询阶段:a)api关联:基于openapi规范的api定义中都会有一个tags分组,通过web界面进行api关联的时候,先根据tags进行分组,然后用户在分组下选择对应的api,特别是当应用
系统的api数量很多时,会先根据tags进行分组查找;选择api之后,再选择使用的请求方式;b)api的参数设置:上一步骤中选择请求方式之后,在web界面上会展示对应的参数列表,在本示例中参数信息是在路径中,且与上一阶段有关联,所以需要进行参数关联设置;c)api的参数关联设置:本示例中id参数是宠物新建接口返回数据中的id字段,只需要将id关联到上一阶段的返回数据的id字段即可;d)api接口响应设置:这个阶段是为了让用户告诉系统如何判断接口返回是正常的,包括两方面:第一是接口的状态码信息,正常值和异常值;第二是接口的返回数据是否正确;比如本例中正常的状态是接口返回状态码是200以及返回的数据是pet的数据结构且不可为空;5)宠物删除阶段:a)api关联:基于openapi规范的api定义中都会有一个tags分组,通过web界面进行api关联的时候,先根据tags进行分组,然后用户在分组下选择对应的api,特别是当应用系统的api数量很多时,会先根据tags进行分组查找;选择api之后,再选择使用的请求方式;b)api的参数设置:上一步骤中选择请求方式之后,在web界面上会展示对应的参数列表,在本示例中参数信息是在路径中,且与宠物新建阶段有关联,所以需要进行参数关联设置;c)api的参数关联设置:本示例中id参数是宠物新建接口返回数据中的id字段,只需要将id关联到新建阶段的返回数据的id字段即可;d)api接口响应设置:这个阶段是为了让用户告诉系统如何判断接口返回是正常的,包括两方面:第一是接口的状态码信息,正常值和异常值;第二是接口的返回数据是否正确;比如本例中正常的状态是接口返回状态码是204以及返回的数据是删除的宠物的id;6)宠物删除校验阶段:a)api关联:基于openapi规范的api定义中都会有一个tags分组,通过web界面进行api关联的时候,先根据tags进行分组,然后用户在分组下选择对应的api,特别是当应用系统的api数量很多时,会先根据tags进行分组查找;选择api之后,再选择使用的请求方式;b)api的参数设置:上一步骤中选择请求方式之后,在web界面上会展示对应的参数列表,在本示例中会展示宠物名称和宠物类别,且参数实在查询路径中,对于不同的参数类型,会有一个默认的填充值,默认值用户可以修改,这样简化了用户的操作流程;c)api的参数关联设置:本示例中name和tag参数是宠物校验接口中的参数,只需要将相关信息关联即可;d)api接口响应设置:这个阶段是为了让用户告诉系统如何判断接口返回是正常的,包括两方面:第一是接口的状态码信息,正常值和异常值;第二是接口的返回数据是否正确;比如本例中正常的状态是接口返回状态码是200以及返回的数据是pet的数据结构,且数据为空;对于复杂的业务逻辑,用户也可以根据自己的实际需求编排出自己的api测试任
务,测试任务执行结束之后,用户可以清晰地看到自己的测试任务运行的流程分支,且直观的展示接口测试任务总执行结果,包括:接口测试任务总执行结果(成功或者失败,失败的原因);接口测试任务的总执行时间(从开始到结束的时间);接口测试任务的每个阶段的执行时间(接口的相应时间);接口测试任务的每个阶段的执行结果(接口返回信息,响应状态等等),以及接口测试的覆盖率。
89.上述实施例中,基于openapi规范的多版本的api管理;正常系统在整个软件生命周期会有各种的api版本管理,并且同一时刻也会有不同版本同时上线的情况下,可以有效地管理不同版本的整个系统的api;基于可视化编排的业务逻辑编排;将主动权交给实际的用户,用户可以根据自己的实际业务逻辑进行编排任务的创建,支持分支流程,串行流程、并行流程;并且支持各种类型的请求方式;可重复执行的api自动化测试流程;日常开发迭代的过程中,api接口指挥发生很小的变化,可以基于上一版本的编排测试任务快速的编排出本版本的api测试任务;api自动化测试结果报表,从多种维度直观地展示用户关注的测试结果,并且可以导出。
90.在本实施例中还提供了一种接口自动化测试系统,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
91.本发明实施例中提供了一种接口自动化测试系统,如图8所示,该系统包括:应用程序接口接入模块801,用于获取客户端上传的接口文档,基于接口文档接入至少一个应用程序接口;其中,接口文档符合开放式应用编程接口规范。
92.测试任务编排模块802,与应用程序接口接入模块801连接,用于基于至少一个应用程序接口对应的业务处理逻辑创建接口测试任务。
93.测试任务执行模块803,与测试任务编排模块802连接,用于执行接口测试任务,生成自动化测试结果报表。
94.在一些可选的实施方式中,应用程序接口接入模块801,包括:分组查找单元,用于提取接口文档中的目标接口信息,根据预设标签分组对目标接口信息进行分组查找。
95.接入单元,用于基于分组查找结果选取至少一个应用程序接口,接入至少一个应用程序接口。
96.在一些可选的实施方式中,测试任务编排模块802,包括:接口关联单元,用于基于接口文档确定至少一个应用程序接口对应的接口请求方式。
97.接口参数设置单元,用于基于至少一个应用程序接口,利用预设参数列表确定接口参数。
98.接口响应设置单元,用于基于接口文档确定至少一个应用程序接口对应的接口状态码信息和接口返回数据。
99.测试任务创建单元,与接口关联单元、接口参数设置单元和接口响应设置单元连接,测试任务创建单元用于基于接口请求方式、接口参数、接口状态码信息和接口返回数据创建接口测试任务。
100.在一些可选的实施方式中,测试任务执行模块803,包括:生成单元,用于将接口请求方式和接口参数输入至少一个应用程序接口,生成当前接口状态码信息和当前接口返回数据;第一比较单元,用于将当前接口状态码信息与预设接口状态码信息进行比较,并对当前接口返回数据中的数据结构进行检测;结束单元,用于当当前接口状态码信息与预设接口状态码信息不相同,且当前接口返回数据中的数据结构为空时,则结束接口测试任务,生成自动化测试结果报表。
101.在一些可选的实施方式中,结束单元,还用于将当前接口状态码信息与预设异常值进行比较,当当前接口状态码信息为预设异常值,且当前接口返回数据中的数据结构为空时,则结束接口测试任务。
102.在一些可选的实施方式中,测试任务执行模块803,还包括:自动化测试结果获取单元,用于当接口测试任务为多阶段测试任务时,则获取当前阶段测试任务对应的自动化测试结果;中断单元,用于当当前阶段测试任务对应的自动化测试结果为异常时,则中断执行接口测试任务,生成中断结果,并将中断结果通过客户端进行显示。
103.在一些可选的实施方式中,测试任务编排模块802,还包括:接口参数关联设置单元1025,与接口响应设置单元1023连接,接口参数关联设置单元1025用于获取上一阶段的字段编号,提取接口返回数据中当前阶段的字段编号,并将当前阶段的字段编号与上一阶段的字段编号进行关联。
104.在一些可选的实施方式中,还包括:触发单元,用于获取客户端上传的用户操作数据或预设周期触发数据,基于用户操作数据或预设周期触发数据执行接口测试任务,生成自动化测试结果报表。
105.在一些可选的实施方式中,还包括:显示单元,用于将自动化测试结果报表发送给客户端进行可视化显示,以便用户基于自动化测试结果报表编排测试结果反馈信息;其中,自动化测试结果报表包括接口测试任务总执行结果、接口测试任务的总执行时间、接口测试任务的每个阶段的执行时间、接口测试任务的每个阶段的执行结果和接口测试的覆盖率。
106.在一些可选的实施方式中,还包括:测试任务管理模块,用于获取用户上传的测试结果反馈信息,基于测试结果反馈信息对接口测试任务进行管理。
107.在一些可选的实施方式中,测试任务管理模块,包括:接口测试任务更新单元,用于基于测试结果反馈信息更新接口测试任务,生成更新后的接口测试任务。
108.接口测试任务删除单元,用于基于测试结果反馈信息删除接口测试任务和自动化测试结果报表。
109.在一些可选的实施方式中,接口测试任务更新单元,还用于执行更新后的接口测试任务,生成接口测试修改执行结果,并将接口测试修改执行结果发送给客户端进行可视化显示。
110.在一些可选的实施方式中,还包括:
编辑单元,用于利用接口文档生成工具生成符合开放式应用编程接口规范的接口文件,将符合开放式应用编程接口规范的接口文件在客户端进行显示;接口文件获取单元,用于获取用户编辑后的符合开放式应用编程接口规范的接口文件,并将用户编辑后的符合开放式应用编程接口规范的接口文件作为接口文档。
111.上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
112.本实施例中的一种接口自动化测试系统是以功能单元的形式来呈现,这里的单元是指asic(application specific integrated circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
113.本发明实施例还提供一种计算机设备,具有上述图8所示的一种接口自动化测试系统。
114.请参阅图9,图9是本发明可选实施例提供的一种计算机设备的结构示意图,如图9所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器10为例。
115.处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
116.其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
117.存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
118.存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
119.该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图9中以通过总线连接为例。
120.输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置
以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
121.本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
122.虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
技术特征:
1.一种接口自动化测试方法,其特征在于,包括:获取客户端上传的接口文档,基于所述接口文档接入至少一个应用程序接口;其中,所述接口文档符合开放式应用编程接口规范;基于所述至少一个应用程序接口对应的业务处理逻辑创建接口测试任务;执行所述接口测试任务,生成自动化测试结果报表。2.根据权利要求1所述的方法,其特征在于,所述获取客户端上传的接口文档,基于所述接口文档接入至少一个应用程序接口,包括:提取所述接口文档中的目标接口信息,根据预设标签分组对所述目标接口信息进行分组查找;基于分组查找结果选取所述至少一个应用程序接口,接入所述至少一个应用程序接口。3.根据权利要求1所述的方法,其特征在于,所述基于所述至少一个应用程序接口对应的业务处理逻辑创建接口测试任务,包括:基于所述接口文档确定所述至少一个应用程序接口对应的接口请求方式;基于所述至少一个应用程序接口,利用预设参数列表确定接口参数;基于所述接口文档确定所述至少一个应用程序接口对应的预设接口状态码信息和预设接口返回数据;基于所述接口请求方式、所述接口参数、所述预设接口状态码信息和所述预设接口返回数据创建所述接口测试任务。4.根据权利要求3所述的方法,其特征在于,所述执行所述接口测试任务,生成自动化测试结果报表,包括:将所述接口请求方式和所述接口参数输入所述至少一个应用程序接口,生成当前接口状态码信息和当前接口返回数据;将所述当前接口状态码信息与所述预设接口状态码信息进行比较,并对所述当前接口返回数据中的数据结构进行检测;当所述当前接口状态码信息与所述预设接口状态码信息不相同,且所述当前接口返回数据中的数据结构为空时,则结束所述接口测试任务,生成所述自动化测试结果报表。5.根据权利要求4所述的方法,其特征在于,所述执行所述接口测试任务,生成自动化测试结果报表,还包括:将所述当前接口状态码信息与预设异常值进行比较,当所述当前接口状态码信息为所述预设异常值,且所述当前接口返回数据中的数据结构为空时,则结束所述接口测试任务。6.根据权利要求5所述的方法,其特征在于,所述执行所述接口测试任务,生成自动化测试结果报表,还包括:当所述接口测试任务为多阶段测试任务时,则获取当前阶段测试任务对应的自动化测试结果;当所述当前阶段测试任务对应的自动化测试结果为异常时,则中断执行所述接口测试任务,生成中断结果,并将中断结果通过客户端进行显示。7.根据权利要求3所述的方法,其特征在于,所述基于所述至少一个应用程序接口对应的业务处理逻辑创建接口测试任务,还包括:
获取上一阶段的字段编号,提取所述接口返回数据中当前阶段的字段编号,并将所述当前阶段的字段编号与所述上一阶段的字段编号进行关联。8.根据权利要求1所述的方法,其特征在于,在所述执行所述接口测试任务,生成自动化测试结果报表之前,还包括:获取所述客户端上传的用户操作数据或预设周期触发数据,基于所述用户操作数据或所述预设周期触发数据执行所述接口测试任务,生成所述自动化测试结果报表。9.根据权利要求1所述的方法,其特征在于,还包括:将所述自动化测试结果报表发送给客户端进行可视化显示,以便用户基于所述自动化测试结果报表编排测试结果反馈信息;其中,所述自动化测试结果报表包括接口测试任务总执行结果、接口测试任务的总执行时间、接口测试任务的每个阶段的执行时间、接口测试任务的每个阶段的执行结果和接口测试的覆盖率。10.根据权利要求9所述的方法,其特征在于,还包括:获取用户上传的所述测试结果反馈信息,基于所述测试结果反馈信息对所述接口测试任务进行管理。11.根据权利要求10所述的方法,其特征在于,所述基于所述测试结果反馈信息对所述接口测试任务进行管理,包括:基于所述测试结果反馈信息更新所述接口测试任务,生成更新后的接口测试任务;基于所述测试结果反馈信息删除所述接口测试任务和所述自动化测试结果报表。12.根据权利要求11所述的方法,其特征在于,所述基于所述测试结果反馈信息对所述接口测试任务进行管理,还包括:执行所述更新后的接口测试任务,生成接口测试修改执行结果,并将所述接口测试修改执行结果发送给客户端进行可视化显示。13.根据权利要求1所述的方法,其特征在于,在所述获取客户端上传的接口文档,基于所述接口文档接入至少一个应用程序接口之前,还包括:利用接口文档生成工具生成符合开放式应用编程接口规范的接口文件,将所述符合开放式应用编程接口规范的接口文件在所述客户端进行显示;获取用户编辑后的符合开放式应用编程接口规范的接口文件,并将所述用户编辑后的符合开放式应用编程接口规范的接口文件作为所述接口文档。14.根据权利要求12所述的方法,其特征在于,所述接口文档生成工具采用swagger工具。15.一种接口自动化测试系统,其特征在于,包括:应用程序接口接入模块,用于获取客户端上传的接口文档,基于所述接口文档接入至少一个应用程序接口;其中,所述接口文档符合开放式应用编程接口规范;测试任务编排模块,与所述应用程序接口接入模块连接,用于基于所述至少一个应用程序接口对应的业务处理逻辑创建接口测试任务;测试任务执行模块,与所述测试任务编排模块连接,用于执行所述接口测试任务,生成自动化测试结果报表。16.根据权利要求15所述的系统,其特征在于,所述测试任务编排模块,包括:接口关联单元,用于基于所述接口文档确定所述至少一个应用程序接口对应的接口请
求方式;接口参数设置单元,用于基于所述至少一个应用程序接口,利用预设参数列表确定接口参数;接口响应设置单元,用于基于所述接口文档确定所述至少一个应用程序接口对应的接口状态码信息和接口返回数据;测试任务创建单元,与所述接口关联单元、所述接口参数设置单元和所述接口响应设置单元连接,用于基于所述接口请求方式、所述接口参数、所述接口状态码信息和所述接口返回数据创建所述接口测试任务。17.根据权利要求15所述的系统,其特征在于,还包括:测试任务管理模块,用于获取用户上传的测试结果反馈信息,基于所述测试结果反馈信息对所述接口测试任务进行管理。18.根据权利要求17所述的系统,其特征在于,所述测试任务管理模块,包括:接口测试任务更新单元,用于基于所述测试结果反馈信息更新所述接口测试任务,生成更新后的接口测试任务;接口测试任务删除单元,用于基于所述测试结果反馈信息删除所述接口测试任务和所述自动化测试结果报表。19.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至14中任一项所述的接口自动化测试方法。20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至14中任一项所述的接口自动化测试方法。
技术总结
本发明涉及自动化测试技术领域,公开了一种接口自动化测试方法、系统、计算机设备及存储介质,一种接口自动化测试方法,包括:获取客户端上传的接口文档,基于接口文档接入至少一个应用程序接口;其中,接口文档符合开放式应用编程接口规范;基于至少一个应用程序接口对应的业务处理逻辑创建接口测试任务;执行接口测试任务,生成自动化测试结果报表。本发明实现了对多版本的API接口的自动化测试,提高了资源的使用率。资源的使用率。资源的使用率。
技术研发人员:张家华
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.07.11
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种眼科手术扩撑器 下一篇:在轨光谱响应函数修正方法、装置、计算机设备
