环境与变量管理

Postman的环境管理让API测试在不同配置间无缝切换。创建development、staging、production三个环境,分别设置base_url、api_key、token等变量。使用{{variable}}语法引用变量,切换环境时自动替换。

动态变量:Postman内置动态变量如{{$timestamp}}{{$randomUUID}}{{$randomEmail}},在测试数据需要动态生成时非常有用。配合Pre-request Script可以自定义生成更复杂的动态数据。

Pre-request Script实战

Pre-request Script在请求发送前执行,用于复杂的前置操作。最常见的用法是自动获取Token:发送登录请求后将返回的Token设置在环境变量中,后续所有请求自动携带认证信息。

脚本示例:pm.sendRequest方法在脚本中发起额外的HTTP请求获取签名参数。对于需要时间戳签名的API,在Pre-request中计算签名并设置变量,确保每次请求都有有效的签名。

测试断言编写

Tests标签中的脚本在响应返回后执行。使用pm.test定义测试用例,pm.expect进行断言。覆盖状态码检查、响应体结构验证、字段类型校验和响应时间监控。

pm.test("响应时间在200ms以内", () => {
    pm.expect(pm.response.responseTime).to.be.below(200);
});
pm.test("返回数据包含必要字段", () => {
    const jsonData = pm.response.json();
    pm.expect(jsonData).to.have.property("data");
    pm.expect(jsonData.data.id).to.be.a("number");
});

Collection Runner与CI集成

Collection Runner批量执行集合中的所有请求。配置数据文件(CSV或JSON)实现数据驱动测试,每次迭代使用不同的测试数据。

Newman是Postman的命令行工具,可将集合集成到CI/CD流水线。使用newman run collection.json -e environment.json --reporters cli,htmlextra在构建过程中自动运行API测试。生成HTML测试报告,包含请求详情和断言结果。

API文档与团队协作

Postman可以将集合发布为API文档。为每个请求添加描述、参数说明和示例响应,生成交互式文档页面,支持直接"Try it out"发送测试请求。

团队协作方面,使用Postman Workspace共享集合和环境。结合Postman API将集合管理自动化,通过版本控制同步API变更。API变更时,使用版本对比功能查看差异并通知团队。