我使用以下代码将属性值从Excel文件设置为我的属性步骤,然后将其传递给测试用例。
当我运行Groovy代码时,excel的最后一个单元格中的值进入属性步骤。
请帮我正确设置属性。
import jxl.*
Workbook wb = Workbook.getWorkbook(new File("C:\\Users\\naraysa1\\Desktop\\Address_Doctor\\DataSource_Address_Validate\\Data_AddressValidate.xls"))
Sheet sh = wb.getSheet(0)
RowCount = sh.getRows();
ColumnCount = sh.getColumns();
for (i=1;i<RowCount;i++)
{
for (j=0;j<ColumnCount;j++)
{
def c = sh.getCell(j, i).getContents();
log.info c
testRunner.testCase.getTestStepByName("Properties_Address").setPropertyValue("ID", c)
testRunner.testCase.getTestStepByName("Properties_Address").setPropertyValue("AddressLine1", c)
testRunner.testCase.getTestStepByName("Properties_Address").setPropertyValue("AddressLine2", c)
testRunner.testCase.getTestStepByName("Properties_Address").setPropertyValue("AddressLine3", c)
testRunner.testCase.getTestStepByName("Properties_Address").setPropertyValue("City", c)
testRunner.testCase.getTestStepByName("Properties_Address").setPropertyValue("State ", c)
testRunner.testCase.getTestStepByName("Properties_Address").setPropertyValue("PostalCode", c)
testRunner.testCase.getTestStepByName("Properties_Address").setPropertyValue("Country", c)
def TestStep = testRunner.runTestStepByName("Search_Address")
}
}
答案 0 :(得分:0)
可能您希望将单元格值从一行映射到不同的属性,并为每一行执行测试。
定义以下地图
(您可以从excel表的零行初始化此地图)
def header=[
0:'ID', //means put cell0 into property `ID`
1:'AddressLine1',
2:'AddressLine2',
3:'AddressLine3',
4:'City',
...
]
现在您的周期将如下:
for (i=1;i<RowCount;i++)
{
for (j=0;j<ColumnCount;j++)
{
def pname = header[j]
if(pname){
def c = sh.getCell(j, i).getContents();
testRunner.testCase.getTestStepByName("Properties_Address").setPropertyValue(pname, c)
}
}
def TestStep = testRunner.runTestStepByName("Search_Address")
}