Postman Tests里怎么断言响应数据中的数组长度?

东方兴翰 阅读 70

我在用 Postman 写接口测试脚本,接口返回的是一个包含 users 数组的对象。我想断言这个数组长度是否等于 3,但一直报错说 tests[“xxx”] is not a function 或者 pm.expect 不生效。我试过用 pm.response.json() 拿数据,但不确定怎么正确写断言。

这是我的响应结构,前端代码里是这么处理的:

const res = await fetch('/api/users');
const data = await res.json();
console.log(data.users.length); // 正常输出 3

但在 Postman Tests 里写 pm.test(“users length”, () => { … }) 就不行,到底该怎么写才对?

我来解答 赞 16 收藏
二维码
手机扫码查看
1 条解答
Des.文茹
在 Postman Tests 里这幺写就行:

var jsonData = pm.response.json();

pm.test("users length is3", function() {
pm.expect(jsonData.users.length).to.eql(3);
});


你报错的原因可能是用了老版本的 tests["xxx"] = 语法,那种写法现在不推荐了。正确用法就是 pm.test() 包裹一个函数,在里面用 pm.expect() 做断言。

还有一点注意:如果你的接口返回结构是 { users: [...] },那就用 jsonData.users.length,如果直接返回数组那就用 jsonData.length

另外 Postman 自带的一些内置变量名不要冲突,比如 response 这种容易被覆盖,用 jsonData 之类的变量名更稳妥。
点赞
2026-03-10 17:13