点击带有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;
}
}
答案 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