2015-02-08 39 views
0

當測試失敗時,我們正在使用TestNG iRetryAnalyzer重新運行測試。我們面臨如何使用TestNG不同數據重新運行測試使用TestNG

問題是:

我們有一個測試爲「添加用戶」。在添加用戶後第一次,在檢查成功消息發生異常(Timeout/NosuchElement)等過程中,但用戶被添加到數據庫中。

現在再次當我們用相同的數據重新運行測試時,測試失敗,因爲用戶已添加。

我該如何克服這個?

由於這裏的數據,用戶電子郵件ID唯一字段。至少我應該能夠在第二次重新運行時更改電子郵件ID。

請幫幫我。

回答

1

如果你只需要創建一個你不需要實際使用獨特的,假的電子郵件地址,你可以隨時日期/時間戳記追加到一些基本的電子郵件從您的DataProvider獲取:

@Test(dataProvider = "dp") 
public void emailTest(String userName, String emailShortname) { 

//Get the current time 
long time = System.currentTimeMillis(); 

//append it to the email from your DataProvider 
StringBuilder emailBuilder= new StringBuilder(); 
emailBuilder.append(emailShortname).append("_").append(time).append("@gmail.com"); 

    //do user creation code below using emailBuilder result... 

我要說的是,如果你打算做這些各種各樣的使用Selenium測試,你要去填補了垃圾測試ID的數據庫,所以我建議你的團隊建立一種機制來清潔這些出無論是作爲一部分測試運行或之後。

0

理想情況下,如果有辦法刪除用戶。您應該在@aftertest方法中使用該方法並刪除該用戶。

這樣,下一次你將再次能夠不管測試使用相同的電子郵件ID是成功與否。

如果不是,如果電子郵件ID從來沒有驗證(我的意思是一樣,你用它來確認用戶的一些確認郵件),你可以像[email protected]動態創建虛假的電子郵件ID。如果電子郵件ID被驗證,那麼我想你有麻煩了。