一、核心操作路径:5步完成自动化测试
1. 创建集合():在中点击“New ”,将需要测试的API请求按功能模块归类存放。
2. 编写测试脚本:在每个请求的“Tests”标签页中,使用编写断言,验证响应状态码、返回字段、响应时间等。
3. 设置变量与环境:通过环境变量(如{{}})管理不同环境(开发/测试/生产),利用全局变量或集合变量存储Token等共享数据。
4. 运行集合:点击集合旁的“Run”按钮打开 ,选择需要运行的请求、设置迭代次数和数据文件,点击“Run”执行自动化测试。
5. 集成CI/CD:导出集合和环境文件,使用(命令行工具)在、 CI、 等流水线中运行测试。
二、测试脚本核心模板(可直接复制使用)
在请求的Tests标签页中,以下为最常用的断言脚本:
// 1. 验证状态码为200
pm.test(" code is 200", () {
pm..to.have.(200);
});
// 2. 验证响应体包含指定字符串
pm.test("Body ", () {
pm.(pm..text()).to.("");
});
// 3. 验证JSON响应中某字段的值
pm.test("Check user id is 1001", () {
var = pm..json();
pm.(.).to.eql(1001);
});
// 4. 验证响应时间低于200ms
pm.test(" time is less than 200ms", () {
pm.(pm..).to.be.below(200);
});
// 5. 提取响应中的Token并设置为环境变量
var = pm..json();
pm..set("", .token);
三、数据驱动测试:使用外部数据文件
操作步骤:
1. 准备CSV或JSON文件(例如.csv):
,,
admin,,200
guest,,401
2. 在 中,选择“Data File”并上传该文件。
3. 在请求参数中使用变量{{}}、{{}}。
4. 在Tests脚本中通过data.访问当前行数据。
断言示例:
pm.test(" ", () {
pm..to.have.((data.));
});
四、自动化测试完整工作流(含CI集成)
| 阶段 | 工具/操作 | 命令/示例 |
|——|———–|————|
| 编写测试 | App | 图形化编辑请求和Tests脚本 |
| 本地运行 | | 点击Run,选择环境、迭代次数 |
| 导出配置 | 导出集合和环境文件 | 集合导出为.json,环境导出为env.json |
| 命令行运行 | | run .json -e env.json -r cli,json |
| CI集成( 示例) | .//api-test.yml |
jobs:
api-test:
runs-on: -
steps:
uses: /@v3
name: Run
run: npm -g && run .json -e env.json
|
| 测试报告 | HTML | npm -g --html
run .json -r html |
五、高频疑难与解决方案
Q1:测试脚本中如何实现请求间依赖(如先登录获取Token,再调用业务接口)?
A:在登录请求的Tests脚本中使用pm..set("", .token)保存Token;后续请求在中添加: {{}}。确保在 中将请求按正确顺序排列。
Q2:如何处理异步请求或轮询验证?
A:使用或需注意脚本执行时间限制。推荐方案:在Tests中编写循环检测逻辑,配合pm.和条件判断,或使用内置的pm..to.have.同步等待。对于轮询接口,可编写递归函数并利用.跳转请求。
Q3: 中遇到“Error: read ‘xxx’ of ”如何处理?
A:常见原因是上一个请求失败未返回正确JSON结构。解决方法:在提取字段前增加状态码校验和存在性校验:
pm.test("Check has token", () {
var = pm..json();
pm.().to.have.('token');
});
Q4:运行时如何跳过SSL证书验证?
A:添加--参数: run .json --。生产环境建议配置正确证书。
Q5:测试数据文件(CSV)中包含中文导致乱码?
A:将CSV文件编码保存为UTF-8 with BOM格式(使用记事本另存时可选择)。或使用JSON文件避免编码问题。
六、权威参考与最佳实践
官方文档:测试脚本入门( )
断言库:基于Chai.js BDD语法,支持pm.和pm..to.have。
命令行完整参数:官方说明 on the line with
遵循以上步骤和脚本,即可在15分钟内搭建起从本地到流水线的完整自动化测试体系。所有脚本和配置均已在 v10及以上版本、 v6及以上版本验证通过。

