接口联调时,手工点一遍接口只能证明“这次能通”。真正容易出问题的是后续改动:登录态变了、字段名改了、依赖接口顺序错了,前端却等到页面上线才发现。Apifox 的自动化测试适合把这些检查固定下来,让接口修改后能快速回归。
一、先把环境和变量分开
测试环境、预发环境、生产环境不要写死在接口地址里。至少准备 baseUrl、token、userId 这类变量,环境切换时只改变量,不改接口。
baseUrl = https://test-api.example.com
token = 登录接口返回的访问令牌
userId = 当前测试账号ID
涉及密码、密钥和真实客户数据的值,不要直接提交到团队共享空间。测试账号也要和生产账号分开,避免误改真实数据。
二、接口用例先按业务流程排
不要拿到接口文档就逐个测。先按一条真实业务流程排顺序,例如:
- 登录并获取访问令牌;
- 创建测试商品;
- 查询商品详情;
- 修改商品状态;
- 创建订单;
- 查询订单状态;
- 删除或停用测试数据。
前面的接口负责准备数据,后面的接口负责验证结果。没有清理步骤时,测试跑几次以后,环境里会堆满重复数据。
三、断言不要只看状态码
接口返回 200 不代表业务正确。状态码只能证明请求被处理了,字段内容和业务状态还要继续检查。
pm.test('返回状态码为200', function () {
pm.response.to.have.status(200);
});
pm.test('订单状态已更新', function () {
const data = pm.response.json();
pm.expect(data.status).to.eql('paid');
});
适合重点检查的字段包括:订单状态、库存数量、用户权限、错误码、返回时间和分页数量。涉及金额时,不要只检查字段存在,还要检查数值和币种。
四、测试数据要能重复跑
很多自动化测试第一次能过,第二次就失败,原因是数据不可重复。常见问题有:
- 用户名必须唯一,第二次创建失败;
- 订单号已经存在;
- 库存被上一次测试扣完;
- 删除接口把后续步骤需要的数据删掉了。
可以在数据里加入时间戳或随机后缀,也可以把清理步骤放到流程末尾。核心原则是:同一套测试多跑几次,结果仍应一致。
五、测试报告重点看什么
| 报告项目 | 需要关注什么 |
| 失败接口 | 是业务失败,还是环境问题 |
| 响应时间 | 是否突然变慢,是否有明显波动 |
| 断言详情 | 哪个字段不符合预期 |
| 变量取值 | 登录态、ID、订单号是否正确传递 |
| 执行顺序 | 是否因为前置接口失败导致连环失败 |
报告里连续失败时,先找第一个失败接口。后面的接口可能只是拿不到前一步返回的数据,不一定都有问题。
六、哪些接口不适合直接自动化
涉及真实支付、短信发送、生产用户修改和第三方扣费的接口,不建议直接在共享环境里自动跑。可以先使用测试账号、沙箱环境或模拟数据,确认没有副作用后再加入定时任务。
七、常见问题
Apifox自动化测试需要写很多代码吗?
基础断言和环境变量不需要太多代码。复杂数据处理和动态参数才需要脚本配合。
测试环境接口经常变化怎么办?
把地址、账号和公共参数放进变量,接口路径变化时优先改公共配置。
失败以后怎么定位最快?
先看第一个失败接口,再检查变量传递和断言字段,不要从后面的失败接口往回猜。
-
广告合作
-
QQ群号:4114653



