一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种API接口的自动化测试平台的制作方法

2022-03-19 21:32:30 来源:中国专利 TAG:

一种api接口的自动化测试平台
技术领域
1.本技术涉及测试技术领域,特别涉及一种api(application programming interface,应用程序接口)接口的自动化测试平台。


背景技术:

2.目前,在测试技术领域,自动化测试脚本层出不穷,传统方案采用python中的fromwork、request或者采用java中的testng、junit等框架实现接口脚本,采用jenkins实现脚本集成、定时巡检。然而,上述方案都是单纯的将接口自动化进行编码实现,只是为了完成当下需求,没有考虑后期人员变动,脚本维护、脚本调优、执行速度、新增接口维护、测试环境垃圾数据,没有进行多维度考量,使得接口自动化无法有效合理的支撑业务场景。
3.因此,如何解决上述技术缺陷已成为本领域技术人员亟待解决的技术问题。


技术实现要素:

4.本技术的目的是提供一种api接口的自动化测试平台,能够极大的提升测试效率,降低人工成本,可以支持各种业务场景,并且便于后期维护,具有数据追踪能力。
5.为解决上述技术问题,本技术提供了一种api接口的自动化测试平台,包括:
6.接口模块,用于导入api接口,对所述api接口进行调试,并保存调试通过后的所述api接口;
7.业务场景模块,用于根据业务场景,组装所述接口模块保存的所述api接口,得到执行集;
8.公共模块,用于提供全局公共参数与环境变量;
9.执行模块,用于从所述公共模块读取所述全局公共参数和/或所述环境参数,并执行所述执行集;
10.报告输出模块,用于归档所述执行集的执行结果,输出测试报告。
11.可选的,所述接口模块包括:
12.接口导入子模块,用于导入所述api接口;
13.接口调试子模块,用于对所述api接口进行调试;
14.校验子模块,用于对调试结果进行校验,并当校验成功时,添加表征校验成功的标签,当校验失败时,添加表征校验失败的标签。
15.可选的,所述接口导入子模块利用jar包导入所述api接口。
16.可选的,所述校验子模块包括:
17.反序列化单元,用于将所述测试结果转化为json格式的文本;
18.正则匹配单元,用于对所述文本进行正则匹配,若匹配成功,则校验成功,若匹配失败,则校验失败。
19.可选的,所述接口模块还包括:
20.数据统计子模块,用于进行数据统计。
21.可选的,所述业务场景模块包括:
22.业务场景构建子模块,用于构建业务场景;
23.接口组装子模块,用于根据所述业务场景组装所述接口模块保存的所述api接口得到所述执行集;
24.调试子模块,用于调试所述执行集,且若所述执行集中的一个或多个所述api接口执行未通过,则添加表征不通过的标签,若所述执行集中的所有所述api执行均通过,则添加表征通过的标签。
25.可选的,所述公共模块包括:
26.全局公共参数子模块,用于提供所述全局公共参数;
27.环境变量子模块,用于提供所述环境变量。
28.可选的,所述执行模块包括:
29.定时任务获取子模块,用于获取定时任务;
30.执行集执行子模块,用于根据所述定时任务执行所述执行集。
31.可选的,所述执行集执行子模块包括:
32.串行执行单元,用于串行执行所述执行集;
33.并行执行单元,用于并行执行所述执行集。
34.本技术所提供的api接口的自动化测试平台,包括:接口模块,用于导入api接口,对所述api接口进行调试,并保存调试通过后的所述api接口;业务场景模块,用于根据业务场景,组装所述接口模块保存的所述api接口,得到执行集;公共模块,用于提供全局公共参数与环境变量;执行模块,用于从所述公共模块读取所述全局公共参数和/或所述环境参数,并执行所述执行集;报告输出模块,用于归档所述执行集的执行结果,输出测试报告。
35.可见,较之将接口自动化进行编码实现,完成当下需求的传统技术方案,本技术所提供的api接口的自动化测试平台,多种功能模块自动进行api接口导入、api接口组装、执行集执行以及测试报告输出,能够极大的提升测试效率,降低人工成本。通过api接口组装,可以支持各种业务场景。另外,该自动化测试平台能够降低api接口自动化测试门槛,便于后期维护,具有数据追踪能力。
附图说明
36.为了更清楚地说明本技术实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1为本技术实施例所提供的一种api接口的自动化测试平台的示意图;
38.图2为本技术实施例所提供的一种业务图;
39.图3为本技术实施例所提供的一种业务数据流转示意图;
40.图4为本技术实施例所提供的一种业务流转示意图。
具体实施方式
41.本技术的核心是提供一种api接口的自动化测试平台,能够极大的提升测试效率,
降低人工成本,可以支持各种业务场景,并且便于后期维护,具有数据追踪能力。
42.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
43.请参考图1,图1为本技术实施例所提供的一种api接口的自动化测试平台,参考图1所示,该自动化测试平台主要包括:
44.接口模块10、业务场景模块20、公共模块30、执行模块40以及报告输出模块50。该自动化测试平台旨在利用可视化技术,替代编码过程,由接口模块10、业务场景模块20等模块实现测试相关操作,降低自动化测试门槛。
45.接口模块10主要负责导入api接口,并对导入的所述api接口的业务逻辑进行调试,以及保存调试通过的api接口,供后续的模块使用。在研发连调阶段,接口模块10可以提供mocker,通过mocker调用保存的api接口,可以减少研发成员造数据,减少时间消耗。
46.在一些实施例中,所述接口模块10包括:
47.接口导入子模块,用于导入所述api接口;
48.接口调试子模块,用于对所述api接口进行调试;
49.校验子模块,用于对调试结果进行校验,并当校验成功时,添加表征校验成功的标签,当校验失败时,添加表征校验失败的标签。
50.具体而言,接口导入子模块导入api接口后,由接口调试子模块对导入的api接口进行调试。校验子模块对调试过程中api接口的返回值即实际的调试结果与预期的调试结果进行比较。如果校验成功,即实际的调试结果与预期的调试结果基本一致时,则添加表征校验成功的tag标签。相反,如果校验失败,即实际的调试结果与预期的调试结果存在较大偏差时,则添加表征校验失败的tag标签。
51.其中,在一种具体的实施方式中,所述接口导入子模块利用jar包导入所述api接口。
52.另外,在一种具体的实施方式中,所述校验子模块包括:反序列化单元,用于将所述测试结果转化为json格式的文本;正则匹配单元,用于对所述文本进行正则匹配,若匹配成功,则校验成功,若匹配失败,则校验失败。
53.具体而言,在对导入的api接口进行调试时,首先由反序列化单元对api接口返回的数据进行处理,使api接口返回的数据转化为json格式的文本。转化成功后,由正则匹配单元对文本与预期结果进行正则匹配。如果匹配成功,则校验成功。如果匹配失败,则校验失败。
54.当校验成功时,进一步添加表征校验成功的标签,显示api接口调试通过。当校验失败时,进一步添加表征校验失败的标签,显示api接口调试未通过。
55.在一些实施例中,接口模块10还包括:
56.数据统计子模块,用于进行数据统计。统计的数据可以包括单个项目中api接口的数量,mocker场景数量,执行集数量、执行集执行后通过的数量,执行集执行后失败的数量、停止使用的api接口的数量等。
57.结合图2所示,接口模块10的业务主要包括api接口导入、api接口调试、api接口校
验以及数据统计。
58.业务场景模块20主要是对功能用例层面的业务逻辑进行可视化操作,根据业务场景组装所述接口模块10保存的所述api接口,得到能够达到业务场景的执行集。
59.在一些实施例中,所述业务场景模块20包括:
60.业务场景构建子模块,用于构建业务场景;
61.接口组装子模块,用于根据所述业务场景组装所述接口模块10保存的所述api接口得到所述执行集;
62.调试子模块,用于调试所述执行集,且若所述执行集中的一个或多个所述api接口执行未通过,则添加表征不通过的标签,若所述执行集中的所有所述api执行均通过,则添加表征通过的标签。
63.具体而言,接口组装子模块根据业务场景对接口模块10中保存的api接口进行组装,得到执行集。调试子模块对组装所得执行集进行调试。调试过程中,取上一个api接口的reponse中的返回值,并将此返回值赋值给下一个api接口,做body中的参数,然后进行调试,并在调试成功时入库。如果所述执行集中的一个或多个所述api接口执行未通过,则对所述业务场景添加上表征不通过的tag标签,显示不通过。若所述执行集中的所有所述api执行均通过,则对所述业务场景添加上表征通过的tag标签,显示通过。
64.查看api接口的请求头、请求体时可以手动进行调试,在场景阶段可以为后续团队实现数据银行,在维护测试环境数据治理方向,业务场景模块20提供了模块化的前置脚本设计和后置脚本设计,避免测试环境产生垃圾数据。
65.结合图2所示,业务场景模块20的业务主要包括业务场景新建、接口组合以及调试。
66.公共模块30用于提供全局公共参数与环境变量。整个系统变量配置都是从公共模块30取配置数据,通过配置可以随时修改数据,由此可以降低后期维护成本。
67.其中,在一些实施方式中,公共模块30包括:
68.全局公共参数子模块,用于提供所述全局公共参数;
69.环境变量子模块,用于提供所述环境变量。
70.公共模块30负责执行集在执行的时候对环境进行区分,即把请求域名区分开。例如,进行开发提测dev环境、test环境、prd环境、online环境区分;为了提升脚本执行速度,会在业务上进行解偶。例如,每次都要使用token,在执行过程中,没有必要每次都操作login接口获取token值,所以会把token值做为全局变量进行提取,放在公共模块30,以便后续接口进行取值直接使用。
71.执行模块40用于从所述公共模块30读取所述全局公共参数和/或与环境参数,并执行所述执行集。在执行集执行前,先选择脚本运行环境,执行模块40中环境列表中的数据,均来自于公共模块30下的环境变量。
72.在一些实施例中,所述执行模块40包括:
73.定时任务获取子模块,用于获取定时任务;
74.执行集执行子模块,用于根据所述定时任务执行所述执行集。
75.在定时任务获取子模块获取定时任务的基础上,执行集执行子模块定时执行所生成的执行集。
76.其中,在一种具体的实施方式中,所述执行集执行子模块包括:
77.串行执行单元,用于串行执行所述执行集;
78.并行执行单元,用于并行执行所述执行集。
79.具体而言,为了提高脚本的执行速度,系统内会设置两种执行方式,其中一种为“串行”的执行方式,另一种是“并行”的执行方式。串行采用的是单线程模式,并行采用的是多线程执行的方式,每个业务场景启用一个线程,以此来提高脚本执行速度;执行完成后,整个执行集的结果展示在列表中。
80.报告输出模块50负责归档所述执行集的执行结果,输出测试报告。每次执行所生成的执行集而生成执行数据入库后,报告输出模块50获取执行结果,自动生成测试报告。测试报告可以包括历史测试报告与当前测试报告。
81.基于上述实施例所描述的api接口的自动化测试平台,参考图3所示的业务数据流转示意图以及图4所示的业务流转示意图,一种自动化测试的流程可以如下:
82.客户端向查询api接口发起认证请求,校验用户权限;
83.接口模块10导入认证通过后,在接口模块10,通过bootstrap fileinput组件上传jar包,读取jar包后入库,生成接口api、headers、body等参数;通过接口调试通过后入库保存,为后续接口测试以及场景接口调用提供数据;
84.业务场景模块20新建业务场景,通过调用接口模块10的数据,进行api接口组合,并在调试成功后入库;
85.为了降低后期维护成本,设置有公共模块30,包括全局公共参数子模块与环境变量子模块。整个系统变量配置都是从公共模块30取配置数据,通过配置可以随时修改数据。
86.执行模块40根据业务新建执行集,执行集获取场景模块数据,整合用例,对业务进行拆分。通过配置定时任务驱动执行,达到集成自动化,执行集执行完成后自动通过调用ndp生成执行数据即执行结果。
87.在每次执行集生成执行数据入库后,报告输出模块50获取执行数据,生成测试报告。
88.本技术所提供技术方案采用前后端分离技术,后端使用spring boot框架,前端使用vue.js框架,中间键使用mysql、kafka基础建设使用docker、kubernetes。
89.综上所述,本技术所提供的api接口的自动化测试平台,包括:接口模块,用于导入api接口,对所述api接口进行调试,并保存调试通过后的所述api接口;业务场景模块,用于根据业务场景,组装所述接口模块保存的所述api接口,得到执行集;公共模块,用于提供全局公共参数与环境变量;执行模块,用于从所述公共模块读取所述全局公共参数和/或所述环境参数,并执行所述执行集;报告输出模块,用于归档所述执行集的执行结果,输出测试报告。可见,较之将接口自动化进行编码实现,完成当下需求的传统技术方案,本技术所提供的api接口的自动化测试平台,多种功能模块自动进行api接口导入、api接口组装、执行集执行以及测试报告输出,能够极大的提升测试效率,降低人工成本。通过api接口组装,可以支持各种业务场景。另外,该自动化测试平台能够降低api接口自动化测试门槛,便于后期维护,具有数据追踪能力。
90.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设
备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
91.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
92.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
93.以上对本技术所提供的api接口的自动化测试平台进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献