Linux下Postman自定义脚本实战指南
一 前置准备
npm install -g newman。二 脚本类型与执行顺序
三 常用脚本模板
// Pre-request Script
const token = pm.environment.get("token");
if (token) {
pm.request.headers.add({ key: "Authorization", value: "Bearer " + token });
}
// Tests
pm.test("Status code is 200", () => pm.response.to.have.status(200));
pm.test("Response time < 300ms", () => pm.expect(pm.response.responseTime).to.be.below(300));
const json = pm.response.json();
pm.test("id exists in response", () => pm.expect(json).to.have.property("id"));
// 提取并保存,供后续请求使用
pm.environment.set("userId", json.id);
pm.iterationData.get("字段名") 读取当前行数据。const email = pm.iterationData.get("email");
pm.test("Email matches data file", () => pm.expect(json.email).to.eql(email));
// Pre-request Script
const ts = Date.now();
const secret = pm.environment.get("apiSecret");
// 简单示例:将 timestamp 写入环境变量,后续在 Header 使用 {{ts}}
pm.environment.set("ts", ts);
// 如需 HMAC(伪代码,按你的服务端算法实现)
// const signature = CryptoJS.HmacSHA256(ts, secret).toString(CryptoJS.enc.Hex);
// pm.environment.set("signature", signature);
pm.environment.get/set、pm.globals.get/set、pm.variables.getpm.response.json()/text()/headers.get("Content-Type")pm.test()、pm.expect(),以及 pm.response.to.have.* 快捷断言console.log() 输出到 Postman 控制台四 本地调试与运行
console.log 输出。五 命令行自动化与CI集成
# 安装
npm install -g newman
# 基本运行
newman run collection.json -e env.json
# 使用数据文件与生成报告
newman run collection.json \
-e env.json \
-d data.json \
-r cli,html,json \
--reporter-html-export report.html \
--reporter-json-export report.json