2 回答
TA贡献1799条经验 获得超8个赞
您尝试做的最好是使用集合运行器和setNextRequest
. 我花了好几个小时试图以同样的方式完成同样的事情,但一无所获。这是你最好的选择:
https://learning.getpostman.com/docs/postman/scripts/branching-and-looping/
不幸的是,这仅适用于集合运行器,但其想法是在一个请求中您执行所有if
语句并根据您将setNextRequest("same_request")
或setNextRequest(null)
TA贡献1836条经验 获得超13个赞
对于那些可能遇到这种情况的人,我发现了这个问题,或者说是两个问题。
我的 environment.JobStatus 变量没有被设置,我不知道如何让它这样做。所以我废弃了环境变量,只是在 JS 中声明了它。
其次,我的 postman.setNextRequest("Get Job Status") 被忽略了,因为它嵌套在 sleep 函数中。不知道为什么会导致它,但我把它从睡眠中掉了出来,现在它循环得很好。
var jsonData = pm.response.json();
var jobState = jsonData['progress-update'].state
const sleep = (milliseconds) => {
return new Promise(resolve => setTimeout(resolve, milliseconds));
};
if ( jobState === "DONE")
{
console.log(jobState);
}
else if ( jobState === "INPROGRESS")
{
sleep(10000).then(() => {
console.log(jobState);
})
postman.setNextRequest("Get Job Status");
}
else {
console.log("ELSE Clause was matched.");
console.log(jobState);
postman.setNextRequest(null);
}
添加回答
举报