2008-09-29 84 views
3

我們正在大型網絡應用程序上設置Selenium測試活動。 我們做的第一件事是構建一個框架,在測試之前初始化數據庫中的SQL數據,啓動測試,歸檔結果,然後清除數據。如何在Web用戶界面測試中取得成功?

我們已將它集成到Maven 2進程中,每天在專用數據庫上運行TeamCity

我們現在已經建立了幾個Selenium測試,但它沒有按計劃使用。

原因是由於其他原因(數據可能已更改,存儲過程可能已重新編譯等等),測試有時會因其他原因而中斷。

我想知道用戶界面測試是否取得了巨大成功,如果是這樣,原因。 Commons錯誤也可能令我感興趣。

回答

1

可測性幫助很大。 Web應用程序可測試性的最大勝利在於,如果您需要在頁面上進行交互的所有HTML元素都具有獨特且一致的屬性。如果您用來標識HTML元素(Selenium使用xpath)的屬性在構建到構建或會話到會話方面不一致/可靠,那麼您的測試腳本將失敗。此外,這些屬性必須是唯一的,以便自動化工具(在本例中爲Selenium)可以可靠地在網頁上找到對象。

0

我使用http-unit,它具有在任何樣式添加到頁面之前工作的額外好處。

http://httpunit.sourceforge.net/ 您可以將測試附加到maven2的集成測試階段中運行。

從網站

Java編寫的,HttpUnit的模擬瀏覽器的行爲 相關部分, 包括表單提交,JavaScript中, 基本的HTTP身份驗證,餅乾和 自動頁面重定向,並允許 的Java測試代碼來檢查返回的 頁面作爲文本,XML DOM或 容器的表格,表格和 鏈接。

1

如果你想要可靠的單元測試,你需要有相同的輸入。數據庫的起始狀態是輸入。所以,你需要每次都有相同的起始數據庫。當然,如果你想用不同的輸入進行測試,你需要創建另一個單元測試(因爲結果顯然不一樣)。

當我做這樣的事情時,我總是使用相同的數據庫作爲起點。當然,某些測試可能會失敗,而不修改數據庫是正確的方式,所以其他一些後續測試可能會失敗,即使它們不會。如果您的單元測試工具允許,您應該定義測試之間的依賴關係,以確保那些測試在「父」測試失敗時不會運行。