测试失败时如何获取控制台日志 POSTMAN

How to get console log when the test fails POSTMAN

这个测试有问题。 我想要 consol.log 当我的 JSON 中的分期付款值低于 100(当测试 FAIL 时)。 但结果是,我在测试结果中有 PASSFAIL,这是有效的,但我无法在 consol.log 中获得任何信息。我不知道为什么我的代码不起作用。我以为 else if 给我预期的结果。但是,它仍然不能很好地工作。

var jsonData = JSON.parse(responseBody)

for(var i=0 ; i<=jsonData.length - 1; i++){{

for(var j=0 ; j<=jsonData[i].products.length - 1; j++)

pm.test("Installment > 100", function(){

if (pm.expect(jsonData[i].products[j].installment).to.be.above(100)){}

else if(pm.expect(jsonData[i].products[j].installment).to.be.below(100))
    {console.log(jsonData[i].id)}
    });
}}

pm.expect 没有 return 任何东西,它只是抛出一个异常(错误)。所以你不能在需要 boolean

的 if 条件下使用它

尝试以下任一方法:

var jsonData = JSON.parse(responseBody)

for (var i = 0; i <= jsonData.length - 1; i++) {
    {

        for (var j = 0; j <= jsonData[i].products.length - 1; j++)

            pm.test("Installment > 100", function () {
                if (jsonData[i].products[j].installment < 100 && jsonData[i].products[j].installment < 100) console.log(jsonData[i].id)
                pm.expect(jsonData[i].products[j].installment).to.be.above(100)
                pm.expect(jsonData[i].products[j].installment).to.be.below(100)
            });
    }
}

或:

var jsonData = JSON.parse(responseBody)

for (var i = 0; i <= jsonData.length - 1; i++) {
    {

        for (var j = 0; j <= jsonData[i].products.length - 1; j++)

            pm.test("Installment > 100", function () {

                try {
                    pm.expect(jsonData[i].products[j].installment).to.be.above(100)
                } catch (e) {
                    pm.expect(jsonData[i].products[j].installment).to.be.below(100)
                    console.log(jsonData[i].id)
                }

            })
    }
}

我使用以下内容输出到控制台以及测试 window

pm.test(pm.info.requestName + " - Auth Successful", ...);
console.info(pm.info.requestName + " - Auth Successful");