《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 参考资料
阅读 —
·
全站 —