-1

例如,我有一个带有多个类的 TestSuite。

Iteration 1 TestSuite 在第一次执行时将在 Excel 工作表的第一行中获取数据。

Iteration 2 TestSuite 再次执行第二次,它将在 Excel 工作表的第二行中获取数据。

很快...

供您参考 -> 我正在使用 Apache POI 进行数据驱动。-> 我没有兴趣在 testng xml 文件本身中提供迭代参数。-> 测试套件应该一个一个地执行。

任何帮助表示赞赏。

4

1 回答 1

1

我猜你是直接从你的 @Test 方法中使用 Apache POI。如果是,我建议为您的测试添加一个 DataProvider 并使其返回 Excel 字段数组的数组,或者只是 Excel 行的数组。请查看http://testng.org/doc/documentation-main.html#parameters-dataproviders,这种方式不需要在 testng.xml 中指定参数。

//This method will provide data to any test method that declares that its Data Provider
//is named "dataFromExcelSheet"
@DataProvider(name = "dataFromExcelSheet")
public Object[][] createData1() {
    //I have no idea about Apache POI methods, so names are nearly random
    int numberOfRows = sheet.getNumberOfRows();
    Object[][] lines = new ExcelRow[numberOfRows][1];
    for (int i = 0; i < numberOfRows; i++) {
        lines[i][0] = sheet.getNextRow;
    }
    return lines;
}

//This test method declares that its data should be supplied by the Data Provider
//named "dataFromExcelSheet"
@Test(dataProvider = "dataFromExcelSheet")
public void yourTest(ExcelRow row) {
    //Write your code here
}
于 2013-10-03T12:44:06.240 回答