-1
我已经编写了下面的代码,用于从Excel动态读取值,从SOAP UI调用Web服务并将响应标记之间的值写入Excel。从我的Web服务,如图阅读Web服务响应并使用SOAP在Groovy脚本中写入Excel
import jxl.*;
import jxl.read.biff.BiffException;
import jxl.write.*;
def reqOperationName = "TestRequest";
def inputDataFileName = "Automate/SampleData.xls";
def inputDataSheetName = "sendSampleData";
log.info("Service Testing Started")
Workbook workbook = Workbook.getWorkbook(new File(inputDataFileName));
WritableWorkbook copy = Workbook.createWorkbook(new File(inputDataFileName),workbook);
WritableSheet sheetl = copy.getSheet(inputDataSheetName);
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);
def reqholder = groovyUtils.getXmlHolder(reqOperationName+"#Request");
try{
rowcount = sheetl.getRows();
colcount = sheetl.getColumns();
for(Row in 1..rowcount-1){
for(Col in 2..colcount-1){
String reqTagName = sheetl.getCell(Col,0).getContents()
def TagCount = reqholder["count(//*:"+reqTagName+")"]
if(TagCount!=0){
String reqTagValue = sheetl.getCell(Col,Row).getContents()
reqholder.setNodeValue("//*:"+reqTagName, reqTagValue)
reqholder.updateProperty()
}
}
// To Run Test Request
testRunner.runTestStepByName(reqOperationName)
//Read Response XML
def resholder = groovyUtils.getXmlHolder(reqOperationName+"#Response")
resTagValue1 = resholder.getNodeValues("//*:message")
//Write Response value to Excel Sheet
Label resValue1 = new Label(8,Row,java.lang.String resTagValue1);
sheetl.addCell(resValue1);
}// Row loop Ends Here
}catch (Exception e) {log.info(e) }
finally{
copy.write();
copy.close();
workbook.close();
}
log.info("Service Testing Finished")
响应如下: -
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<Response xmlns="http://eh.dummy.com">
<sets xmlns="">
<sets_InnerSet xmlns="http://eh.dummy.com">
<visibleSetsInnerSet>
<set_cd>QS1</set_cd>
</visibleSetsInnerSet>
<visibleSetsInnerSet>
<set_cd>QS8</set_cd>
</visibleSetsInnerSet>
<visibleSetsInnerSet>
<set_cd>QS9</set_cd>
</visibleSetsInnerSet>
</sets_InnerSet>
</sets>
<responseCode xmlns="">success</responseCode>
</Response>
</soap:Body>
</soap:Envelope>
能否请你让我知道我可以从set_CD标签读取值(QS1/QS8/QS9)和写入到Excel文件在一个单元格中为QS1,QS8,QS9。
问题写入excel或提取数据并将其创建为所需的格式?你有什么困难?而不是图像,你可以编辑问题并粘贴响应XML? – Rao
我在从所需的响应标记提取数据并以所需格式创建数据时遇到了问题。 – Inevitable