Selenium Grid并行的Web測試
很多敏捷團隊已經(jīng)使用了Selenium和Watir等 工具進(jìn)行驗收測試或用戶接口測試。這些工具通過驅(qū)動Web瀏覽器的方式反映用戶體驗,并且為測試那些使用DHTML和Ajax構(gòu)建的動態(tài)接口提供強力支 持。然而,隨著更多的團隊采納類似的工具,他們發(fā)現(xiàn),運行這一整套瀏覽器驅(qū)動的Web接口測試會花費很長時間,而導(dǎo)致構(gòu)建太慢。敏捷團隊可能就不得不在全 面測試和構(gòu)建速度之間做出艱難的選擇。使用Selenium的用戶中,有人通過使用Selemium-RC運行多個測試,也有人將測試分配給多個 Selemium-RC運行測試,但幫助有限。雖然對于少量并行是有效的,但對于大量并行卻無能為力。Selenium用戶現(xiàn)在有了另一種選 擇:Selenium Grid。
Selenium Grid是Selenium的一個擴展,也是免費且開源的(Apache License 2.0)。它把管理一小撮Selenium-RC實例的事情和為了運行一個測試而連接一個Selenium實際的事情分開了。實際上,Selenium Grid是提供了一個hub,象個用于控制測試的遠(yuǎn)程控制器,但是是顯式地將測試請求發(fā)送到一個或多個機器上的某個有效的Selenium-RC實例上。 這個Selenium Hub負(fù)責(zé)以下這些事情:
將一個SeleniumRC顯式地分配給一個具體的測試
限制在每個RC最大并發(fā)測試數(shù)
將測試屏蔽在一個實際的網(wǎng)格結(jié)構(gòu)之外。
使用Selenium Gird時,Selenium測試可以通過名稱選擇具體環(huán)境的實例,例如某個測試可以運行在Windows XP系統(tǒng)的IE7上,而其它實例卻指定運行在Ubuntu的Firefox 1.5之上。
更重要的是,它允許組織構(gòu)建一個復(fù)雜的包含多種必要的測試環(huán)境的測試機群,并在其上并行運行一個或多個項目的測試。這將在測試方面有顯著的提高,最終減少 每個項目所需要的基礎(chǔ)設(shè)施。某些大型組織對這一點認(rèn)識的最為深刻(比如Google就在用相似的方法),但即使是對于單個項目的單個機器也是有價值的。
