首页 > 解决方案 > 无法为函数添加价值并停止执行请求(邮递员)

问题描述

我对 POSTMAN 很陌生,也在寻找其他方法来编写这个函数。任何其他方式都非常感激。

下面是 POSTMAN 中的 200 状态 OK 测试。如果状态没有恢复为 200 状态正常,我想将该失败记录/计数为值(+1)。在稍后的请求中,Else/if 条件(如下)将检查有多少失败。如果失败 >0 则将触发新请求。

但是如果这个测试有一个状态(400)而不是 200,这意味着它会失败我怎么能告诉它把这个失败(+1)计为一个值?

pm.collectionVariables.set("failures", []);
let failures = pm.collectionVariables.get("failures")

pm.test("Status test", function () {
    pm.response.to.have.status(200);
});

下面是 POSTMAN 中的前置脚本请求。如上所述,如果失败的值大于 0,则运行“新请求”。如果没有,什么也不做。我认为我的 else/if 语句是正确的。只是包括它供您参考。

let failures = pm.collectionVariables.get("failures")
console.log(failures)
if (failures.length >0) {
    console.log('failures found')
    pm.sendRequest("New Request")
} else {
    console.log('NO failures')
    postman.setNextRequest(null);
    return null
}

(屏幕截图 - 无法停止执行请求)

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

标签: javascriptjqueryfunctionapipostman

解决方案


你可以这样算failures

let failures = pm.environment.get("failures");

if (failures === undefined || failures === null){
    failures = 0;
    pm.environment.set("failures", failures);
}

pm.test("Status test", function () {
    if (pm.response.code !== 200){
        failures += 1;
        pm.environment.set("failures", failures)
    }
    pm.response.to.have.status(200);
});

要检查的代码是:

let failures = pm.environment.get("failures")

if (failures > 0) {
    console.log('failures found')
    postman.setNextRequest("New Request")

    //you can reset failures if needed.
    pm.environment.set("failures", 0)

} else {
    console.log('NO failures')
    postman.setNextRequest(null);
}

推荐阅读