我正在尝试读取XLS文件,以便将来迭代一个断言。 但我甚至无法得到它的价值。
我的代码是:
import jxl.*
import jxl.write.*
def value1
def value2
def value3
//pull value from test suite properties
def RowSelector = testRunner.testCase.testSuite.getPropertyValue( "RowSelector" )
//Read Excel
Workbook wb = Workbook.getWorkbook(new File("C:\\groovy\\excel-file.xls"))
log.info(RowSelector)
value1 = wb.getSheet(0).getCell(0, RowSelector).getContents() //cell A1
testRunner.testCase.testSuite.setPropertyValue( "TestSuitevalue1", value1 )
log.info("Value1 Is: " + value1)
但错误会返回: Groovy error
我发现“RowSelector”变量为null。也许这就是问题所在,但我无法解决这个问题。
Obs。:我从以下代码中获取了此代码示例:https://community.smartbear.com/t5/SoapUI-Pro/Get-xls-data-in-loop-in-groovy-script/td-p/27864
答案 0 :(得分:0)
getCell(a,b)方法使用整数作为参数,而您从testSuite属性中获取的值是一个字符串。从属性表中获取值时,它是一个字符串。当您想要更新属性表中的字段时,请记住这一点,因为您必须将整数值更改回字符串。
更改行:
def RowSelector = testRunner.testCase.testSuite.getPropertyValue( "RowSelector" )
To This:
def RowSelector = testRunner.testCase.testSuite.getPropertyValue( "RowSelector" ).toInteger()
我将您正在使用的代码分解为各自的部分。我个人认为,在尝试找出错误发生的位置时,打破代码会有所帮助。
// IMPORT THE LIBRARIES WE NEED
import jxl.*
import jxl.write.*
//Get cell row number
def RowSelector = testRunner.testCase.testSuite.getPropertyValue( "RowSelector" ).toInteger()
//Get workbook
Workbook wb= Workbook.getWorkbook(new File("C:\\ExcelFile.xls"))
//Get worksheet
Sheet ws = wb.getSheet(0)
//Get cell
Cell a = ws.getCell(1, RowSelector) // getCell(column,row)
//Close workbook
workbook.close()
//Asign value of cell to variable
A = a.getContents()
log.info A