Redeemed1
Redeemed1

Reputation: 4010

How to Transfer a JSON value from a REST POST Response to a REST Get Request in SOAPUI

I have a REST service which I am testing with SoapUI. The first step in my TestSuite returns the following Response (Json):

{   
  "mtMessageId": 52003685,   
  "status":    
  {
     "value": 0,
     "code": "OK",
     "text": "Text message submitted"   
  },   
  "custMessageId": 123,   
  "custMessageRef": null
}

I want to 'Transfer' the value from the mtMessageId into the HTTP Get Request in the next step.

The request is formatted like "/SMS/{id}"

How do I transfer the value into the Request?

Upvotes: 0

Views: 1960

Answers (1)

albciff
albciff

Reputation: 18507

First of all you have to set the resource of your get method in your request with a property for example using /SMS/${#TestCase#id} in order to retrieve it from the first request.

enter image description here

Then add a groovy script testStep between your requests. An use the follow code to get the id from the json response of the first request and set as a property for the second request.

import groovy.json.*

// get the response from the first request using its name
def response = context.expand('${Request 1#Response}')
// parse it
def json = new JsonSlurper().parseText(response)
log.info json.mtMessageId
// get the json value an set it as property in testCase
context.testCase.setPropertyValue("id",json.mtMessageId.toString())

Note that you can use property transfer testStep to get the value from your request and set it as a property, however since SOAPUI converts all to xml I prefer to use a groovy script to work json.

Hope it helps,

Upvotes: 1

Related Questions