将System.out.println替换为groovy soapui类外的变量
我有下面来自git的代码,它在eclipse中100%工作。它在控制台上将excel文件转换成Xml格式。当我将其复制/粘贴到SOAPUIGroovy脚本并点击play时,我没有看到任何事情发生。我尝试用将System.out.println替换为groovy soapui类外的变量,groovy,soapui,Groovy,Soapui,我有下面来自git的代码,它在eclipse中100%工作。它在控制台上将excel文件转换成Xml格式。当我将其复制/粘贴到SOAPUIGroovy脚本并点击play时,我没有看到任何事情发生。我尝试用log.info替换println,但没有效果,因此我尝试将xml返回到变量中,但我不知道如何执行此操作,因为它看起来需要在类-->之外发生,我不清楚如何将信息从main获取到testCase属性。我还尝试使用testRunner变量从main和class内部作为getter和setter,但是
log.info
替换println
,但没有效果,因此我尝试将xml返回到变量中,但我不知道如何执行此操作,因为它看起来需要在类-->之外发生,我不清楚如何将信息从main
获取到testCase属性。我还尝试使用testRunner
变量从main
和class
内部作为getter和setter,但是…错误、错误和更多错误lol
谢谢你的反馈
import org.apache.poi.ss.usermodel.*
import org.apache.poi.hssf.usermodel.*
import org.apache.poi.xssf.usermodel.*
import org.apache.poi.ss.util.*
import org.apache.poi.ss.usermodel.*
import java.io.*
class GroovyExcelParser {
//http://poi.apache.org/spreadsheet/quick-guide.html#Iterator
def parse(path) {
InputStream inp = new FileInputStream(path)
Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);
Iterator<Row> rowIt = sheet.rowIterator()
Row row = rowIt.next()
def headers = getRowData(row)
def rows = []
while(rowIt.hasNext()) {
row = rowIt.next()
rows << getRowData(row)
}
[headers, rows]
}
def getRowData(Row row) {
def data = []
for (Cell cell : row) {
getValue(row, cell, data)
}
data
}
def getRowReference(Row row, Cell cell) {
def rowIndex = row.getRowNum()
def colIndex = cell.getColumnIndex()
CellReference ref = new CellReference(rowIndex, colIndex)
ref.getRichStringCellValue().getString()
}
def getValue(Row row, Cell cell, List data) {
def rowIndex = row.getRowNum()
def colIndex = cell.getColumnIndex()
def value = ""
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
value = cell.getRichStringCellValue().getString();
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
value = cell.getDateCellValue();
} else {
value = cell.getNumericCellValue().toInteger();
}
break;
case Cell.CELL_TYPE_BOOLEAN:
value = cell.getBooleanCellValue();
break;
case Cell.CELL_TYPE_FORMULA:
value = cell.getCellFormula();
break;
default:
value = ""
}
data[colIndex] = value
data
}
def toXml(header, row) {
def obj = "<object>\n"
row.eachWithIndex { datum, i ->
def headerName = header[i]
obj += "\t<$headerName>$datum</$headerName>\n"
}
obj += "</object>"
}
public static void main(String[]args) {
def filename = 'RaNdOmxlsxFile.xslx'
GroovyExcelParser parser = new GroovyExcelParser()
def (headers, rows) = parser.parse(filename)
System.out.println 'Headers'
System.out.println '------------------'
headers.each { header ->
System.out.println header
}
System.out.println "\n"
System.out.println 'Rows'
System.out.println '------------------'
rows.each { row ->
System.out.println parser.toXml(headers, row)
}
}
}
import org.apache.poi.ss.usermodel*
导入org.apache.poi.hssf.usermodel*
导入org.apache.poi.xssf.usermodel*
导入org.apache.poi.ss.util*
导入org.apache.poi.ss.usermodel*
导入java.io*
类GroovyExcelParser{
//http://poi.apache.org/spreadsheet/quick-guide.html#Iterator
def解析(路径){
InputStream Input=新文件InputStream(路径)
工作簿wb=WorkbookFactory.create(inp);
Sheet Sheet=wb.getSheetAt(0);
迭代器rowIt=sheet.rowIterator()
Row=rowIt.next()
def headers=getRowData(行)
def行=[]
while(rowIt.hasNext()){
row=rowIt.next()
排
def headerName=标题[i]
obj+=“\t$datum\n”
}
obj+=“”
}
公共静态void main(字符串[]args){
def filename='RaNdOmxlsxFile.xslx'
GroovyExcelParser parser=新的GroovyExcelParser()
def(头,行)=parser.parse(文件名)
System.out.println“头”
System.out.println'----------------------'
headers.each{header->
System.out.println头文件
}
System.out.println“\n”
System.out.println“行”
System.out.println'----------------------'
rows.each{row->
System.out.println parser.toXml(标题,行)
}
}
}
基本上可以通过多种方式实现相同的效果:
log.info
替换System.out.println()
,并从类中删除main方法。然后运行groovy脚本