Apifox:API 接口自动化测试完全指南

这篇具有很好参考价值的文章主要介绍了Apifox:API 接口自动化测试完全指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Apifox:API 接口自动化测试完全指南

1. 前言

在开始前大家可以先阅读:深入了解自动化测试:什么是自动化测试及其作用?

大家好,这是一篇关于 Apifox 的接口自动化测试教程。相信你已经对 Apifox 有所了解:“集 API 文档、API 调试、API Mock、API 自动化测试,更先进的 API 设计/开发/测试工具”。

笔者是后端开发,因此这篇教程关注的是 API 自动化测试,如果你也是后端开发,正苦于没有好的方式测试接口,对保证线上接口稳定性没有信心,那么这篇文章就是为你准备的,如果你学会了 Apifox 接口自动化测试,它几乎是一个会陪伴你整个职业生涯中的一件称心应手的兵器。

接口测试可不是简单的请求一两个接口再检查一下响应结果那么简单,没有贴近业务场景的测试意义不大,但完全模拟业务场景,一比一真实的去还原用户操作流程的测试势必会很复杂,如 接口需要登陆后才能操作怎么办?一个接口依赖上一个接口请求返回的数据怎么办?后端对请求有签名验证怎么办?后端任务是异步处理的怎么办?...

不要担心,既然是完全指南,这些问题我们就都会讲到,Apifox 强大的能力可以解决这些问题,下面我们会用真实的案例,逐步讲解覆盖到这些所有的场景。建议大家打开 autotest.apifox.cn 这个项目,一边学习里面的公共脚本(公共脚本、测试套件等都打包放在 百度网盘),一边跟着练习。

2. 接口自动鉴权

知识点:环境变量、公共脚本、pm.sendRequest脚本发送请求

我们通过一个需要登录才能访问的后台新闻列表接口,来演示接口自动登录鉴权。

默认情况下访问该接口提示需要登录:

Apifox:API 接口自动化测试完全指南

如果要正常访问该接口的数据,需要在 header 中提供 AdminToken: token 头,这是一个常见的需要 JWT 登录认证接口。

很自然的我们想到,如果自动请求登录接口获取 token 值,然后在每次请求前自动带上这个 AdminToken 头不就行了吗,没错就是这样简单,伪代码如下:

完整的代码见 「公共脚本」admin: login and Auth

Apifox:API 接口自动化测试完全指南

这里我们从登录接口获取 token 后,将其缓存到本地的环境变量中,这样就不必每次都请求登录了。

现在我们已经完成了 请求登录接口获取 token,并设置到 请求头中的功能,然后我们再把此 公共脚本 应用到 新闻列表的接口上,实现在 请求新闻列表接口 前自动完成 “登录”。

后台有很多接口访问都需要登录,如果一个个地去设置 前置脚本 就太麻烦了,所以这里我们直接在 admin 后端接口的分组目录上设置 前置操作 公共脚本admin: login and Auth,这样整个 admin 下的全部接口都能自动登录了:

Apifox:API 接口自动化测试完全指南

我们来验证一下:

Apifox:API 接口自动化测试完全指南

可以看到返回了数据,说明自动登录成功了,我们在 控制台输出 中可以看到请求了登录接口,在实际请求中 可以看到 AdminToken: token 头。

在这个例子中我们是将 用于后台登录的 用户名 和 密码 提前配置到了 环境变量中,然后利用脚本 pm.sendRequest 请求登录接口获取 token,并设置 请求头,这样就实现了接口的自动登录。

关于变量的优先级 和 脚本的执行时机,如图所示:

Apifox:API 接口自动化测试完全指南

Apifox:API 接口自动化测试完全指南

3. 接口自动加签

知识点:参数注入、内置类库

有一些对安全性要求较高的接口可能会有对接口请求进行验签的机制,具体是 接口请求的数据 会额外多一个 sign 字段,它的值是可以是 md5(k1=v1&k2=v2...),这样就确保了请求数据不会被篡改,但是这给我们测试带来了麻烦,我们如何每次自动生成 sign 参数呢,不用担心,这对 Apifox 来说不在话下,利用 Apifox 强大的脚本功能我们甚至能够调用外部任何语言的脚本。

