Search code examples
groovyhttp-headerssoapuiassertions

How to fail a script assertion in SoapUI?


I'm trying to let a script assertion fail, when a variable has another value than defined. My goal: Mark the TestStep as red, if the TestStep will fail. Please note that I am using a script assertion for a TestStep - not a separate Groovy-Script TestStep. My script looks like this:

httpResponseHeader = messageExchange.responseHeaders
contentType = httpResponseHeader["Content-Type"]
log.info("Content-Type: " + contentType)

if (contentType != "[image/jpeg]"){
    log.info("ERROR! Response is not an image.")
    //Script Assertion should fail.
    //TestStep should be marked red.
} else {
    log.info("OK! ResponseType is an image.")
}

Is there any way, how to let the script assertion fail depending on a property? I've tried to use the getStatus() method, but this is only available for the testrunner object. Unfortunately the testRunner-object can not be used within a script assertion concerning this post: http://forum.soapui.org/viewtopic.php?f=2&t=2494#p9107


Solution

  • Need to assert so that test fails or passes automatically based on the condition.

    def httpResponseHeader = messageExchange.responseHeaders
    def contentType = httpResponseHeader["Content-Type"]
    log.info("Content-Type: " + contentType)
    assert contentType.get(0) == "image/jpeg","Content Type is not an image"
    

    EDIT: Earlier paid attention to how to throw error, assuming you have the rest in place. Now changed last line of code based on the input.