AssertionError问题求助:预期undefined与true深度相等失败
排查Postman断言AssertionError(undefined与true不匹配)的方法
先确认接口返回的JSON结构里确实存在
inStock字段- 在Postman的「响应」标签查看原始返回内容,或者在测试脚本里打印完整返回的JSON:
打开Postman左下角的控制台(Console),检查输出的JSON是否包含console.log(pm.response.json());inStock键,注意字段名的大小写(比如是否是instock或InStock)。
- 在Postman的「响应」标签查看原始返回内容,或者在测试脚本里打印完整返回的JSON:
验证接口返回的是否为合法JSON
- 如果接口返回的不是标准JSON格式,
pm.response.json()会解析失败,导致jsonData结构异常。可以先添加测试验证JSON合法性:pm.test("响应是合法JSON", function () { pm.response.to.be.json; });
- 如果接口返回的不是标准JSON格式,
确认
inStock字段的取值类型- 即使字段存在,也要确认它的取值是布尔值
true,而非字符串"true"或数字1。如果是其他类型,需调整断言逻辑:// 若为字符串"true" pm.expect(jsonData.inStock).to.eql("true"); // 若为数字1 pm.expect(jsonData.inStock).to.eql(1);
- 即使字段存在,也要确认它的取值是布尔值
检查字段是否处于嵌套结构中
- 有时
inStock会存在于子对象内,比如jsonData.product.inStock,直接取jsonData.inStock就会得到undefined。需根据实际返回的JSON结构调整字段路径。
- 有时
内容的提问来源于stack exchange,提问作者Sanjeev singh kushvaha
相关产品推荐
相关产品推荐

