我們的團隊一直在使用Selenium測試我們的應用程序,因爲它主要是JavaScript驅動的,我們一直有偶爾失敗的測試問題。隨着測試次數的增加,至少有一次兩次測試失敗的可能性已經成爲確定性因素。如何使用Selenium測試Ajax應用程序並保持其穩定?
我們最近想到的是,我們可能有一個競爭條件,在初始化JavaScript有機會將事件處理程序附加到被單擊的元素之前,硒將單擊鏈接。當然,在這一點上,我們正在尋找的效果不會發生,我們會得到一個失敗的測試。
目前我們在點擊之前增加了一點點延遲,以使初始化JavaScript代碼的時間結束,這顯然有點冒失,增加了整體測試執行時間,並且不保證測試不會仍然失敗,所以我們正在尋找更好的解決方案。
到目前爲止,我們提出的最好的想法是在點擊事件之前注入一個隱藏的元素到Selenium可以等待的DOM中,以知道它已經準備好。就開發者而言,當我們處理異步事件,刪除和添加元素時,這會帶來額外的額外開銷。此外,它還爲我們的頁面添加了額外的東西,這對應用程序來說並不是必需的
有沒有人有更好的策略?你已經做了什麼來有效地解決這個問題?
當然,還有優秀的Selenium Grid可以在多臺機器上同時運行大量測試。 – 2010-08-18 21:07:05
這就是我們最終做的。有意在稍後解決它。它大部分是穩定的,但少數測試偶爾也會遇到問題。我想這只是一場持續的戰鬥。 – William 2011-01-03 02:17:48