【发布时间】:2021-03-06 11:05:48
【问题描述】:
我正在尝试在 Postman 中为 GET 请求创建一个测试,以检查存储在每个对象的“名称”字段中的值是否不同于 null 和 undefined,但我收到以下消息“TypeError:无法读取未定义的属性‘名称’” 这是我正在使用的 JSON 正文的示例:
[
{
"id":1,
"name": "Peter"
},
{
"id":2,
"name":"Stewie"
},
{
"id":3,
"name":"Brian"
}
]
这是测试的JS代码:
pm.test(``, function(){
var response = JSON.parse(responseBody)
var result = true
for (i=0;i<=response.length;i++){
if(!response[i].name){
result = false}
}
pm.expect(result).to.eql(true)
});
我尝试过的事情:
- 使用获取 JSON 正文
var jsonData = pm.response.json();代替var response = JSON.parse(responseBody) - 对 IF 语句使用以下条件:
!response[i]['name'] - 将“名称”值存储在全局变量中,如下所示:
pm.test(``, function(){
var response = JSON.parse(responseBody)
var result = true
for (i=0;i<=response.length;i++){
pm.globals.set("variable_name", response[i]['name'];
var name = pm.globals.get("variable_name");
if(!name){
result = false}
}
pm.expect(result).to.eql(true)
});
谢谢!
【问题讨论】:
-
你为什么不只是检查它是什么类型,如果不是那种类型,它会失败?
pm.expect(response[i].name).to.be.a('string');