网站原型图设计,南京网页设计照片,注册深圳公司,html的所有代码大全为什么要做接口自动化
相对于UI自动化而言#xff0c;接口自动化具有更大的价值。
为了优化转化路径或者提升用户体验#xff0c;APP/web界面的按钮控件和布局几乎每个版本都会发生一次变化#xff0c;导致自动化的代码频繁变更#xff0c;没有起到减少工作量的效果。
而…为什么要做接口自动化
相对于UI自动化而言接口自动化具有更大的价值。
为了优化转化路径或者提升用户体验APP/web界面的按钮控件和布局几乎每个版本都会发生一次变化导致自动化的代码频繁变更没有起到减少工作量的效果。
而接口一旦研发完成后期重构/大幅度修改的频率则比较低.因而做接口自动化性价比还是很高的对于迭代版本旧有功能的回归beta测试线上回归都能起到事半功倍的作用。
本文不详细谈单个接口的测试我们来主要来分析一下基于业务场景的接口自动化怎么做。
问题在哪里
一个业务场景通常需要多个接口才能走完一个完整的业务流程其中每个接口完成一个特定的功能步骤。例如微信的添加好友流程 每个操作步骤里都至少有一条接口请求。那么我们把这个流程以接口请求的方式表现出来如下 仅作示意并非实际
我们想要完成这条接口用例需要的操作有哪些
1)输入微信id发出查询请求 2)将获取到的用户信息传递给“添加好友接口”发起添加好友请求 3将申请好友的用户信息传给下发好友申请接口 4将同意信息传给成为好友消息接口 5将拒绝信息传给拒绝消息接口概括起来有几个需要解决的问题测试数据传入接口依赖接口间参数传递。这也是接口测试自动化中会遇到的普遍问题解决方案可以迁移到各类业务中去。接下来笔者将针对上述问题提出一些具体的解决方案 工具介绍本文所用接口测试工具 Apifox Windows版 Postman作为接口测试工具在业界的地位毋庸置疑但Apifox作为一款本土的接口调试、接口测试测试管理软件优势在于符合国内互联网的测试模式和工作流程,用起来更顺手些。 大部分功能均能由可视化界面控件操作完成对于不懂代码、不会写脚本的测试人员基本也可以无痛顺利地完成接口自动化的任务。 因此本文讲解自动化的时候会直接使用Apifox大家如果需要跟着文章讲解学习的可以先去官网www.apifox.cn 下载注册一个软件免费。 全靠参数化
手工测试的优点在于灵活可控自动化则依赖我们预先设置好的步骤完成功能
接口间参数传递
像上述微信好友请求的例子涉及到多个接口间的参数传递下一个接口对依赖于上一个接口响应中的某个字段需要将它能准确提取并传递过来。
解决方案提取上一个接口响应数据--参数化--下一个接口调用该参数。 这样无论接口运行多少次传递的参数怎么变化下个接口都能动态提取并调用。Apifox上操作步骤如下 1 在要提取参数的接口的后置步骤里使用json path表达式提取目标响应字段并命名设置变量类型 2该字段会保存到项目设置中同一环境同一项目里的其他接口具有调用权限。 运行一下上图中的接口可以看到该字段已经被提取到变量设置中了。 3在需要调用该变量作为参数的接口请求参数里以参数形式填入到对应空格中 看一下结果发送该post请求在接口运行实际请求tab请求URL中可以看到该参数已被成功调用 测试数据参数化 使用变量某些测试数据如登陆账号密码用户信息等会在不同的接口被反复调用这个时候可以将该测试数据参数化与接口响应参数不同的是响应参数是获取自上一个接口的而测试参数是我们直接写进变量设置里的。 在Apifox里的操作步骤如下 1)在全局变量中设置好测试数据变量名和值 2) 直接在接口请求参数中调用该测试数据 使用测试数据集当我们需要上传不同的测试数据以校验响应返回数据是否存在异常时一个接口参数需要多个测试数据。这个我们放到后面测试管理的部分谈。
测试断言
既然是自动化测试我们无法一一人工去校验返回的response是否符合我们的要求因此需要用脚本/功能设置替人力完成这些工作。 我们主要校验1接口请求是否成功即返回的code是否符合预期 2返回的接口数据里的关键字段、关键值是否符合预期
在Apifox上可以直接通过界面操作设置基本的断言操作 在接口管理-后置操作 里选择断言 请求发出之后如果返回值符合预期则在返回处会提示断言成功失败则给予错误提示。 如果需要灵活设置断言可以使用apifox里的后置操作中的自定义脚本功能它也提供了代码模板功能测试人员只需修改期待值即可。 对于单个接口自动化的预备工作即将输入数据和接口间的参数传递都参数化、不要写死,方面后期数据修改和维护以及使用测试断言来代替人工检查接口测试结果。
完成了这部分工作之后我们接下来就可以把不同的接口组织到一条接口自动化用例里完成一个业务场景的测试。
接下来的工作我们在Apifox的测试管理tab完成。
测试管理
导入测试用例
接口用例需要在测试单个接口的时候生成这是在导入测试用例之前需要完成的准备工作。在单个接口测试的时候选择保存为用例即可生成测试用例。
在测试管理tab新建测试用例导入接口用例选择该测试场景所需用例默认选择绑定确定导入 导入完毕后的用例如下一个接口请求就是一个操作步骤若干个步骤共同完成一个场景的测试。 接口执行顺序
在上述用例中接口请求的步骤是从上而下的如果想要调整接口的运行顺序直接拖动接口到目标位置即可。 如果需要增加其他接口请求则选择添加步骤。 使用测试数据集
上文测试数据参数化那一节有提到过一个接口需要多条测试数据的事情拿到这里讲主要是功能模块刚好在这边方便些。 在测试管理用例的右侧可以看到测试数据这个功能 点击管理数据可以进入测试数据tab管理添加外部测试数据。 接着在测试步骤设置 页面将测试数据修改为测试数据集的变量名称 点击下方的运行按钮时会弹出界面让测试人员选择要用的测试数据集每个测试数据集都会当成一条测试用例来运行。 对应的会生成多个测试结果 除了能够直接填外也可以导入外部的CSV文件更加适合大数据量的测试场景。 测试参数配置
在用例的右侧有运行环境和保存变量变化值等配置可以根据项目的实际需要选用。 其中[间隔停顿]和[使用全局cookie]在接口测试中应用频率较高。 运行结果测试报告
点击[运行]按钮运行成功会跳转到运行结果页面。还可以导出测试报告。 测试套件
同一个模块的接口用例可以合并为一个测试套件来运行在测试套件页面把单个接口用例直接添加进来其他操作步骤和上文一致。 点击运行可以依次运行添加的用例。 总结
整体讲解下来感觉Apifox做接口自动化的优势在于流程高度整合、低代码、贴合国内测试团队的工作模式和思维模式。
因此我们从单个接口测试到业务流程的接口测试到整个测试套件组装以及将它们自动化一路下来下一步的工作都是可以复用上一步的工作成果的几乎没有被浪费的工作量。
另一个点是我们用Apifox实现了自动化但过程中几乎没有需要用到代码的地方很多地方都被它直接做成了可视化界面我们选择控件填数据就行了这对代码基础薄弱的测试人员确实是一大福音。 【整整200集】超超超详细的Python接口自动化测试进阶教程合集真实模拟企业项目实战