详细讲解接口自动化攻略

一文详解!接口自动化的关键思路和解决方案 我们这个接口自动化项目的搭建和执行基本都是围绕Apifox提供的功能进行的。和postman相比,用起来的感觉是特别顺手,用例的组织和测试的思维模式基本上也是几个大中厂都在用的,也符合国内测试组的工作流程,程,是工具来适应人,而不是人去适应工具,在理解门槛和思维切换这点上成本大大降低。项目一路构建下来,基本都是功能界面的操作,几乎没有需要脚本的地方,对于不熟悉脚本的测试人员来说,可以用它来短时间快速完成测试任务。 阅读详情

目录

前言:

为什么要做接口自动化

问题在哪里

全靠参数化

接口间参数传递

测试数据参数化

测试断言

测试管理

导入测试用例

接口执行顺序

使用测试数据集

测试参数配置

运行结果&测试报告

测试套件


前言:

接口自动化是提高测试效率和质量的重要手段之一。

为什么要做接口自动化

相对于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]在接口测试中应用频率较高。

运行结果&测试报告

点击[运行]按钮,运行成功会跳转到运行结果页面。还可以导出测试报告。

测试套件

同一个模块的接口用例可以合并为一个测试套件来运行,在测试套件页面,把单个接口用例直接添加进来,其他操作步骤和上文一致。 点击运行可以依次运行添加的用例。

作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即
【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N5K3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=GlobQko2NS5bQu3wyjjJHcr4B9Vib3pp&authKey=2wt3S40B0Wtk%2BmHrtsk9Nj1MLWr7ipmS7cjW3fAszz%2F11J8wOREcgAJDvHBM6TYa&noverify=0&group_code=574737577

 

 

