對於我的實習,我必須使用TestNG的硒用於測試的Web應用程序。但是我有一個問題,有時候硒或者瀏覽器因爲某些隨機原因而不工作,所以一個工作測試被標記爲「失敗」。爲了避免這種情況,我可以使用註釋@Test(invocationCount = 4, successPercentage = 25)
,那麼如果測試成功一次,測試被標記爲「成功」,這是好的,但問題是,這種解決方案乘以4的時間進行測試,這是不是很有效。如何優化TestNG的和seleniums測試
我能做些什麼來減少測試時間,就是寫一些規則「如果測試失敗,重新運行這個測試(並且只有在測試失敗的情況下),以及它是否工作了第二,第三或者第四次,然後將此測試標記爲「成功」「所以我可以避免這些隨機錯誤。但是我還沒有找到如何編寫這個規則,我看到我們可以添加一個監聽器,所以我們有一個名爲「onTestFailure
」的方法,所以當測試失敗時我可以做一些事情,但是我不知道如何重新編寫代碼。運行測試。
我還發現了testng-failed.xml,其中保存了所有失敗的測試,所以我們可以運行這個xml文件來重新運行這些測試,但是這會從先前的第一次運行中刪除報告,但我只想如果第二次運行成功,失敗的測試將被標記爲「成功」。 (我已經將TestNG的/硒詹金斯,所以我有所有的測試圖形,所以這種方法不是很適應,但這種方法不乘以4進行測試的時候,這就是我想要的)
所以,如果你有任何線索,如何做到這一點,這將是非常好的。
我已經測試過3次運行testng-failed.xml,然後所有的測試都可以正常工作,而且不需要很多時間。但對Jenkins來說,當testng-failed.xml最後一次運行時,它將編輯testng-result.xml,所以現在圖表顯示「1次測試運行,1次成功」,因爲上次運行testng僅啓動了這個測試第一次失敗了3次。 這種方法將產生一個圖表,所有的失敗測試,但所有的工作測試(除了第三次運行的測試)將不會被指出,這不完全是我想要的... 任何線索? – user1000499