自动化接口管理平台(接口自动化平台实现原理)

网友投稿 454 2023-03-04


本篇文章给大家谈谈自动化接口管理平台,以及接口自动化平台实现原理对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享自动化接口管理平台的知识,其中也会对接口自动化平台实现原理进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

分布式接口自动化测试平台

基于之前开发过自动化框架,在接口自动化测试平台上做了全新的探索和设计,在落地性,效益性,业务性等方面做了进一步思考和优化。

从系统需求设计 + 技术框架选型 + 数据表结构设计 + 后端开发 + 前端开发 + 镜像打包部署 + docker 容器化上线,都由我一个人独立设计开发完成的,挑战很大,但是能顺利完成,也算是给自己 2020 年一个满意的答卷,当然更满意的其实是打开了自动化测试平台新世界的大门。

1、接口管理,添加和维护功能。

2、支持用例跳过功能、任务消息提醒(针对当前任务公司所有成员)

3、更丰富的用例断言类型。

4、支持定时任务,在任务管理中分布式执行我的所有接口用例,目前支持crontab表达式和interval间隔时间两种方式调度定时任务。

5、更漂亮、详细的报告展示,快速发现失败接口用例。

6、成员管理,前后端都引用了角色权限管理;前端页面无法访问成员管理、发布成员消息通知等,后端:editor角色无法进行新增、修改、删除功能操作

7、新增业务测试功能 - 多接口实现一个业务流程

8、新增用例前置功能(用例后置功能目前使用上并不灵活,后续解决这个问题,并且更新sql校验功能)

9、用例逻辑处理内置函数功能

10、前端兼容Chrome浏览器、手机端部分页面做了适配(其他浏览器暂未测试)

整个平台后端使用 Python 开发,前端使用 vue 框架,采用前后端分离。

任务结果查看

断言功能

用例前置后置调试功能

报告详情

yapi平台--接口自动化实施

1--分组
2--项目
3--接口
4--测试集合

鼠标选中测试合集,右侧四个按钮分别为克隆合集,导入接口,编辑合集,删除合集

勾选测试的接口并点击【确定】,所选择的接口即显示在测试集合中,然后可编辑接口测试用例

如上图,编辑用例可以进行用例名称,用例执行环境,接口参数及请求数据的填充,编辑完成后点击保存,则用例保存成功

点击“发送”,可以以当前填写的请求数据对此接口进行请求。

对用例执行结果进行断言,首先需要开启。
yapi提供快捷的断言方式,点击即可生成对应的断言。

以上断言方式可以自行根据需要进行编辑和优化,基本可以满足我们日常测试所用。

如果接口数据固定写死,只需要正常填写保存即可

{{global.变量名}}

如果连续的测试场景,后面的接口需要用到前面接口请求的数据或者返回的数据,这种场景需要进行接口间的参数传递
Yapi接口传递格式:

点击测试集合,展示的测试用例列表中,会展示key

通过接口请求或者抓包获取到请求数据和返回数据

对数据进行分析,找出自己所要的字段,通过层级关系获取到表达式
例:假设key为100返回的body

假设我们想要获取到 "plate_number"的值,那么写法就为:$.100.body.data.orders[0].plate_number
层级关系用.表示,列表取对应数据用[n]下标指定。

yaip也提供了可视化的界面操作,实现接口参数传递
1、PATH PARAMETERS或者QUERY PARAMETERS
点击参数后面的编辑按钮,弹出高级参数设置弹框:
选中具体字段后生成表达式,点击插入即可填入

2、请求BODY
与PARAMETERS一样的操作,但是表达式必须要用双引号包裹起来

tips:
如果想要通过可视化的高级参数设置来进行参数传递,气体条件需要在接口中将完整的返回body导入,这样才能在高级参数中找到对应的字段
路径:接口--编辑--返回数据设置--导入json--?保存

如果接口中我们需要动态生成一些随机参数数,可以使用mock占位符
操作与接口参数传递一致,唤起高级参数设置弹框后选择mock数据

常用占位符:

占位符更多相关内容可参考: 《yapi中使用json-schema mock数据》 .

用例执行有两种方式,一种是直接执行,另外一种是服务端执行,调试时可以用直接执行,如果需要集成或者需要生成测试报告,选择服务端执行

用例编写完成后,点击测试集,右侧中点击【开始测试】即可运行所有测试用例:
路径如图所示

运行完成后通过的用例会有绿色标识,未通过的用例会有黄色或红色标识。
点击单个用例右侧的测试报告,会展示完整的执行请求,response以及断言结果

服务端执行,项目路径直接执行一致,只不过选择服务端测试即可

配置根据自己需要填写:

如果一个用例集合中每个用例的断言和接口请求状态码可以设置为一样时,我们可以在通用规则配置中整体设置

自动化控制系统的标准接口有哪些?

