Postman 中 responseBody is deprecated 的原因和新方法。
一、responseBody 是什么?为什么被废弃?
旧的 responseBody
responseBody
- Postman 早期 全局隐式变量
- 存放 HTTP 响应体的字符串内容
- 需要开发者自行
JSON.parse()
被废弃的根本原因(官方设计层面)
| 问题 | 说明 |
|---|---|
| 隐式全局变量 | 不直观、易被覆盖 |
| 无类型 | JSON / Text / XML 混在一起 |
| Runner 行为不一致 | 在 Collection Runner / Newman 中不稳定 |
| 不利于异常处理 | JSON 解析错误难以捕获 |
| 不符合新 pm API 设计 | 与 pm.request / pm.response 不统一 |
因此 Postman 标记responseBody为 deprecated
二、官方推荐的新 API
新统一入口:pm.response
Postman 脚本体系核心对象:
pm.response
三、responseBody → 新方法对照表
| 旧方法(Deprecated) | 新方法(Recommended) |
|---|---|
responseBody | pm.response.text() |
JSON.parse(responseBody) | pm.response.json() |
responseCode.code | pm.response.code |
responseHeaders | pm.response.headers |
四、新方法详细用法
解析 JSON 响应
旧写法(已废弃)
var data = JSON.parse(responseBody);
新写法
var data = pm.response.json();
- Postman 自动解析
- 自动抛异常
- Runner / Newman 兼容
处理非 JSON 响应(HTML / Text)
var bodyText = pm.response.text();
适用于:
- HTML 页面
- plain/text
- XML(可再自行解析)
安全写法(防止非 JSON 响应导致脚本失败)
let data;
try {
data = pm.response.json();
} catch (e) {
console.warn("Response is not JSON");
}
五、业务场景示例
场景
- 登录接口返回 token
- 保存到环境变量
旧写法(全部 deprecated)
var res = JSON.parse(responseBody);
postman.setEnvironmentVariable("token", res.token);
新写法
pm.test("Login success", function () {
pm.response.to.have.status(200);
});
let res = pm.response.json();
pm.environment.set("token", res.token);
标准模板
pm.test("HTTP 200", () => {
pm.response.to.have.status(200);
});
let body;
try {
body = pm.response.json();
} catch (e) {
throw new Error("Response is not JSON");
}
pm.environment.set("request_id", body.requestId);

370

被折叠的 条评论
为什么被折叠?



