How to assert array response
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How to assert array response
[
{
"id" : "1234",
"name":"xyz"
},
"jsonfield1" : {
"jsonfield" : "xyz"
}
}
]
I got this response of my API. I dont know how to assert array.
Generally, I store in hashmap
def response_string = messageExchange.response.responseContent
def response_slurper = new JsonSlurper()
def response_hashmap = response_slurper.parseText(response_string)
assert response_hashmap.id =="123"
Its failing here since its an array.
Looking for a snippet.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I would supply a snippet, but i cannot validate the json you presented in your sample... the json editors I dropped your json into all returned a parse error. The json sluper in SoapUI could not parse either. Did you hand code the example or cut and paste directly from API response? I cannot reproduce with your supplied sample.
Regards.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Todd,
This is the correct JSON
[{
"id": "1234",
"name": "xyz",
"jsonfield1": {
"jsonfield": "xyz"
}
}]
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello henil_shah,
I think just adding an element number of the array/list to the assertion will work for you. Groovy script sample below.
Regards
import groovy.json.*; def jsonSampletxt = ''' [{ "id": "1234", "name": "xyz", "jsonfield1": { "jsonfield": "xyz" } }] '''; def jsonSampleobj = new JsonSlurper().parseText(jsonSampletxt); jsonSampleobj.each { item -> log.info 'item=' + item.toString(); }; log.info 'jsonSampleobj.size()= ' + jsonSampleobj.size(); log.info ' '; log.info 'jsonSampleobj.id=' + jsonSampleobj.id; log.info 'jsonSampleobj.id[0]=' + jsonSampleobj.id[0]; log.info 'jsonSampleobj.name=' + jsonSampleobj.name; log.info 'jsonSampleobj.name[0]=' + jsonSampleobj.name[0]; assert jsonSampleobj.id[0] == '1234', "Element 0 of .id Array/List should be equal to '1234'"; assert jsonSampleobj.name[0] == 'xyz', "Element 0 of .name Array/List should be equal to 'xyz'"; log.info 'Test Step "' + testRunner.runContext.currentStep.name + '" done...';
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello everyone,
@TNeuschwanger thanks for the assistance, it is much appreciated!
@henil_shah, have you had a chance to try the solution that Todd provided? Does it work for you?
We are looking forward to hearing from you!
Olga Terentieva
SmartBear Assistant Community Manager