接口自动化工具有以下:
1、QTP。是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。
2、WinRunner。是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。
3、AdventNetQEngine。是一个应用广泛且独立于平台的自动化软件测试工具,可用于Web功能测试、web性能测试、Java应用功能测试、Java API测试、SOAP测试、回归测试和Java应用性能测试。
自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。
自动化技术广泛用于工业、农业、军事、科学研究、交通运输、商业、医疗、服务和家庭等方面。采用自动化技术不仅可以把人从繁重的体力劳动、部分脑力劳动以及恶劣、危险的工作环境中解放出来,而且能扩展人的器官功能,极大地提高劳动生产率,增强人类认识世界和改造世界的能力。

接口RAP开源吗?

随着 Web 技术的发展,前后端分离构架变的越来越流行。前后端分离使后端专注于数据处理和定义前端所需要的接口,前端负责数据的展现和交互,大大细化了开发者的职责,提高了开发效率,但与此同时也带来了一些问题:

对于前端工程师,后端提供的接口文档,大多是不规范的,有使用 wiki 的,有 word 文档的,甚至还有用即时聊天软件沟通的,后端接口对于前端就像一个黑盒子,经常遇到问题是接口因未知原因增加参数了,参数名变了,参数被删除了。对于后端工程师,接口对接时总是需要写冗杂繁琐的文档,需要大量时间去维护接口文档。

前端开发的功能在后端功能还没完成前,因为前端的功能依赖于后端的数据,导致工作无法顺利展开。为了解决这个问题,有些前端工程师在代码注入 json,还有后端工程师临时搭建一套测试数据服务器,这种情况下势必会影响工作效率和代码质量,也不能及时进行字段的更新。

接口数据正确性无法得到保证。前端调用后端的接口数据渲染到 视图,数据一旦出错,将会导致视图和交互也出现问题,保证后端接口数据正确性变的愈来愈重要。接口自动化测试就是用来解决这个问题,但传统的接口测试框架使用成本很高,很多团队采用肉眼比对方式,效率很低。

相关产品调研

我们迫切希望有一款产品能够满足我们的诉求,于是开始寻找市面上类似产品,经过一段时间的分析,最终我们找到了几个比较有代表性的产品 Rap,Nei,Easy-Mock。同时我们按照自己的诉求列出了一些关键的特征:

请点击输入图片描述

Nei 是网易前端事业部的产品,在这些产品中算是做得比较好的, nei 是专注做 saas 服务这块,没有开源版本。对于去哪儿内部,肯定不会把公司机密的接口数据放到第三方平台。

Rap 是阿里妈妈 MUX 团队2013年出的一款产品,从时间上看是同类产品中最早的。Rap 是后端工程师基于 java 开发的,如果想定制部分功能,还需要学习 java,而我们部门大家对 java 都不熟悉。另一方面 Rap 没有接口测试功能,而后端使用其他工具(postman, restlet)测试接口,将导致不能及时更新接口文档。

Easy-mock 是大搜车无线团队出的一款产品,Easy-mock 定位是接口数据的模拟,解决前端依赖后端接口数据的问题,在同类产品中 mock 服务做得比较好。Easy-mock 专注于前端数据的模拟,但无法解决去哪儿现有的问题。

Nei,Rap 接口管理平台共同存在的问题是不易维护接口返回数据。笔者曾跟一个使用过 Rap 的后端工程师聊过,他说每次定义后端接口返回数据字段,好几个百个字段需要更新很长时间。Nei,Rap 是基于维护一个 json-schema 方式定义后端返回数据结构,我们假设某个接口有100个字段,如果基于 json-shema 那么就要维护差不多 600 多左右字段的更新。这么大工作量的,很可能导致后端工程师根本没有动力去维护。

比较遗憾的是,这几款优秀的产品,都缺失了一些我们在意的关键特征。我们可能需要做比较大的改动才能够基本满足自己的需求,这个工作量很有可能会超过重新开发一次。所以我们开始自主研发一个全新的接口管理平台,我们希望它能够提供接口文档管理,接口数据模拟(Mock),接口调试,自动化测试等功能,让前后端接口相关的工作进行的更加高效。这就是 YApi 接口管理平台斐然由来,下面简要聊聊 YApi 是如何实现上述这些特征的。

YApi 解决方案

1. 共同维护一份接口定义,连接前后端

大家看下图,在后端开发接口过程中,接口开发和测试接口这是必不可少的环节,但文档因为没有跟接口开发和测试联系到一起,被孤立。后端要维护对于他们冗杂繁琐的文档,是件收益很低的事情。没有人喜欢做收益低的事情,所以最终的解决办法就是要提高收益。下面详细说明解决方案。

请点击输入图片描述

在接口开发过程中,后端通常都会使用 postman 等类似的工具测试接口,而测试接口是在开发过程中一个必要的过程。假如参数有改动,大家肯定会在 postman 等工具上更新字段和测试接口。由此可以联想到, 如果能有一款工具既可用来做测试接口,又能作为接口文档工具,将接口文档和接口测试连接到一起,不就解决了此问题。YApi 解决方案是将接口文档和测试通过单一数据源连接到一起,如果有改动,因为改的是单一的数据源,就不会出现更新滞后和不及时问题。

