温馨提示×

Linux下Postman如何自定义脚本

小樊
39
2026-01-02 15:14:39
栏目: 智能运维

Linux下Postman自定义脚本实战指南

一 前置准备

  • Linux 上安装桌面版 Postman(从官网下载 .deb/.rpm 安装包更可靠),用于编写与调试脚本。
  • 如需在命令行批量运行或集成 CI/CD,安装 Node.jsnpm,再全局安装 Newmannpm install -g newman
  • 建议创建并管理 Environment/全局变量,便于在不同环境间复用脚本。

二 脚本类型与执行顺序

  • 脚本类型
    • Pre-request Script:请求发送前执行,常用于生成签名、时间戳、动态参数、请求头/参数注入。
    • Tests:请求响应后执行,用于断言状态码、响应头/体、提取变量供后续请求使用。
  • 执行顺序(由外到内、先前后测)
    • 集合级脚本 → 文件夹级脚本 → 请求级脚本;每个层级都遵循“先 Pre-request,后 Tests”。

三 常用脚本模板

  • 前置脚本:动态 Authorization
// Pre-request Script
const token = pm.environment.get("token");
if (token) {
  pm.request.headers.add({ key: "Authorization", value: "Bearer " + token });
}
  • 测试脚本:状态码、响应时间、JSON 字段与变量提取
// 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);
  • 数据驱动:使用 CSV/JSON 数据文件
    • 在集合运行器(Runner)中选择数据文件;在脚本中用 pm.iterationData.get("字段名") 读取当前行数据。
    • 示例(Tests):
const email = pm.iterationData.get("email");
pm.test("Email matches data file", () => pm.expect(json.email).to.eql(email));
  • 动态参数与签名示例(如 timestamp + HMAC-SHA256
// 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/setpm.globals.get/setpm.variables.get
    • 响应:pm.response.json()/text()/headers.get("Content-Type")
    • 断言:pm.test()pm.expect(),以及 pm.response.to.have.* 快捷断言
    • 调试:console.log() 输出到 Postman 控制台

四 本地调试与运行

  • Postman 界面中编写并保存脚本,点击 Send 发送请求,在响应区域下方的 Test Results 面板查看断言结果;左下角 Console 可查看 console.log 输出。
  • 使用 集合运行器(Runner) 批量执行请求与脚本,可配置迭代次数、延迟、数据文件等。

五 命令行自动化与CI集成

  • 使用 Newman 在 Linux 终端运行集合并生成报告:
# 安装
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
  • Jenkins/GitLab CI 等 CI/CD 中将上述命令加入构建步骤,实现提交/部署时自动执行 API 测试。

0