have a problem with this test.
I want get a console.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 works but I can't get any info in console.log
. I don't know why my code doesn't work. I thought else if
would give me the expected result. But still, it doesn't work well.
var jsonData = JSON.parse(responseBody)
for (var i = 0; i < jsonData.length; i++) {
for(var j = 0; j < jsonData[i].products.length; j++) {
pm.test("Installment > 100", function() {
if (pm.expect(jsonData[i].products[j].installment).to.be.above(100))
{
// Sucess case...
}
else if (pm.expect(jsonData[i].products[j].installment).to.be.below(100))
{
/// Failure case...
console.log(jsonData[i].id)
}
});
}
}
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)
}
})
}
}