接口测试神器Apifox,亲测好用!

自己关注的公众号比较多,之前有收到过有关 Apifox 的文章,自己也是大致看看,还没有用过它!
最近看到比较多有关 Apifox 的文章,所以自己就花了点时间去研究它,使用完后发现确实比Postman功能更强大,界面也更炫酷!
在开发过程中,常常会需要多种工具来完成自己的接口测试任务:
-
接口文档:Swagger、Yapi
-
接口测试:Postman、Postwoman
-
Mock:EasyMock、mock.js
-
性能测试:Jmeter、Locust
官方给出Apifox定位是
Apifox = Postman + Swagger + Mock + JMeter

具体官方文档: https://www.apifox.cn/help
下面就根据一个一个示例来了解下它
一、接口调试
1、接口设计和接口运行
我们在使用Postman的时候,我们是不区分接口设计和接口运行,当我们定义好接口后(如接口路径、参数、返回值、数据结构等)直接运行就可以了。

和 Postman 不一样,Apifox 是区分接口设计
和接口运行
两个概念的。

接口设计:接口设计仅仅是设计好接口文档,比如请求url,入参、出参、请求头等信息。
接口运行:运行就是真正请求接口设计中的接口。
2、快捷请求
有时候我们只是临时需要调试某个接口,并不需要接口设计和接口运行区分,那Apifox提供了一个快捷请求的方式。

3、同一个接口保存多个请求示例
有时候我们会对同一个接口,想要保存不同参数的请求示例,有成功的有失败的。

4、环境变量/全局变量/全局参数
我们在上面图片接口设计的时候我们是不需要输入请求路径的ip和端口的(前置URL),因为这个我们进行全局配置,我们可以添加不同的环境,
比如测试环境
、本地环境
,线上环境
配置不同请求签证URL,这样就更加灵活。同时一些常见的全局参数比如token、Cookie信息,也可以在这里配置。

二、Mock功能
前端开发往往依赖于后端数据接口,在后端接口就绪之前,前端通常很难开工。Mock 功能就是用来解决这个问题的。
有了 Mock 工具之后,前后端可以同步进入开发,后端接口出来之前,前端可以通过 Mock 功能来制造假数据接口来进行开发和调试。
这里有两种场景:
第一种 查询接口 前端开发往往依赖于后端接口,而后端一般先提供接口文档后实现接口功能,因此接口仅仅是个假接口并没有数据返回,这个时候前端可以通过 Mock 功能来制造
假数据渲染页面。
第二种 保存接口 因为可能字段比较多,而且很多字段有条件限制不能随便输入,这个时候前端在保存数据的时候需要手动输入,比较繁琐。那么我们也可以通过 Mock 功能 来
自动生成符合规则的数据来保存。
有关 Mock语法我们可以通过可以查看 https://www.apifox.cn/help/app/mock/
apifox 在使用的时候,只有第二种场景可以实现,第一种查询接口返回假mock数据好像并不支持,不过也不应该支持吧,你说你在postMan请求接口,然后返回你假数据,
那你说请求的意义在哪里呢?我们来看下示例
1、保存接口
首先我们要在设计文档的时候,对一些参数一些规则,比如

这里时候我们在运行接口的时候,点击自动生成的时候,都会生成不同的保存数据,而且都是符合规则的数据

2、智能Mock
这里所谓智能的意思就是,可以针对某一字段
的Mock规则 进行全局配置。
什么意思呢,就好比上面有个sex字段,根据 mock 的规则 这个字段只能传 男和女,如果每个接口有这个字段我都要配置一下 mock 规则,就显了很麻烦,所以这个时候 Mock
全局配置就显得很重要了。
设置位置
:项目设置-智能 Mock 设置。

三、自动化测试
在没有用Apifox之前,我会用Jmeter来进行压测,一般在两个场景下会考虑用自动化测试
并发测试
有时候需要验证某一个接口是否有并发问题,需要同时模拟多个线程来访问同一个接口
数据录入
比如有这么一种场景,产品给你一个excel表格,需要把表格里的用户数据一个一个录入到页面保存,100用户就需要录入100次,而且手动录入还容易出错。
当然你可以做一个数据excel导入功能接口,那不得开发一个新接口吗?这个时候就可以通过自动化测试功能将用户数据保存。
这里根据上面两个场景做下示例
1、并发测试案例
路径:自动化测试 -> 测试用例

这里我新建一个分组叫: 用户分组,在该分组下新建了一个测试用例叫: 用户测试用例
点击上面的详情就可以到测试用例编辑页面了

添加用例有两种方式:从接口导入
和从接口用例导入 (推荐)
1)从接口导入: 需要手动设置接口参数,否则运行的时候,接口参数是空的。
2)从接口用例导入: 会同步导入接口用例里的参数,会方便很多。
选择后指定的接口后,你还可以通过线程数来模拟并发度,点击运行就会生成测试报告。
2、数据录入
首先是要添加数据集,数据可以导入也可以在这直接输入,我这里手动输入了4个用户信息。

然后修改接口的请求参数,通过引用变量的方式获取测试数据

最后开启测试数据
按钮就可以了

整体大体是这样,具体可以看官方文档,写得很清楚。https://www.apifox.cn/help/
声明: 公众号如需转载该篇文章,发表文章的头部一定要 告知是转至公众号: 后端元宇宙。同时也可以问本人要markdown原稿和原图片。其它情况一律禁止转载!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了