Ask a Question

How to combine 2 XML requests

Mis3
Frequent Contributor

How to combine 2 XML requests

Is it possible to combine 2 XML requests with the same end point?

Execute Request 2 only if response status of Request 1 is "0".

 

Request 1:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://www.net2.com/mega/view/soap/types">
<soapenv:Header/>
<soapenv:Body>
<typ:SearchRequest limit="1">
<typ:searchParams view="enum-dns.zones.enum.e164enum_net.data" key="number='3133140001' rrid=0"/>
</typ:SearchRequest>
</soapenv:Body>
</soapenv:Envelope>

 

Request 2:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://www.net2.com/mega/view/soap/types">
<soapenv:Header/>
<soapenv:Body>
<typ:GetRequest view="enum-dns.zones.enum.e164enum_net.data" key="number='3133140001' rrid=0"/>
</soapenv:Body>
</soapenv:Envelope>

 

 

 

 

3 REPLIES 3
ChrisAdams
Champion Level 2

Hi,

I'd use a Groovy step after Request 1 to check the value of interest, if it's there, I'd let the Request 2 step run.  If it's not there, I'd 'jump' over request 2 to another step.

 

The below is some pseudo code to illustrate the Groovy Step to check the value from Request 1.

def requestOneValue = context.expand( '${StepName#Response}' );

if (requestOneValue == "0") {

    // Do nothing here and let the test continue onto Request 2

} else {
    // We don't have the value, so don't run Request 2.
    log.info("Skipping Request 2");
    testRunner.gotoStepByName("Name of first step AFTER request 2");
		
}

 

 

Mis3
Frequent Contributor

Yes, Groovy would work.   In fact, I already created a Groovy script to include these 2 and other steps.   I am hoping there is a way to combine the 2 requests in one API without Groovy.

I do not know this context.expand function.  I will read up on this. 

 

ChrisAdams
Champion Level 2

Hi, 

 

I'm really not understanding what you're trying to achieve.

 


@Mis3 wrote:

Is it possible to combine 2 XML requests with the same end point?

Execute Request 2 only if response status of Request 1 is "0".

 


You could combine the two payloads to create a single one?  Are you expecting the backend to process payload one and then process payload two based on response

 

Or do you want to combine both payloads into a single test step, and SoapUI only uses the first part; gets a response and then decides to send the second part?

cancel
Showing results for 
Search instead for 
Did you mean: