Postman 邮递员考试总是通过的,即使失败了

Postman 邮递员考试总是通过的,即使失败了,postman,postman-collection-runner,postman-testcase,Postman,Postman Collection Runner,Postman Testcase,在运行postman测试时,测试用例似乎总是通过 下面提供了响应主体。我试图在名称为“Erin”时获取id,并验证id是否为800。我写的一小段代码在下面写的响应体下面。出于某种原因,测试总是返回true。如果出于某种原因,如果Erin和800不存在,它仍然通过测试 [ { "id":991, "name":"Tomy" }, { "id":800, "name":"Erin" } ] Code: pm.test("Validate id to be 800", func

在运行postman测试时,测试用例似乎总是通过 下面提供了响应主体。我试图在名称为“Erin”时获取id,并验证id是否为800。我写的一小段代码在下面写的响应体下面。出于某种原因,测试总是返回true。如果出于某种原因,如果Erin和800不存在,它仍然通过测试

[
 {
  "id":991,
  "name":"Tomy"
 },
 {
  "id":800,
  "name":"Erin"
 }
]
Code:
pm.test("Validate id to be 800", function() {
   var jsonData = pm.response.json();
   for(int i=0; i<responseJson.length;i++){ 
      if(jsonData[i].name=='Erin'){
         pm.expect(jsonData[i].id).to.eql(800);
      }
     }
});
[
{
“id”:991,
“姓名”:“Tomy”
},
{
“id”:800,
“姓名”:“艾琳”
}
]
代码:
测试(“验证id为800”,函数(){
var jsonData=pm.response.json();

对于(inti=0;i,我认为响应主体看起来不太正确,我希望在对象中的属性键周围看到引号

此外,您的引用没有正确命名,这将通过测试,因为它不会在脚本中导致任何引用错误

这将帮助您:

pm.test("Validate id to be 800", function () {
   let jsonData = pm.response.json();

   for(i=0; i < jsonData.length; i++) { 
      if(jsonData[i].name === 'Erin') {
        pm.expect(jsonData[i].id).to.eql(800);
      }
    }
});

以及失败时的测试结果:


Yes true引号缺失,我已经添加了引号。但是您给我的脚本仍然存在相同的问题,即使id不等于Erin或不等于800,它仍然会通过。如果可以,请帮助我。我使用您的示例响应在本地运行了该脚本,甚至更改了值以强制断言中出现错误。肯定有一些错误还有其他事情。你使用了我的整个脚本吗?你能在原始问题中添加一个图像,这样我就可以看到实际发生的情况。是的,我尝试了你发布的同一个脚本。如果稍微调整到下面,它仍然通过了我希望它失败的地方。pm.test(“验证id为800”),函数(){let jsonData=pm.response.json();for(i=0;ipm.response.json()[0]
?您需要做一些事情,期望Erin在那里,并且Erin的ID是您想要的。如果Erin不在那里,它将失败;如果Erin在那里,并且ID错误,它将失败。它将通过的唯一时间是如果Erin存在,并且ID正确
pm.test("Validate id to be 800", function () {
   let jsonData = pm.response.json();

   for(i=0; i < jsonData.length; i++) { 
      if(jsonData[i].name === 'Erin') {
        pm.expect(jsonData[i].id).to.eql(800);
      }
    }
});
pm.test("Validate id to be 800", () => {
    let jsonData = pm.response.json();

    jsonData.forEach(item => {
        if(item.name === 'Erin') {
            pm.expect(item.id).to.eql(800);
         }
    });
});