Postman里怎么断言返回的JSON字段值是否正确?

启航 阅读 2

我在用Postman测试接口,想验证返回的JSON里某个字段的值是不是我预期的,但写了断言老是不生效,不知道哪里写错了。

比如接口返回的是{"status": "success", "code": 200},我想断言code等于200,试了下面这段代码,但一直报错:

pm.test("检查code是否为200", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.code).to.eql(200);
});

控制台提示“Cannot read property ‘code’ of undefined”,明明响应里有这个字段啊,是不是解析出问题了?

我来解答 赞 0 收藏
二维码
手机扫码查看
1 条解答
 ___小菊
看起来问题出在 pm.response.json() 可能返回了 undefined,导致你无法访问 code 属性。先确认下响应内容是不是真的正确解析了。

建议加个调试语句缓存起来看看:
pm.test("检查code是否为200", function () {
var jsonData = pm.response.json();
console.log(jsonData); // 先打印出来看看
if (jsonData && jsonData.code) {
pm.expect(jsonData.code).to.eql(200);
} else {
throw new Error('响应格式不正确或缺少code字段');
}
});


这样如果还是报错,至少你能看到完整的响应结构。我猜可能是接口偶尔返回非JSON或者网络问题导致的。记得加上异常处理,别让测试直接挂掉。

顺便说,最好把期望值和实际值都打印出来,方便排查问题。调代码这种事情,多打几个日志准没错。
点赞
2026-03-30 21:04