例如,我有一个具有多个类的TestSuite。
迭代1 TestSuite在第一次执行时会在Excel工作表的第一行中获取数据。
迭代2 TestSuite再次执行,它将在Excel工作表的第二行中获取数据。
所以......
供您参考 - >我正在使用Apache POI进行数据驱动。 - >我不想在testng xml文件本身中为iterate提供参数。 - > Test Suite应该逐个执行。
任何帮助表示感谢。
答案 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
}