Excelから動的に値を読み込み、SOAP UIからWebサービスを呼び出し、応答タグ間の値をExcelに書き込むためのコードを書きました。示されている私のWebサービスからのWebサービスの応答とGroovyスクリプトでのExcelへの書き込み(SOAPを使用)
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に書き込むか、データを抽出して、それを目的のフォーマットに作成していますか?あなたの持つ難しさはどこですか? Imageではなく、質問を編集してレスポンスXMLを貼り付けることができますか? – Rao
私は、必要なレスポンスのタグからデータを抽出し、目的のフォーマットで作成する際に問題に直面しています。 – Inevitable