Postman测试中如何断言含特殊字符的响应参数
解决Postman Tests中断言含特殊字符响应参数的问题
问题根源
用点符号(.)访问JavaScript对象属性时,属性名不能包含连字符(-)、点号(.)这类特殊字符。你写的super-card会被JS解析成super变量减去card变量,自然会抛出ReferenceError: card is not defined的错误。
修复方案
改用方括号语法访问带特殊字符的属性,具体分两种场景处理:
场景1:super-card.DCC是完整属性名
如果响应里的结构是postingAttributes: {"super-card.DCC": "false"},修正后的断言代码:
pm.expect(jsonResponse.postingAttributes['super-card.DCC'], false);
场景2:super-card是父属性,DCC是子属性
如果响应结构是postingAttributes: {"super-card": {"DCC": "false"}},可以用两种写法:
// 混合写法 pm.expect(jsonResponse.postingAttributes['super-card'].DCC, false); // 全方括号写法 pm.expect(jsonResponse.postingAttributes['super-card']['DCC'], false);
额外提示
- 方括号语法支持任何合法字符串作为属性名,包括带空格、特殊符号的名称
- 点符号仅适用于符合JS标识符规则的属性名(不能以数字开头、不能含特殊字符等)
内容的提问来源于stack exchange,提问作者Jagadeesh
相关产品推荐
相关产品推荐

