[英]How to disable a TestNG listener dynamically based on the testng suite invoked
[英]TestNG: How to rerun testng suite based on number of rows in Excel file
我有一個由3個Java類組成的Testng套件,用於自動化移動應用程序的3個不同頁面:
類1 (這是關於注冊並將數據從excelsheet導入到String數組中。然后在應用程序的頁面1上輸入數據。AndroidDriver也在該類中初始化。)
2類擴展了1類(這與付款有關)
第3類 (關於復習的最終頁面。有一個按鈕可以返回到第1頁注冊以開始新的訂單)
現在,我要做的是根據excelsheet中填充的行數繼續運行套件。
執行順序應為:
我該如何實現? 我一直在閱讀有關DataProvider和工廠的信息,但我從未使用過它們,其他所有帖子似乎都表明只能通過使用它們來解決此問題。 我使用的是由2&3類繼承的單個驅動程序實例。我在測試中並入了Apache POI庫,以便從XLSX文件讀取數據並將其成功存儲在數組中。
更新此代碼正確嗎?
public class WebTestFactory {
@Factory
public Object[] createInstances() {
Object[] result = new Object[number of rows];
for (int m = 0; m < number of rows; m++) {
result[m] = m;
}
return result;
}
}
您可以執行以下操作:
@Factory
public static Object[] createTests() {
List<Object> tests = new ArrayList<>();
Rows rows = // your POI rows
for (Row row : rows) {
tests.add(new Class1Test(row));
tests.add(new Class2Test(row));
tests.add(new Class3Test(row));
}
return tests.toArray();
}
這將為每一行創建所需的測試類實例,並將它們排隊以供TestNG執行。
您也可以將工廠與數據提供程序一起使用。 有關詳細信息,請參見http://testng.org/doc/documentation-main.html#factories 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.