Postman测试脚本校验organizationnumber长度报空值错误如何解决
报错产生原因
- 响应字段访问路径错误:返回的
organizationnumber字段不存在于响应根层级,而是存储在根节点下的data数组的每个子对象中。直接访问responseJson.organizationnumber得到的值是undefined,对undefined值做长度断言就会触发Target cannot be null or undefined报错。 - 原脚本存在语法缺失:测试回调函数没有写闭合的
}),运行时本身也会存在语法问题。
修正方案
根据校验需求分两种场景处理:
场景1:校验所有返回条目的organizationnumber长度均为10
遍历data数组下的所有元素,逐个校验字段长度,同时增加前置判断避免空数组导致的额外报错,完整代码如下:
pm.test("organizationnumber length is 10", () => { const responseJson = pm.response.json(); // 前置校验data数组有效性 pm.expect(responseJson.data).to.be.an("array").and.not.empty; // 遍历校验每个条目 responseJson.data.forEach((item) => { pm.expect(item.organizationnumber).to.be.a("string").and.lengthOf(10); }); });
场景2:仅校验指定位置(比如第一个)条目的organizationnumber长度
直接通过数组下标访问对应元素即可,示例代码:
pm.test("first item organizationnumber length is 10", () => { const responseJson = pm.response.json(); pm.expect(responseJson.data[0].organizationnumber).to.lengthOf(10); });
内容的提问来源于stack exchange,提问作者Zohaib Aslam
相关产品推荐
相关产品推荐

