-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