接口自动化如何做?Python接口自动化测试框架实现(源码) 目前主流接口测试方案工具派;Java派;Python派;接口平台框架类型录制回放;数据驱动;行为驱动框架的分层与规划框架分层:表示层:(用户界面)业务逻辑层:(读取数据,配置并组装发送请求)+执行控制层(pytest)数据层:(配置读取/数据读取/数据库连接/其他(log/email)框架规划case : 测试用例目录user :(用户模块) test_user . py : 测试用例 case . py : 用例公共方法data : 数据文件目录。 阅读详情

相关推荐

python接口自动化

使用excel进行用例管理,客户端操作。 一,用例模板 如下图为用例执行结果,用例文件与下图数据一样,只是没有对执行结果着色。 模板说明: 图中第2行红色字体为关键字,不能少,顺序不能乱 第一部分为接口信息 第二部分为需要校验的数据,这一部分又分为3个子项,用不同的颜色标出,分别对应不同的校验方式:固定值校验、SQL校验、校验数据是否入库 第三部分为第二部分的预期结果, 第四部分为响应断言,此一部分模糊匹配 第五部分为数据初始化、数据恢复和动态化参数(如自增ID) 第六部分部分为接口变量,如B接口需要用到A

sudichunxiao817的博客 1万+

接口自动化---进阶

让程序代替人工生产测试数据并判断响应的结果是否符合预期。作用:接口升级(迭代)时,会使用接口自动化测试实现:只测试主要的或被重复使用的接口(功能测试需要所有接口)只需要设计正向数据自动化测试可以被重复执行,多次执行自动化测试时尽量不要使用关联,可以测试某个指定接口自动化测试是对功能测试的补充,接口升级时,可以借助于自动化测试,检查升级前的接口实现是否能够正常运行。1.它是面向http协议的测试框架,只需要去维护一份yaml或json文件就可以使用自动化测试。

weixin_43973848的博客 3583

新手小白接口自动化测试入门全攻略

简单来说,是借助工具或编写代码来自动执行接口测试的过程,它与手工接口测试的最大区别在于效率和可重复性。手工测试需要人工手动发送请求、检查响应,效率较低且容易出错;而接口自动化测试可以快速、准确地批量执行测试用例,在软件开发流程中,能够在代码提交后及时发现接口层面的问题,保障软件不同模块间交互的稳定性和正确性,例如在电商系统中,确保用户下单、支付等接口功能的正常运作,适用于频繁迭代的项目以及需要回归测试的场景。

测试工程师成长之路 1117

接口自动化测试,一看就会

引言 与UI相比,接口一旦研发完成,通常变更或重构的频率和幅度相对较小。因此做接口自动化的性价比更高,通常运用于迭代版本上线前的回归测试中。 手工做接口测试,测试数据和参数都可以由测试人员手动填写和更新。 因此我们在考虑将接口用例实现自动化的时候,主要思路就是在单个接口请求的测试用例已经完成的前提下,我们如何解决以下问题: 业务测试场景会调用不止一个接口,下一个接口的请求依赖于上一个接口的数据,需要解决接口依赖问题 token等鉴权数据有过期时间,多个接口用到该参数,需要解决一次修改

LiamHong_的博客 1万+

软件自动化测试入门攻略

《软件自动化测试入门攻略》一书是作者花费了近两年时间完成的一本大作,专门为入 门、入行人员编写,无论你是初学者,还是想转型、转专业学习软件自动化测试,本书 都适合你。书中充分考虑到新手入门自动化测试的特点,从工具学习入手,包括Unittest、 Pytest、Requests、Selenium、Postman、Appium、JMeter,对于入行者来说,掌握这几 种工具,是从事相关工具的前题,然后以一个真实的项目为例分别介绍了各种工具在单元测试、代码包测试、接口测试、Web UI测试、移动端测试、性能测试中

sea_a_smile的博客 1495

接口自动化测试攻略,必看!

整体讲解下来,感觉Apifox做接口自动化的优势在于流程高度整合低代码贴合国内测试团队的工作模式和思维模式。因此我们从单个接口测试,到业务流程的接口测试,到整个测试套件组装,以及将它们自动化,一路下来,下一步的工作都是可以复用上一步的工作成果的,几乎没有被浪费的工作量。另一个点是,我们用Apifox实现了自动化,但过程中几乎没有需要用到代码的地方,很多地方都被它直接做成了可视化界面,我们选择控件填数据就行了,这对代码基础薄弱的测试人员确实是一大福音。

dad22211的博客 322

新书速览|软件自动化测试入门攻略

析”的自动化测试流程,详细介绍方法论、关键知识与核心技能,这样安排的好处是,学以致用,有的放矢,学完之后,即可直接上手公司项目,本书的最后还介绍了测试项目的容器化部署,这也是目前在测试项目中广泛使用的技术。,对于入行者来说,掌握这几种工具,是从事相关工具的前题,然后以一个真实的项目为例分别介绍了各种工具在单元测试、代码包测试、接口测试、Web UI测试、移动端测试、性能测试中的应用,各测试范例均依照“,又可对有一定测试基础的读者实现自我能力的提升和突破。”的自动化测试流程,详细介绍软件自动化测试的。

quanzhankaifaqua的博客 741

全网最全的Postman接口自动化测试(史实级攻略

当然,如果只有默认的一个执行顺序的话,通常没法满足我们复杂的业务需求,所以 Postman 为我们提供了一个函数:postman.setNextRequest(“填写你要跳转的接口名”) ,支持我们跳转到指定接口继续执行,举个例子:我们在运行完 Request1 接口成功后,不需要再运行 Request2 而是直接跳至 Request3 ,那么我可以在 Request1 接口的 Tests 功能区中执行跳转代码,如:这里需要注意几点:

2301_80119579的博客 1595

Apifox接口批量管理全攻略:高效删除与自动化实践

Apifox接口批量管理与Java自动化实践 本文全面介绍Apifox的批量删除功能及Java自动化实现方案。主要内容包括: Apifox批量删除功能详解: 支持一次性删除多个接口,适用于清理废弃接口、重构项目等场景 操作流程:接口筛选→批量选择→确认删除 注意事项:需管理员权限、删除不可逆、建议先备份 Java自动化实现: 使用OkHttp和Jackson库调用Apifox API 提供认证配置、接口查询筛选和批量删除的完整代码示例 包括获取接口列表、条件筛选和执行删除的核心方法 实践建议: 生产环境需谨

私聊前往站内信:https://i.csdn.net/#/msg/chat/weixin_44976692 1523

清华学长请授接口自动化测试进阶攻略

为什么要做接口自动化 相对于UI自动化而言,接口自动化具有更大的价值。 为了优化转化路径或者提升用户体验,APP/web界面的按钮控件和布局几乎每个版本都会发生一次变化,导致自动化的代码频繁变更,没有起到减少工作量的效果。 而接口一旦研发完成,后期重构/大幅度修改的频率则比较低.因而做接口自动化性价比还是很高的,对于迭代版本旧有功能的回归,beta测试,线上回归都能起到事半功倍的作用。 本文不详细谈单个接口的测试,我们来主要来分析一下基于业务场景的接口自动化怎么做。 问题在哪里 一个业务场景..

weixin_54556126的博客 206

微服务测试难题终结者:MeterSphere Dubbo接口自动化攻略

你是否还在为Dubbo接口测试的繁琐配置而头疼?还在手写大量Java代码来验证服务间调用?本文将带你解锁MeterSphere一站式Dubbo接口测试方案,无需复杂编码即可实现从单接口调试到全链路自动化的完整流程。读完本文你将掌握:Dubbo接口零代码定义技巧、参数智能校验方法、场景化测试编排思路,以及如何将测试结果无缝集成到DevOps流水线。 ## 为什么选择MeterSphere做Dubb...

gitblog_00051的博客 1125

接口自动化的手脚架

为何需要手脚架就我在项目中遇到的情况。愿意写接口文档的开发人员,可谓少之又少。大多数不是沉默以对,就是认为这本身是属于测试的工作,不应该摊到开发身上。但是如果要人工去一个个收集这些接口参数或者维护这些接口的变化,实际还是很难做到的,工作量不小。在团队大部分测试人员的技术没达到的情况下,更是无从开展。于是手脚架的作用就显示出来了。 华山一条路? 其实这个问题,有很多种解法。从技术上来讲说服开发,引

retinder 694

全网最全的Postman接口自动化测试!(菜鸟级攻略

数据格式类似表格,第一行表示对应的变量名,下面 4 行表示 4 组账号密码数据(其中两组为正确数据) ,我们保存一份内容为上述示例数据后缀名为.csv 的文件后,再次开始测试看看效果,我们选择运行次数为 4 (对应 4 组测试数据)、选择对应的 CSV 文件运行后,可以看到我们的结果确实如我们的预期。代码编写相关将在下文进行具体介绍。我们已经了解了,如何让多个接口循环运行多次,但是现在有个问题,按目前这个步骤,每次运行时接口的参数都是一样的,那么就算我们运行个100次、1000次意义也不大。

mashangtt的博客 838

从零开始,轻松学会接口自动化测试:Jenkins下载及安装攻略

当你第一次接触到接口自动化测试时,也许会感到有些束手无策。 毕竟,这项技能需要掌握多种工具和技术,其中Jenkins作为一个流行的CI/CD工具,更是不可或缺的一环。但是,如果你像我一样最初对Jenkins下载及安装流程一无所知,可能会陷入困境。 因此,在本篇文章中,我将带您从零开始学习如何轻松搞定接口自动化测试,并提供一份详细的Jenkins下载及安装攻略。 相信通过阅读本文,你将对接口自动化测试和Jenkins有更深刻的认识,也能够顺利地进行接口自动化测试!

m0_70618214的博客 333
上一篇: 常见的Jmeter参数化方式总结
下一篇: Jmeter简单实现登录测试
自由家
博客等级 码龄3年 168粉丝 328原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值