have a problem with this test.
I want get a consol.log
when the installment value in my JSON is below 100(when test FAIL
).
But as result, I have a PASS
and FAIL
in test results, that's work but I can't get any info in consol.log
. I don't know why my code doesn't work. I thought else if
give me the expected result. But still, it doesn't work well.
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)}
});
}}
CodePudding user response:
pm.expect doesn't return anything , it just throws an Exception (Error) . So you cannot use it in if condition which expects a boolean
Try any of :
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)
});
}
}
Or :
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)
}
})
}
}