POSTMAN jetpacks在for循环中测试

时间:2015-05-28 01:06:15

标签: rest testing automated-tests postman

点击带有GET请求的API,检查项目是否已被globals.id变量删除,在forloop中进行测试,当我运行test时返回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;
  }
}

3 个答案:

答案 0 :(得分:6)

我可以用for循环进行测试。 我的杰森:

{
  "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 !== "";
}

但如果我使用&#34;则返回true&#34;邮差显示&#34;测试(0/0)&#34;

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

是Ranson Namba!我遇到了同样的事情 - 即使在我的For循环中尝试写入控制台也会被忽略。更重要的是,能够在For循环中指定数组是非常有帮助的,但显然Postman也不允许这样做。所有这些限制BS的解决方案是什么?

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;

最后的测试工作正常,只是你在循环工作中放入了什么,甚至是一个简单的console.log(&#34;无论如何&#34;)。一点帮助? THX