如果我将getCell(0,0)放在 String reqTagName = sheet1.getCell(0,0).getContents() 中用于下面的代码,那么它只会执行工作表中的第一个值。但是,如果我为相同的 String reqTagName = sheet1.getCell(0,0).getContents()放置getCell(0,Row)并将 Excel 工作表中的值从数字更改为字符串,那么它会按预期工作。但是当我将数字作为工作表中的请求值传递时,它不起作用。我尝试将数据类型从 String 更改为任何其他类型,但仍然无法正常工作....
我已经粘贴了下面的代码:
import com.eviware.soapui.support.XmlHolder
import java.io.File
import java.io.IOException
import jxl.*
import jxl.read.biff.BiffException
import jxl.write.*
import jxl.write.Label
log.info("Testing Started")
def reqOperationName = "getInsuranceDetails_1_FTC_005"
def inputDataFileName = "D:/SOAP UI Pro/MPI.xls"
def inputDataSheetName = "MPI"
Workbook workbook = Workbook.getWorkbook(new File(inputDataFileName))
Sheet sheet1 = workbook.getSheet(inputDataSheetName)
def responsesCount = 0
String[] Responses = null
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
String xmlResponse = reqOperationName+"#Request"
def reqholder = groovyUtils.getXmlHolder(xmlResponse)
try{
rowcount = sheet1.getRows()
colcount = sheet1.getColumns()
Responses = new String[rowcount-1]
responsesCount = rowcount-1
for(Row in 1..rowcount-1){
String reqTagName = sheet1.getCell(0,Row).getContents()
log.info reqTagName
def TagCount = reqholder["count(//*:"+reqTagName+")"]
if(TagCount!=0){
String reqTagValue = sheet1.getCell(0,Row).getContents()
reqholder.setNodeValue("//*:"+reqTagName, reqTagValue)
reqholder.updateProperty()
}
//test the request
testRunner.runTestStepByName(reqOperationName)
reqholder = groovyUtils.getXmlHolder(reqOperationName+"#Response")
Responses[Row-1] = reqholder.getPrettyXml().toString()
log.info Responses[Row-1]
}
}
catch (Exception e) {log.info(e)}
finally{
workbook.close()
}
Workbook existingWorkbook = Workbook.getWorkbook(new File(inputDataFileName));
WritableWorkbook workbookCopy = Workbook.createWorkbook(new File(inputDataFileName), existingWorkbook);
try
{
WritableSheet sheetToEdit = workbookCopy.getSheet("MPI");
WritableCell cell;
for (int i =1;i<Responses.size();i++)
{
def resholder = groovyUtils.getXmlHolder(Responses[i])
resTagValue1= resholder.getNodeValue("//*:productID")
Label l = new Label(2, i, resTagValue1.toString());
cell = (WritableCell) l;
sheetToEdit.addCell(cell);
resTagValue2= resholder.getNodeValue("//*:accountNumber")
Label m = new Label(3, i, resTagValue2.toString());
cell = (WritableCell) m;
sheetToEdit.addCell(cell);
resTagValue3= resholder.getNodeValue("//*:insuranceCategory")
Label n = new Label(4, i, resTagValue3.toString());
cell = (WritableCell) n;
sheetToEdit.addCell(cell);
resTagValue4= resholder.getNodeValue("//*:imei")
Label o = new Label(5, i, resTagValue4.toString());
cell = (WritableCell) o;
sheetToEdit.addCell(cell);
resTagValue5= resholder.getNodeValue("//*:handsetMake")
Label p = new Label(6, i, resTagValue5.toString());
cell = (WritableCell) p;
sheetToEdit.addCell(cell);
resTagValue6= resholder.getNodeValue("//*:handsetModel")
Label q = new Label(7, i, resTagValue6.toString());
cell = (WritableCell) q;
sheetToEdit.addCell(cell);
resTagValue7= resholder.getNodeValue("//*:insurancePolicyName")
Label r = new Label(8, i, resTagValue7.toString());
cell = (WritableCell) r;
sheetToEdit.addCell(cell);
resTagValue8= resholder.getNodeValue("//*:insuranceStartTimestamp")
Label s = new Label(9, i, resTagValue8.toString());
cell = (WritableCell) s;
sheetToEdit.addCell(cell);
resTagValue9= resholder.getNodeValue("//*:insuranceEndTimestamp")
Label t = new Label(10, i, resTagValue9.toString());
cell = (WritableCell) t;
sheetToEdit.addCell(cell);
}
}
catch (Exception e) {log.info(e)}
finally{
workbookCopy.write();
workbookCopy.close();
existingWorkbook.close();
}
log.info("Testing Over")
我知道错误出在 Excel 表上。是否应该对代码或 Excel 表的某些实现进行任何更改?
任何帮助将不胜感激。
谢谢,
实施更改后的编辑代码
import com.eviware.soapui.support.XmlHolder
import java.io.File
import java.io.IOException
import jxl.*
import jxl.read.biff.BiffException
import jxl.write.*
import jxl.write.Label
log.info("Testing Started")
def reqOperationName = "getInsuranceDetails_1_FTC_005"
def inputDataFileName = "D:/SOAP UI Pro/MPI.xls"
def inputDataSheetName = "MPI"
Workbook workbook = Workbook.getWorkbook(new File(inputDataFileName))
Sheet sheet1 = workbook.getSheet(inputDataSheetName)
def responsesCount = 0
String[] Responses = null
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
String xmlResponse = reqOperationName+"#Request"
def reqholder = groovyUtils.getXmlHolder(xmlResponse)
try{
rowcount = sheet1.getRows()
colcount = sheet1.getColumns()
Responses = new String[rowcount-1]
responsesCount = rowcount-1
for(Row in 1..rowcount-1){
String reqTagName = sheet1.getCell(0,0).getContents()
log.info reqTagName
def TagCount = reqholder["count(//*:"+reqTagName+")"]
log.info reqholder["//*:"+reqTagName]
if(TagCount!=0){
String reqTagValue = sheet1.getCell(0,Row).getContents()
reqholder.setNodeValue("//*:"+reqTagName, reqTagValue)
reqholder.updateProperty()
}
//test the request
testRunner.runTestStepByName(reqOperationName)
reqholder = groovyUtils.getXmlHolder(reqOperationName+"#Response")
Responses[Row-1] = reqholder.getPrettyXml().toString()
log.info Responses[Row-1]
}
}
catch (Exception e) {log.info(e)}
finally{
workbook.close()
}
Workbook existingWorkbook = Workbook.getWorkbook(new File(inputDataFileName));
WritableWorkbook workbookCopy = Workbook.createWorkbook(new File(inputDataFileName), existingWorkbook);
try
{
WritableSheet sheetToEdit = workbookCopy.getSheet("MPI");
WritableCell cell;
for (int i =1;i<Responses.size();i++)
{
def resholder = groovyUtils.getXmlHolder(Responses[i])
resTagValue1= resholder.getNodeValue("//*:productID")
Label l = new Label(2, i, resTagValue1.toString());
cell = (WritableCell) l;
sheetToEdit.addCell(cell);
resTagValue2= resholder.getNodeValue("//*:accountNumber")
Label m = new Label(3, i, resTagValue2.toString());
cell = (WritableCell) m;
sheetToEdit.addCell(cell);
resTagValue3= resholder.getNodeValue("//*:insuranceCategory")
Label n = new Label(4, i, resTagValue3.toString());
cell = (WritableCell) n;
sheetToEdit.addCell(cell);
resTagValue4= resholder.getNodeValue("//*:imei")
Label o = new Label(5, i, resTagValue4.toString());
cell = (WritableCell) o;
sheetToEdit.addCell(cell);
resTagValue5= resholder.getNodeValue("//*:handsetMake")
Label p = new Label(6, i, resTagValue5.toString());
cell = (WritableCell) p;
sheetToEdit.addCell(cell);
resTagValue6= resholder.getNodeValue("//*:handsetModel")
Label q = new Label(7, i, resTagValue6.toString());
cell = (WritableCell) q;
sheetToEdit.addCell(cell);
resTagValue7= resholder.getNodeValue("//*:insurancePolicyName")
Label r = new Label(8, i, resTagValue7.toString());
cell = (WritableCell) r;
sheetToEdit.addCell(cell);
resTagValue8= resholder.getNodeValue("//*:insuranceStartTimestamp")
Label s = new Label(9, i, resTagValue8.toString());
cell = (WritableCell) s;
sheetToEdit.addCell(cell);
resTagValue9= resholder.getNodeValue("//*:insuranceEndTimestamp")
Label t = new Label(10, i, resTagValue9.toString());
cell = (WritableCell) t;
sheetToEdit.addCell(cell);
}
}
catch (Exception e) {log.info(e)}
finally{
workbookCopy.write();
workbookCopy.close();
existingWorkbook.close();
}
log.info("Testing Over")
在输出日志中,我可以看到它占用了第一个 MSISDN,但之后它占用了一些垃圾字段。
下面提到了每次执行的日志输出。
12 月 11 日星期一 16:44:18 IST 2017:信息:447803000269
12 月 11 日星期一 16:44:18 IST 2017:信息:[Ljava.lang.String;@ 8ddf43
12 月 11 日星期一 16:44:18 IST 2017:信息:[Ljava.lang.String;@ 7bd8d3
2017 年 12 月 11 日星期一 16:44:19:信息:[Ljava.lang.String;@ 12dda68
试试下面的代码更改,让我知道它是否有效:
import com.eviware.soapui.support.XmlHolder
import java.io.File
import java.io.IOException
import jxl.*
import jxl.read.biff.BiffException
import jxl.write.*
import jxl.write.Label
log.info("Testing Started")
def reqOperationName = "getInsuranceDetails_1_FTC_005"
def inputDataFileName = "D:/SOAP UI Pro/MPI.xls"
def inputDataSheetName = "MPI"
Workbook workbook = Workbook.getWorkbook(new File(inputDataFileName))
Sheet sheet1 = workbook.getSheet(inputDataSheetName)
def myList = new ArrayList<String>();
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
String xmlResponse = reqOperationName+"#Request"
def reqholder = groovyUtils.getXmlHolder(xmlResponse)
try{
rowcount = sheet1.getRows()
colcount = sheet1.getColumns()
for(Row in 1..rowcount-1){
String reqTagName = sheet1.getCell(0,0).getContents()
def TagCount = reqholder["count(//*:"+reqTagName+")"]
if(TagCount!=0){
String reqTagValue = sheet1.getCell(0,Row).getContents()
if(reqTagValue!=null && !reqTagValue.isEmpty() && reqTagValue!="")
{
reqholder = groovyUtils.getXmlHolder(xmlResponse)
log.info "extracted value : " + reqTagValue
reqholder.setNodeValue("//*:"+reqTagName, reqTagValue)
reqholder.updateProperty()
log.info "node value : " + reqholder.getNodeValue("//*:"+reqTagName)
//test the request
testRunner.runTestStepByName(reqOperationName)
reqholder = groovyUtils.getXmlHolder(reqOperationName+"#Response")
myList.add(reqholder.getPrettyXml().toString())
log.info myList[Row-1]
}
}
}
}
catch (Exception e) {log.info(e)}
finally{
workbook.close()
}
Workbook existingWorkbook = Workbook.getWorkbook(new File(inputDataFileName));
WritableWorkbook workbookCopy = Workbook.createWorkbook(new File(inputDataFileName), existingWorkbook);
try
{
WritableSheet sheetToEdit = workbookCopy.getSheet(inputDataSheetName);
WritableCell cell;
for (int i =1;i<myList.size();i++)
{
def resholder = groovyUtils.getXmlHolder(myList[i])
resTagValue1= resholder.getNodeValue("//*:productID")
Label l = new Label(2, i+1, resTagValue1.toString());
cell = (WritableCell) l;
sheetToEdit.addCell(cell);
resTagValue2= resholder.getNodeValue("//*:accountNumber")
Label m = new Label(3, i+1, resTagValue2.toString());
cell = (WritableCell) m;
sheetToEdit.addCell(cell);
resTagValue3= resholder.getNodeValue("//*:insuranceCategory")
Label n = new Label(4, i+1, resTagValue3.toString());
cell = (WritableCell) n;
sheetToEdit.addCell(cell);
resTagValue4= resholder.getNodeValue("//*:imei")
Label o = new Label(5, i+1, resTagValue4.toString());
cell = (WritableCell) o;
sheetToEdit.addCell(cell);
resTagValue5= resholder.getNodeValue("//*:handsetMake")
Label p = new Label(6, i+1, resTagValue5.toString());
cell = (WritableCell) p;
sheetToEdit.addCell(cell);
resTagValue6= resholder.getNodeValue("//*:handsetModel")
Label q = new Label(7, i+1, resTagValue6.toString());
cell = (WritableCell) q;
sheetToEdit.addCell(cell);
resTagValue7= resholder.getNodeValue("//*:insurancePolicyName")
Label r = new Label(8, i+1, resTagValue7.toString());
cell = (WritableCell) r;
sheetToEdit.addCell(cell);
resTagValue8= resholder.getNodeValue("//*:insuranceStartTimestamp")
Label s = new Label(9, i+1, resTagValue8.toString());
cell = (WritableCell) s;
sheetToEdit.addCell(cell);
resTagValue9= resholder.getNodeValue("//*:insuranceEndTimestamp")
Label t = new Label(10, i+1, resTagValue9.toString());
cell = (WritableCell) t;
sheetToEdit.addCell(cell);
}
}
catch (Exception e) {log.info(e)}
finally{
workbookCopy.write();
workbookCopy.close();
existingWorkbook.close();
}
log.info("Testing Over")
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句