2012-12-07 110 views
4

我對WebDriver和TestNG框架相當陌生。我已經開始了一個對電子商務網站進行迴歸測試的項目。我完成了登錄和註冊等操作。但有些東西我不太明白。WebDriver + TestNG - 如何處理測試結果

例如,我有這個簡單的代碼來搜索產品。

driver.get(url + "/k/k.aspx"); 
driver.findElement(By.id("q")).clear(); 
driver.findElement(By.id("q")).sendKeys("xxxx"); //TODO: Make this dynamic 
driver.findElement(By.cssSelector("input.submit")).click(); 

現在我想檢查是否在頁面上顯示xxxx。這可以用

webdriver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*xxxxxx[\\s\\S]*$") 

我把它存儲在一個布爾值並檢查它的真或假。

現在回答這個問題,基於這個布爾值,我想說測試結果是成功還是失敗。我怎樣才能做到這一點?什麼觸發testNG測試失敗?

回答

5

TestNG的或任何其他測試工具決定基於斷言測試的成功或失敗。

Assert.assertEquals(actualVal, expectedVal); 

所以,如果actualValexpectedVal是相同的,然後測試將通過否則就會失敗。

同樣,如果您使用任何IDE(如Eclipse),則會發現其他斷言選項。

+0

另請參見Assert.assertTrue for booleans – WilQu

+0

謝謝!這解決了我的問題:) – Oleaha

0

寫這段代碼放到你的,如果條件不滿足

throw new RuntimeException("XXXX not found: "); 
+2

我相信AssertionException將是一個更合適的異常,但我相信條件不應該在if條件中,並且最好由Asserts處理。 –

3

如果您想基於驗證該文本值來停止您的測試執行,那麼您可以使用Asserts。但是,如果您想將測試結果記錄爲失敗並繼續進行,則應嘗試使用軟斷言,將驗證記錄爲已通過或失敗並繼續進行測試。最新的Testng來裝備處理這個 - 信息在Cedric's blog

+0

感謝您的鏈接!很好的閱讀:) – Oleaha

0

你可以使用拋出異常,並且每個方法將調用這個方法也應該在方法名後面拋出Excetion,或者你可以使用try catch。示例:

protected Boolean AssertIsCorrectURL(String exedctedURL) throws Exception { 

String errMsg = String.format("Actual URL page: '%s'. Expected URL page: '%s'", 
this.driver.getCurrentUrl(), exedctedURL); 
throw new Exception(errMsg); 
} 
相關問題