如何从 excel 获取整数值并存储在 Soap UI 属性步骤中

How to get Integer value from excel and store in Soap UI properties step

我在 excel 中有一个数据保存数值,当我将相同的值从 Excel 发送到 Soap UI 属性时,它的值被转换成如下所示的字符串:

在Excel中: 数据列的值为 200 在 Soap UI 属性中: 数据字段的值正在更改为 200.0

任何人都可以帮助我在 Soap UI 属性中获得相同的数值吗?

FileInputStream fis = new FileInputSTream("Excel File Location");
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet Sheet = new XSSFSheet("SheetName");
int totalRows = sheet.getPhysicalNumberOfRows();
testRunner.testCase.SetPropertyvalue("totalRows",totalRows.toString())
def int totalcolumn = sheet.getrow(0).getLastCellNum();
def columns = []
def data = []
def rowIndex = testrunner.testCase.getPropertyValue("RowIndex").toInteger();
if(rowIndex<totalRows)
{

    for(int i = 0;i<totalcolumn;i++)
    {

        colData = sheet.getRow(0).getCell(i).toString();
        propdataarray.add(colData)

        testData = sheet.getRow(rowIndex).getCell(i).toString();
        dataArray.add(testData);
        testRunner.testCase.getTestStepByName("Properties").setPropertyValue(columns.get[i],data.get[i]) 

        } 
    }



正如 Axel Richter 所说,使用 DataFormatter.formatCellValue 从源中更正值。或者你可以使用一个抽象 script ,它与 Groovy 一起工作得很好,可以为你处理。

如您所说,SoapUI 仅将字符串用于 属性 值。如果你想在receiving/use这边更正它,你可以使用这个:

def propVal = '200.0'

assert propVal instanceof java.lang.String

println propVal.toFloat().toInteger()
assert propVal.toFloat().toInteger() instanceof java.lang.Integer

通常最好在源代码中更正格式(在将其存储到 属性 之前)。