2. 前端 Mock Server 方案

数据 Mock 服务在开发前期是非常头疼的一个问题。大多数情况下,接口请求参数和返回数据都是后端规定的,在后端接口没有完成之前,接口对于前端就是一个黑洞,可能最初对接口的定义跟实际后端做出的接口会有非常大的不同。这个时候就需要有一个工具,不仅能模拟真实接口的情况,还能关联接口文档,在后端开发过程中,可以随时调整接口定义,并通知给前端开发者改动信息。

在 YApi 平台,前后端只要维护接口定义的响应数据,就可以生成需要的模拟数据,下面这段代码定义了生成数据模板:

{
"errcode": 0,
"errmsg": "@string",
"data": {
"type":"@pick(1,2,3)",
"list|1-10": [{
"uid": "@id",
"username": "@name"
}]
}
}

可生成如下的模拟数据:

{
"errcode": 0,
"errmsg": "^*!SF)R",
"data": {
"type": 2,
"list": [
{
"uid": "370000200707276255",
"username": "Ruth Clark"
},
{
"uid": "650000200211185728",
"username": "Anthony Martin"
},
{
"uid": "370000199201143855",
"username": "Laura Rodriguez"
},
{
"uid": "610000198704072775",
"username": "Anthony Perez"
}
]
}
}

以往的数据 mock 方案难免会影响项目源码,yapi 使用了服务器代理的方案,只需要在你的开发机做下服务器反向代理配置,不用修改项目一行源代码,即可获取到所有的 mock 数据。

基础的 Mock 工具已经能满足大部分的需求了,但有些复杂场景是无法实现的。例如:当我做一个数据列表页面,需要测试某个字段在各种长度下的 ui 表现,还有当数据为空时的 ui 表现。YApi 提供了期望和自定义脚本的功能。 本文主要介绍自定义脚本功能,期望功能可参考 yapi 平台文档。

自定义脚本可根据请求的参数,cookie 信息,使用 js 脚本自定义返回的数据。我们假设有个场景,我希望通过 cookie "_type" 控制列表页面数据显示,假设 _type 是 error,那么列表显示异常错误信息;假设 _type 是 empty ,列表显示为空。可使用下面代码实现:

if(cookie._type == 'error'){
   mockJson.errcode = 400;}if(cookie._type == 'empty'){
   mockJson.data.list = [];}

3.自动化测试

接口开发完成后,后续的迭代是非常多的,每次对源码的修改,都需要大量的测试才能确保接口是否正确。人工判断肯定是不好的,最好的办法是做成自动化,但自动化测试又是一件成本非常高的事情,需要后端人员和QA人员学习相关的框架,和写大量的代码。YApi 简化了这一个过程,基于一个可视化界面,就算不懂程序开发,只需配置相关的参数和断言语句,就能实现自动化测试,非常的易用。

除了基本的功能外,YApi 还提供了强大的 pre-script 和可视化表达式功能,pre-script 包括请求参数处理脚本和响应数据处理脚本两部分。通过自定义 js 脚本方式改变请求的参数和返回的 response 数据。他的使用场景如下:

接口请求参数需要加密及返回 response 解密

接口请求参数需要添加计算 token

可视化表达主要是为了方便用户生成自动化测试所用到的参数,通过一个树形选择性,快速引用所依赖的参数值。 在所有的需要测试的接口配置完成后,点击开始测试,就会按照指定的顺序依次测试所有接口,测试完成后,可查看测试报告。

4.插件机制

YApi 最强大的一点莫过于他的插件机制,我们去哪儿各个业务线有不同的需求,通过 YApi 预留的钩子,开发不同的插件解决,比如我们现有的 qsso 登录,swagger 数据导入就是通过插件机制实现的,我们团队最近还在跟业务部门讨论使用插件实现压力测试功能等。总得来说,YApi基于插件机制,既满足了产品需求的多样性,又保证了内核足够易用和简洁。

5. 开源和易部署

为了帮助更多开发者和提升大家的工作效率,YApi 不仅开源到 github,还提供了一个 cli 工具方便广大开发者部署。使用 yapi-cli 提供的可视化部署方案,即便你不懂任何 nodejs、mongodb 的知识,也能轻松一键部署。

后记

YApi 已在去哪儿大面积使用,对 200+ 项目接口进行管理,每周有上万次 mock 请求。在开源以后,越来越多的公司和团队使用 YApi, github star 数已经上升到 1.3k了。YApi 在未来还将继续专注于接口管理方面的功能,让 YApi 成为各位开发者的好帮手。

关于自动化接口管理平台和接口自动化平台实现原理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 自动化接口管理平台的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于接口自动化平台实现原理、自动化接口管理平台的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:api接口安全设计(api接口安全措施)
下一篇:详解webpack3编译兼容IE8的正确姿势
相关文章

 发表评论

暂时没有评论,来抢沙发吧~