responseBody is deprecated

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)
responseBodypm.response.text()
JSON.parse(responseBody)pm.response.json()
responseCode.codepm.response.code
responseHeaderspm.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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值