知道了请求加签的原理,那么实现就很容易了,无非是 在请求前 自动算出 sign ,并注入到请求参数中去,下面是伪代码:

完整的代码见 「公共脚本」parkinglot:client: request sign and common params

Apifox:API 接口自动化测试完全指南

然后 把 自动加签的公共脚本设置到 client 停车场设备端 📟 分组 的前置脚本中,这样其下所有接口请求时都有 sign 参数了。

注:这里简化了签名算法, md5(k1=v1&k2=v2..., key) 其实签名算法还有一个关键的 key参数 ,不过删减这部分内容并不影响我们这里对接口自动加签的讲解。为了力求简洁,只关注最核心的东西,文章都是使用伪代码的形式,完整代码请读者自行查看项目中的公共脚本。

4. 测试用例

知识点:接口用例(顺序)、流程控制(条件、循环、等待)、测试数据、断言

在掌握了 Apifox 的强大脚本能力后,你几乎能够解决任何鉴权、加签等问题了,接下来我们开始搭建完整的测试流程,以便真实完整的模拟正常使用时的业务测试场景

我假定你已经熟悉 Apifox 中 接口用例、环境变量、变量提取、断言 等基础概念,如果不熟悉,那建议你先快速地看一下官方文档 :Apifox 帮助文档。

我们先看一个简单的场景测试:

Apifox:API 接口自动化测试完全指南

我们运行测试看一下:

Apifox:API 接口自动化测试完全指南

Apifox:API 接口自动化测试完全指南

我们在后台看一下新闻分类和新闻确实创建成功了。

再看看一个稍微复杂一点的测试场景,一个异步任务处理的场景测试:

Apifox:API 接口自动化测试完全指南

相信看到这里已经不需要我解释什么了,如你所见,Apifox 的测试用例的流程编排功能非常强大,你能 DIY 出任何复杂的场景。更多用法见文档:测试流程控制 | Apifox 帮助文档

5. Apifox CLI

知识点:命令行

如果每次测试都需要我们手动点击 运行按钮 就太不方便了,没错,Apifox 当然也考虑到了这点,Apifox CLI 就可以帮助我们实现自动化的测试。

Apifox:API 接口自动化测试完全指南

点击持续集成的按钮就能够生成 命令行代码:

将这行 shell 命令复制到任意地方执行即可实时运行测试用例/套件。

6. 持续集成

知识点:自动化测试

我们先在服务器上安装 apifox-cli

然后在发布工具中集成 测试命令即可:

Apifox:API 接口自动化测试完全指南

为了通用性,我们使用 php 脚本 将 apifox run ... 命令进行了封装,你理解成执行的是 apifox run ...   命令即可。

这里我们用的是 Spug 发布工具,类似 Jenkins,请根据实际情况配置。

7. 测试报告

知识点:报告解析、钉钉通知

我们在 Apifox.php 脚本执行测试命令,并解析测试生成的 json 文件,然后将结果拼装发送到钉钉群,如果有失败会 at 相应的开发人员:

Apifox:API 接口自动化测试完全指南

8. 附录

上面提到的公共脚本、测试套件等都打包放在这里了:百度网盘,需要的话可以拿去参考,强烈建议直接打开项目查看功能脚本,测试用例进行参考学习。

作者:xika文章来源地址https://www.toymoban.com/news/detail-460859.html

