点击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