邮差喷气背包测试内循环



点击API w/GET请求,检查项目是否已被全局变量删除。id变量,在forloop内进行测试,当我运行测试时返回0/0测试通过。for循环中的所有控制台日志都工作,对象也包含与我拥有的值匹配的值。有人知道怎么做吗?

var data = JSON.parse(responseBody);

for (var i = 0; i < data.length; i++){
  tests["id has been deleted"] = data[i].id !== globals.id;
  if(data[i].id !== globalID){
    tests["id has been deleted"] = data[i].id !== globals.id;
    return true;
  }
}

我可以让test with for循环。我的Json:

{
  "rows": [
    {
      "id": "2804",
      "title": "Some title",
      ...
    },
    ...
  ],
  "total": "2788"
}

我的测试:

for (var i in data.rows){
    var obj = data.rows[i];
    tests["title of row #" + i + " is not null"] = !!obj.title;
    tests["title of row #" + i + " is not empty"] = obj.title !== "";
}

但是如果我使用"return true" Postman显示"Tests (0/0)"

您可以使用forEach循环来迭代响应返回的结果集。它返回可用于处理的指定类型的对象。

var data = JSON.parse(responseBody); 
data.forEach(function(process){
    var processId = "Id" + process.id;
    //console.log("processId" + processId);
}) 

是Ranson Namba!我也经历了同样的事情——甚至试图写控制台在我的For循环中都被忽略了。此外,如果能够在For循环中指定数组,那将是非常有用的,但显然Postman也不允许这样做。如何解决这些极限的问题呢?

var responseData = JSON.parse(responseBody);
for (i = 0; i < responseData.scoringResults.length; i++) {
  var scores =  responseData[i].score;
  for (j; j < scores.length; j++){ //scores.length = 4 at this point
    var scoreValues = scores[j].split(",");
    tests["Verify number of score dimensions"] = scoreValues.length === 4;
  }
}
tests["Status code is 200"] = responseCode.code === 200;

最后的测试工作得很好,只是您在for循环中放入的东西都不起作用,甚至是一个简单的console.log("whatever")。帮个小忙?Thx

相关内容

  • 没有找到相关文章

最新更新