Search code examples
javascriptjsonfor-looptestingpostman

How to get console log when the test fails POSTMAN


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)
      }
    });
    
  }
}

Solution

  • 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)
                    }
    
                })
        }
    }