在Ubuntu上编写 Postman 自定义脚本
一 环境与脚本类型
二 编写与调试步骤
三 常用脚本示例
// Pre-request Script
const token = pm.environment.get("token");
if (token) {
pm.request.headers.add({ key: "Authorization", value: "Bearer " + token });
}
const userId = pm.collectionVariables.get("userId");
if (userId) {
const q = pm.request.url.query;
q.add({ key: "userId", value: userId });
}
// Tests
pm.test("Status code is 200", () => pm.response.to.have.status(200));
pm.test("Response time < 200ms", () => pm.expect(pm.response.responseTime).to.be.below(200));
const json = pm.response.json();
pm.test("User ID present", () => pm.expect(json.id).to.be.a("number"));
// 将响应中的 token 写回环境,供后续请求使用
const newToken = json.token;
if (newToken) {
pm.environment.set("token", newToken);
}
// Pre-request Script
const uid = pm.iterationData.get("userId"); // 来自数据文件
pm.request.url.query.add({ key: "userId", value: uid });
// Pre-request Script
const url = "https://api.example.com/config";
pm.sendRequest({ url, method: "GET" }, (err, res) => {
if (err) return console.error("Pre-request failed:", err);
const cfg = res.json();
pm.environment.set("traceId", cfg.traceId || "default");
});
# 导出集合与环境为 JSON 后
newman run collection.json --environment environment.json
上述示例覆盖了变量读写、请求修改、断言、日志与异步预请求等常见场景。
四 最佳实践与排错