mishka's avatar
mishka
New Contributor
9 years ago
Status:
New Idea

Generic assertion.

 

It will be nice to have the option to set generic assertion for all the API request in the project , or to select some of the APEs should have the same assertion .

 

 

meaning of generic assertion - The user will create the assertion and will have the option to set it the over API requests.


Motivation - I have hundreds of API requests, more then have of them have the same assertion ,so i need to copy paste them one by one.

  • dgossner's avatar
    dgossner
    New Contributor

    Being able to apply a single assertion over mutliple steps, cases, suites would be helpful especially if it changes so you only have to update one spot instead of each test step.

  • I like the idea!

     

    I will bring this up with our product owners.

     

    Kind regards,

    Manne, Ready! API Developer

  • nmrao's avatar
    nmrao
    Champion Level 3

    MFagerlind, mishka,

     

    I believe that the Event's feature be used to do the same even now, TestRunListener.afterTestStep?

     

    User even can run the required assertion based on certain conditions such as request type or operation / method type / response matching certain xsd etc.

  • Yes, that's a workaround you could try, since we haven't implemented the generic assertion yet, although you have to know a bit about scripting then, of course.

  • mishka's avatar
    mishka
    New Contributor

    hi,

     

    Can you please post example of such script?

  • Hi Mishka,

     

    Just to be clear, the script below won't work like an assertion, in that it won't add an assertion result in the GUI, etc, but it will allow you to fail a test case and will log the reason in the script log. This may not be enough for you, and it's clearly not a substitute for the full feature - thanks again for the suggestion!

     

    def testStep = testStepResult.testStep
    def responseContent = testStep.testRequest.assertableContent
    if (responseContent.length() < 100000) {
    def failureMessage = "Response content to short - test step: $testStep.name"
    log.error(failureMessage)
    testRunner.fail(failureMessage)
    }

     

     

     

    Regards,

    Manne

     

     

  • Maybe it would be better if we can add assertions on the Project dashboard,

     

    Go to Project Dashboard, Browse project, select your API, select a request, run it, add assertions.

     

    Now whenever you pick this REST request to be added to testcase, it  already has the assertions you put on it.