《Postman Pre-request Script 使用技巧》

《Postman Pre-request Script 使用技巧》

1 简介

Postman 允许在请求发送前/后执行 JavaScript 脚本,从而动态生成参数、签名、环境变量等。请求中通过 `` 引用脚本设置的值。

2 两类脚本

2.1 Pre-request Script(请求前)

在请求发送之前执行,用于动态生成参数、JSON 数据包、链接地址。适合场景:时间戳、随机数、签名、Token 刷新。

pm.environment.set("timestamp", Math.floor(Date.now() / 1000)); pm.environment.set("nonce", Math.random().toString(36).slice(2, 12));

2.2 Test Script(请求后)

完成请求拿到 response 后执行,用于断言接口返回是否符合预期,或根据 response 设置环境变量供下一个请求使用。

// 断言返回码 pm.test("status is 200", function () { pm.response.to.have.status(200); }); // 提取返回内容作为下个接口的参数 var data = pm.response.json(); pm.environment.set("token", data.token);

3 常用 API

API 作用
pm.environment.set(name, value) 写入环境变量
pm.environment.get(name) 读取环境变量
pm.globals.set(name, value) 写入全局变量
pm.sendRequest(url, cb) 在脚本中发起 HTTP 请求
pm.response.json() 解析响应 JSON
pm.test(title, fn) 定义断言

4 在 pre-request 脚本中发送请求

pm.sendRequest("https://example.com/token", function (err, res) { if (err) { console.log(err); return; } pm.environment.set("token", res.json().token); });

5 环境变量配置

  • 环境变量:右上角建立 Environment,键值对仅在该环境内生效,适合区分 dev/test/prod;
  • 全局变量:Globals 中配置,所有环境共用;
  • 通过 `` 引用变量,脚本中可用 pm.environment.set/get 动态读写。

6 常见问题

6.1 变量取不到值

  • 确认变量已写入到请求所属的环境;
  • `` 写在外层(JSON body / URL),脚本内的拼接用 pm.environment.get。

6.2 脚本内异步请求不生效

pm.sendRequest 是异步的,请在回调内继续处理依赖逻辑,而不是在回调外直接读取其结果。

7 参考资料

阅读 — · 全站 —
🎸 我的歌单 0 首