如何迭代TestNG中的测试套件

时间:2013-10-03 05:02:26

标签: java junit selenium-webdriver testng test-suite

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

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

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

所以......

供您参考 - >我正在使用Apache POI进行数据驱动。 - >我不想在testng xml文件本身中为iterate提供参数。 - > Test Suite应该逐个执行。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分: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
}
相关问题