Forum Discussion

martonjurak's avatar
martonjurak
Occasional Contributor
7 years ago

JDBC script assertion

Hi,

I have a jdbc request where the result is the following:

<Results>
   <ResultSet fetchSize="10">
      <Row rowNumber="1">
         <STATUS_ID/>
      </Row>
      <Row rowNumber="2">
         <STATUS_ID>20</STATUS_ID>
      </Row>
   </ResultSet>
</Results>

Can somebody help me to create an assertion where only value 20 and null is accepted all others are failed?

thanks

  • Below script assertion should help you:

     

    /**
    * Script Assertion for the JDBC Request Test step
    **/
    assert context.response, 'Response is empty or null' def xml = new XmlSlurper().parseText(context.response) def validList = ['20', ''] def statusIds = xml.'**'.findAll {'STATUS_ID' == it.name() }*.text() assert statusIds.every{ it in validList}, 'Invalid values present in the response for Status Ids'
  • nmrao's avatar
    nmrao
    Champion Level 3

    Below script assertion should help you:

     

    /**
    * Script Assertion for the JDBC Request Test step
    **/
    assert context.response, 'Response is empty or null' def xml = new XmlSlurper().parseText(context.response) def validList = ['20', ''] def statusIds = xml.'**'.findAll {'STATUS_ID' == it.name() }*.text() assert statusIds.every{ it in validList}, 'Invalid values present in the response for Status Ids'
      • martonjurak's avatar
        martonjurak
        Occasional Contributor

        Hi Rao,

         

        Thank you for the answer.

        Actually I changed my SQL query to get any results only when it is not 20 or null, so in that case I will assert the exists result.

        I am sure I will need your assertion in the next weeks so I will try it.

         

        Br

        Marton