2013-10-03 19 views
-1

例如,我有一個具有多個類的TestSuite。如何迭代TestNG中的測試套件

迭代1 TestSuite在第一次執行時會將數據放在Excel工作表的第一行。

迭代2 TestSuite再次在第二次執行時會將數據存入Excel工作表的第二行。

等等...

爲了您的信息 - >我使用Apache POI數據驅動。 - >我不想給testng xml文件本身的迭代參數。 - >測試套件應該逐個執行。

任何幫助表示讚賞。

+0

例如:String testData = DataRead(「SheetName」,「ColumnName」);此方法使用Apache Poi調用Excel Sheet讀取數據的用戶定義函數,我可以在我的類或測試中使用「testData」變量。我只是好奇地迭代測試套件。很明顯,在完成\ @AfterSuite之後[關閉線程]我需要調用\ @BeforeSuite [在新線程中]。 – user2841190

+0

請將此添加到問題中,而不是在評論中發佈。它使未來的讀者更容易理解。 – Seanny123

回答

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 
} 
+0

感謝您的解決方案。但是這裏的東西是,例如:String testData = DataRead(「SheetName」,「ColumnName」);此方法使用Apache Poi調用Excel Sheet讀取數據的用戶定義函數,我可以在我的類或測試中使用「testData」變量。我只是好奇地迭代測試套件。很明顯,在完成\ @AfterSuite之後[關閉線程]我需要調用\ @BeforeSuite [在新線程中]。 – user2841190

相關問題