Postman免费版无法调用.length等验证函数?是版本限制还是缺失配置?
问题描述
我正在使用Postman免费版开展API测试项目,需验证JSON属性的长度,但编写测试代码时,Postman既不识别.length函数,也无相关函数提示,hasOwnProperty函数同样无法使用。想了解是否需要提前安装相关组件,还是这类验证功能仅付费版可用?此外,我尝试了VS Code中的Postman扩展,问题仍未解决。
相关信息
JSON响应
{ idDigit: 1234567891111, subidDigit: 987654321, checkDigit: 0, status: false }
(注:该内容不符合标准JSON规范,标准JSON要求键名必须用双引号包裹,Postman可能兼容解析,但建议修正为标准格式)
测试代码
var jsonData = pm.response.json(); var prop = jsonData.idDigit; pm.test("Check length of JSON property", function () { const expectedLength = 13; pm.expect(prop.length).to.equal(expectedLength); });
报错信息
AssertionError: expected undefined to equal 13
解决办法
- 这类验证功能完全无需付费,免费版即可使用,也不需要安装额外组件,核心问题出在代码逻辑和数据类型上。
- 报错原因:
idDigit是数字类型,数字本身没有.length属性,因此prop.length返回undefined,导致断言失败。 - 正确的验证代码:将数字转为字符串后再获取长度,同时可先校验属性是否存在:
var jsonData = pm.response.json(); pm.test("Check length of JSON property", function () { const expectedLength = 13; // 先确认目标属性存在 pm.expect(jsonData).to.have.property('idDigit'); // 转换为字符串后验证长度 pm.expect(jsonData.idDigit.toString().length).to.equal(expectedLength); });
- VS Code的Postman扩展环境和客户端一致,修改上述代码后即可正常运行。
内容的提问来源于stack exchange,提问作者Bilawal Wajid Ali
相关产品推荐
相关产品推荐

