sayantan12
13 years agoNew Contributor
need help in capturing response from XML using groovy
Hi folks,
I a novice in groovy. I have been trying to capture the response xml value in groovy script, but its not displaying properly. appriciate any help:
here is my request:
Name:ConversionRate - Request 1
Request:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://www.webserviceX.NET/">
<soap:Header/>
<soap:Body>
<web:ConversionRate>
<web:FromCurrency>SEK</web:FromCurrency>
<web:ToCurrency>DKK</web:ToCurrency>
</web:ConversionRate>
</soap:Body>
</soap:Envelope>
Response:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ConversionRateResponse xmlns="http://www.webserviceX.NET/">
<ConversionRateResult>5.7187</ConversionRateResult>
</ConversionRateResponse>
</soap:Body>
</soap:Envelope>
Below is the groovy script:
import java.io.File;
import com.eviware.soapui.support.*;
import java.util.*;
import jxl.*;
import java.lang.*;
//import com.eviware.soapui.model.iface.*;
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context );
def request = groovyUtils.getXmlHolder("ConversionRate - Request 1#Request");
def response = groovyUtils.getXmlHolder("ConversionRate - Request 1#Request");
def projectdir = context.expand('${#Global#PATH}');
Workbook workbook = Workbook.getWorkbook(new File("C:/Temp1.xls"));
Sheet sheet = workbook.getSheet("Sheet1");
rowcount = sheet.getRows();
colcount = sheet.getColumns();
def testCase = testRunner.getTestCase();
Name = testCase.getName();
for (tc_row in 0..2)
{
def a1 = sheet.getCell(0,tc_row);
String s1 = a1.getContents();
def a2 = sheet.getCell(1,tc_row);
String s2 = a2.getContents();
request.setNodeValue("//web:ConversionRate/web:FromCurrency", "${s1}");
request.setNodeValue("//web:ConversionRate/web:ToCurrency", "${s2}");
request.updateProperty();
log.info(s1);
log.info(s2)
log.info(response.getNodeValue("//ConversionRateResponse/ConversionRateResult"));
testRunner.runTestStepByName("ConversionRate - Request 1");
}
I a novice in groovy. I have been trying to capture the response xml value in groovy script, but its not displaying properly. appriciate any help:
here is my request:
Name:ConversionRate - Request 1
Request:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://www.webserviceX.NET/">
<soap:Header/>
<soap:Body>
<web:ConversionRate>
<web:FromCurrency>SEK</web:FromCurrency>
<web:ToCurrency>DKK</web:ToCurrency>
</web:ConversionRate>
</soap:Body>
</soap:Envelope>
Response:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ConversionRateResponse xmlns="http://www.webserviceX.NET/">
<ConversionRateResult>5.7187</ConversionRateResult>
</ConversionRateResponse>
</soap:Body>
</soap:Envelope>
Below is the groovy script:
import java.io.File;
import com.eviware.soapui.support.*;
import java.util.*;
import jxl.*;
import java.lang.*;
//import com.eviware.soapui.model.iface.*;
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context );
def request = groovyUtils.getXmlHolder("ConversionRate - Request 1#Request");
def response = groovyUtils.getXmlHolder("ConversionRate - Request 1#Request");
def projectdir = context.expand('${#Global#PATH}');
Workbook workbook = Workbook.getWorkbook(new File("C:/Temp1.xls"));
Sheet sheet = workbook.getSheet("Sheet1");
rowcount = sheet.getRows();
colcount = sheet.getColumns();
def testCase = testRunner.getTestCase();
Name = testCase.getName();
for (tc_row in 0..2)
{
def a1 = sheet.getCell(0,tc_row);
String s1 = a1.getContents();
def a2 = sheet.getCell(1,tc_row);
String s2 = a2.getContents();
request.setNodeValue("//web:ConversionRate/web:FromCurrency", "${s1}");
request.setNodeValue("//web:ConversionRate/web:ToCurrency", "${s2}");
request.updateProperty();
log.info(s1);
log.info(s2)
log.info(response.getNodeValue("//ConversionRateResponse/ConversionRateResult"));
testRunner.runTestStepByName("ConversionRate - Request 1");
}