一、从手动调试到自动化测试
很多工程师使用 Postman 时,仅将其当作一个“界面版 cURL”:登录接口跑一次,按 F12 复制 Response 里的 token,然后再手动粘贴到几十个业务接口的 Authorization: Bearer <token> 请求头中。
一旦 Token 过期(如 30 分钟),整个集合的几十个接口全报 401,又得重新登录复制粘贴一遍。
工程化用法是利用 Postman 内置的 JavaScript 沙箱,让数据在接口之间自动流转、自动校验,并通过命令行工具无缝融入流水线。
二、自动登录并注入全局环境变量
在登录接口的 Tests 脚本标签页中编写响应后处理逻辑:
javascript
// 1. 验证登录接口本身状态码正常
pm.test("HTTP 状态码应为 200", function () {
pm.response.to.have.status(200);
});
// 2. 解析 JSON 响应体
var resData = pm.response.json();
// 3. 提取 Token 并自动更新到环境变量中
pm.test("成功获取并注入 JWT 鉴权凭证", function () {
pm.expect(resData.code).to.eql(0);
pm.expect(resData.data.token).to.not.be.empty;
// 自动持久化写入当前 Environment
pm.environment.set("jwt_token", resData.data.token);
pm.environment.set("current_user_id", resData.data.userId);
console.log("✓ 鉴权凭证已自动注入环境变量");
});全局生效配置:
在整个集合(Collection)或具体的文件夹层级,将 Authorization 类型选择为 Bearer Token,Token 处直接填写 。
后续所有业务接口直接继承父级鉴权(Inherit auth from parent),一处登录,全集合自动免密执行。
三、Pre-request Script:动态参数与签名计算
很多安全要求高的接口要求在发送请求前携带动态时间戳、随机 UUID 或 HMAC-SHA256 签名:
javascript
// 在请求发起前自动计算并写入变量
var timestamp = Math.floor(Date.now() / 1000);
var nonce = pm.variables.replaceIn('{{$guid}}');
pm.environment.set("req_timestamp", timestamp);
pm.environment.set("req_nonce", nonce);
// 模拟动态计算安全签名
var rawString = "appId=1001&nonce=" + nonce + "×tamp=" + timestamp;
var signature = CryptoJS.MD5(rawString).toString();
pm.environment.set("req_sign", signature);在请求参数或 Header 中直接引用:X-Sign: ,彻底消除手动构造签名的繁琐工作。
四、Tests 深度断言链
Postman 基于 Chai.js 断言库,提供了极佳的自解释断言写法:
javascript
var jsonData = pm.response.json();
pm.test("业务字段结构及约束校验", function () {
// 响应时间必须在 800ms 以内
pm.expect(pm.response.responseTime).to.be.below(800);
// 状态码为成功
pm.expect(jsonData.success).to.be.true;
// 校验数组列表不为空且包含目标对象
pm.expect(jsonData.data.items).to.be.an("array").that.is.not.empty;
pm.expect(jsonData.data.items[0]).to.have.property("deviceId");
});五、融入 CI/CD 流水线:Newman CLI 自动化运行
在 Jenkins 或 GitHub Actions 流水线中,无需安装任何桌面客户端,直接通过 Node.js 驱动的 Newman 执行导出的 Collection:
bash
# 1. 全局安装 Newman 核心引擎及 HTML 高级报表插件
npm install -g newman newman-reporter-htmlextra
# 2. 自动化执行用例集并生成富文本测试报告
newman run /opt/tests/api_collection.json \
-e /opt/tests/test_env.json \
--reporters cli,htmlextra \
--reporter-htmlextra-export /opt/tests/reports/api_report.html \
--bail # 遇到严重错误时是否快速熔断生成的 api_report.html 包含可视化请求明细、断言通过率及耗时分布,轻松实现接口自动化冒烟回归。