背景
最近写了几个接口:
- 获取 books 的接口
- 获取 likes 的接口
- 获取 collections 的接口
但是我还是不放心,因为这些接口到底稳不稳定呢?上线后有没有隐患呢?所以我想做一个批量发送接口模拟~
但是想要做到批量发送接口,必须要有一个条件批量发送 。
批量发送?
起因
当我们写一个接口时,并且部署时,一定要考虑一个问题:
- 你所做的产品访问量大吗?
- 你所写的接口和服务器能应对访问量大的场景吗?
比较你的产品有很多用户在同一时间去进行大批量的发送请求~
举个例子,公司只有一个入口,10 秒内能通过 1 w员工吗?
那肯定是不行的,那怎么办呢?那就要看你这个地铁入口怎么去做优化了
思考
但是你再怎么优化,你也不能马上就部署上线吧?肯定要在上线前,做一个规范的多接口批量发送,看看你写的接口,以及你的服务器,到底能不能承受住这样的压力
Postman 批量发送接口
创建集合和接口
首先是创建一个集合,并且依次添加
- 获取 books 的接口
- 获取 likes 的接口
- 获取 collections 的接口
然后为了保险起见,在 Test 中添加断言校验
pm.test('返回数据是 books', () => {
console.log(pm.response.text())
pm.expect(pm.response.text()).to.include('books')
})
然后点击发送,我们会发现接口发送成功了,断言检验也通过了~~
批量发送接口
但是其实单个接口发送不是我们想要的,我们想要的是:
- 批量发送接口
- 频繁发送
所以需要用到Postman的 Runner 功能
然后进行以下操作:
- 第一步:将整个集合拖拽进测试区
- 第二步:设置并发次数
- 第三步:设置每次并发的延迟
- 第四步:点击按钮进行批量发送接口
并且得到结果报告:
Apifox - 更方便做批量发送接口
如果你想要有更好的可视化体验,更加方便快捷地操作,以及对于中文有要求的同学,可以选择 Apifox 进行批量发送接口,它提供了以下功能:
- 可视化的,清晰的调试选项
- 本身支持中文显示
- 模拟过程可视化展示
- 单个测试用例可点击进入查看
创建接口用例
可以通过可视化的后置操作选项,更加清晰地添加断言校验脚本。
创建测试用例
创建测试用例,可设置测试用例的优先级
开始批量发送接口
点击进入测试用例,并选择导入接口用例
右方的参数可设置一些重要运行参数:
- 运行环境
- 循环次数
- 循环次数延迟
- 遇到错误时忽略与否
点击运行按钮,可以清晰看到运行过程的可视化展示,包括:
- 运行数量百分比
- 通过率
- 失败率
- 未测数
并且在运行完成后,也可获取到整体的:
- 总耗时
- 平均接口耗时
- 循环数
- 断言数
你也可以选择导出测试报告,并分享给其他同事进行观看
如果你想单独看某一个测试例子的具体数据,可以点击对应的更多详情按钮,进行查看
结语
Postman 与 Apifox 都提供了批量发送接口这一功能,但是个人觉得 Apifox 有以下优点:
- 本身支持中文
- 可视化选择脚本操作
- 可视化展示运行过程
- 可查看单个运行用例的详细数据
知识扩展
学习更多 Postman 相关使用技巧。