Forum Discussion
Here is the groovy script:
import groovy.json.JsonSlurper def response = '''{ "summary":[ { "id":"26590924327313990", "name":"Summary-1", "state":"ACTIVE", "runTimestamp":1473138585467, "scheduledTimestamp":1473138585507, "createdTimestamp":1473138585507, "test":[ { "id":"15473842955298105", "name":"test-1", "createdTimestamp":1473138585467, "runTimestamp":1473138585467, "status":{ "Pass":10, "Fail":20 } } ] }, { "id":"30493603067815445", "name":"Summary-2", "state":"ACTIVE", "runTimestamp":1473138254517, "scheduledTimestamp":1473138254520, "createdTimestamp":1473138254520, "test":[ { "id":"6780837264054677", "name":"Test -2 ", "createdTimestamp":1473138254517, "runTimestamp":1473138254517, "status":{ "Pass":1, "Fail":2 } } ] } ] }''' def summary = new JsonSlurper().parseText(response).summary def expectedIds = [15473842955298105, 6780837264054677] def actualIds = [] summary.each { summaryItem -> summaryItem.test.each { testItem -> actualIds << testItem.id } } log.info actualIds assert actualIds.sort() == expectedIds.sort(), "Test Ids are not matching"
I wanted to use those extracted ids into another REST request by adding datasource loop. That's why wanted to generate those in data source and use them in another REST request.
I am not sure how i can set data source rows with extracted ids using groovy script of data source. Could you please help?
- nmrao8 years agoChampion Level 3
Can't you use data source of groovy type?
- sumeetb8 years agoOccasional Contributor
I can but i am not able to set the property variable named as "id" with multiple rows. Please see below script.
import net.sf.*
import net.sf.json.*
import net.sf.json.groovy.*
def response = context.expand('${Get Summary#Response}' )
def jsonSlurper = new JsonSlurper().parseText(response)
for(String id:jsonSlurper.summary.test.id){result["id"]=id
}
The result i get is property variable "id" is getting set with last value only (with this only 6780837264054677)
- nmrao8 years agoChampion Level 3Can you show test case structure?