到了这里,关于Apifox:API 接口自动化测试完全指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 编写http接口api及接口自动化测试

    片言 此文中代码都是笔者工作中源码,所以不会很完整,主要摘常见场景的api片段用以举例说明 另:此文主要针对自动化测试人员,尤其有python基础阅读更佳。 笔者使用 python3.6 + postgresql10 + flask 0.12 的环境 场景介绍  我们要实现后台管理中的 用户管理 功能,实现对用户的增

    2024年04月16日
    浏览(47)
  • 探究HTTP API接口测试:工具、方法与自动化

    本文将深入探讨HTTP API接口测试的重要性,并介绍了相关工具、方法以及自动化测试的实施,同时比较了HTTP和API接口测试的区别。从不同角度解析这一关键测试领域,帮助读者更好地理解和应用于实际项目中。 在如今数字化的世界中,软件开发和应用越来越离不开HTTP API接口

    2024年02月11日
    浏览(47)
  • 如何使用apifox打包测试用例生成测试套件自动化执行

    1、首先点击自动化测试--创建测试用例--新建分组(整理每个模块对应的测试用例),右键点击对应的分组新建测试用例,开始创建测试用例。 2、创建测试用例:输入对应的名称,以及用例执行的优先级(核心、高、中、低),添加对应的用例备注(说明)  3、编辑测试用

    2024年02月11日
    浏览(55)
  • API自动化测试是什么?我们该如何做API自动化测试呢?

     API测试已成为日常的测试任务之一,为了提高测试效率,减少重复的手工操作,API自动化测试也逐渐变得愈加重要,本文是自己在API自动化测试方面的一些经验积累和心得、汇总成文,以飨读者 我相信自动化技能已经成为高级测试工程师总体技能的标配。敏捷和持续测试破

    2024年02月01日
    浏览(47)
  • 接口自动化测试实践指导(下):接口自动化测试断言设置思路

    作者 : 石臻臻 , CSDN博客之星Top5 、 Kafka Contributor 、 nacos Contributor 、 华为云 MVP , 腾讯云TVP , 滴滴Kafka技术专家 、 KnowStreaming 。 KnowStreaming 是滴滴开源的Kafka运维管控平台, 有兴趣一起参与参与开发的同学,但是怕自己能力不够的同学,可以联系我,当你导师带你参与开源! 。 在

    2024年01月18日
    浏览(76)
  • 【接口自动化测试入门】从0到1落地接口自动化测试

    前段时间写了一系列自动化测试相关的文章,当然更多的是方法和解决问题的思路角度去阐述我的一些观点。这篇文章来聊聊新手如何从零到一落地实践接口自动化测试。 早些时候,软件研发交付流程大多遵循V型或W型的瀑布模式,这种模式下只有开发编码完成才会提测进入

    2024年02月04日
    浏览(52)
  • 自动化测试(三):接口自动化pytest测试框架

    API:Application Programming Interface 接口自动化按照自动化的工具可分为 基于 接口测试工具 的接口自动化 eg1:Postman+Newman+git/Svn+Jenkins(基于Javascript语言)接口自动化 Postman :创建和发送 API 请求,并对响应进行断言和验证。 Newman : Postman 的命令行工具,它允许测试人员在没有界

    2024年02月10日
    浏览(65)
  • 通过API接口实现自动化数据同步

    在当今数字化的世界中,API(应用程序编程接口)作为数据交换的桥梁,对于电商企业来说尤为重要。它们允许企业从丰富的数据源中提取必要的信息,为商业决策提供数据支持。本文将围绕如何高效地利用API进行数据采集展开讨论,并提供一些实用的代码示例。 一、API的核

    2024年02月21日
    浏览(39)
  • 接口自动化测试系列-接口测试

    利用postman完成接口测试:官网。 接口一般包含: url:请求地址,如:https://www.baidu.com/ method:请求方式,get,post,update,delete等 headers:请求头 body/params:请求体,post一般存在body中。get请求放在params中 get请求 post请求 辅助抓包工具操作指引 postman常规操作 1、怎样设置变量 如url、heade

    2024年02月10日
    浏览(59)
  • 基于 python 的接口自动化测试,让你轻松掌握接口自动化

    目录 目录 一、简介                ​编辑二、引言 三、环境准备 四、测试接口准备 接口信息 五、编写接口测试 六、优化 封装接口调用   本文从一个简单的登录接口测试入手,一步步调整优化接口调用姿势; 然后简单讨论了一下接口测试框架的要点; 最后介绍了一下

    2023年04月19日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包