当使用 Postman 的 Collection Runner 并读取 csv 文件时 - 我有两个请求:一个 Get 和一个 Put。这些请求位于它们自己的文件夹中,我就是从该文件夹中启动 Collection Runner 的。
Get 的响应仅返回 true 或 false。
Put 请求将其翻转为 false,仅此而已。所以我认为这很容易:
var jsonInfo = pm.response.json();
console.log(data["AppId"] + " = " + jsonInfo);
if (jsonInfo === true)
{
console.log("Setting " + data["AppId"] + " to false.");
postman.setNextRequest("Change-AppID-Decision-to-False");
}
因为我不想让 Put 一直运行,所以在使用 Collection Runner 时我没有选中 Put。 Get 开始,我知道它在将语句写入控制台时进入 if 语句的主体,但 Put 永远不会在 Get 请求之后运行。
我承认我可以只运行 Put,因为这里运行的所有 appId 都需要设置为 false,但据我所知,我想知道这是否可能,因为感觉它应该是一个简单且有用的邮递员应该能够做的事情:)。想法?
因为我不希望 Put 一直运行,使用时 Collection Runner 我没有选中 Put。
这不起作用,因为 Postman Run 仅考虑已检查的请求。
但是修复应该很容易终止运行:
postman.setNextRequest(null)
所以你的代码应该是这样的:
var jsonInfo = pm.response.json();
console.log(data["AppId"] + " = " + jsonInfo);
if (jsonInfo === true)
{
console.log("Setting " + data["AppId"] + " to false.");
postman.setNextRequest("Change-AppID-Decision-to-False");
} else {
console.log("Nothing to do now");
postman.setNextRequest(null)
}
你可以使用逆向逻辑!
这意味着如果你愿意的话
if (true) {
run()
}
但是邮递员没有这个功能,因为请求会自动排队等待运行。因此你可以扭转这个逻辑并做
if (false) {
skip()
}
解决方案(仅适用于预先请求):
let base_url = pm.variables.get("base_url")
if (!base_url.includes('client_to_run')) {
pm.execution.skipRequest()
}