Postman Tests里怎么断言响应数据中的数组长度?
我在用 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”, () => { … }) 就不行,到底该怎么写才对?
你报错的原因可能是用了老版本的
tests["xxx"] =语法,那种写法现在不推荐了。正确用法就是pm.test()包裹一个函数,在里面用pm.expect()做断言。还有一点注意:如果你的接口返回结构是
{ users: [...] },那就用jsonData.users.length,如果直接返回数组那就用jsonData.length。另外 Postman 自带的一些内置变量名不要冲突,比如
response这种容易被覆盖,用jsonData之类的变量名更稳妥。