一、啟動Grid,順序執(zhí)行測試案例: 進入到Selenium Grid的根目錄, ant launch-hub。啟動Hub服務(wù)。運行后查看http://localhost:4444/console ,檢查Hub服務(wù)是否啟動成功。
Hub啟動成功后,首先來試運行一下,在一個新終端窗口中,執(zhí)行命令:ant run-demo-in-sequence 通過Remote-Control,Selenium測試案例將被順序執(zhí)行,Hub只啟動一個selenium-RC,這些測試案例都是在一個selenium-RC中運行。這樣并不讓人感到激動,因為通過正常的Selenium-RC,一樣可以辦到,對吧。 但這僅僅是一個起步,你的目標(biāo)可能是想并行地運行測試案例。 此時可用的Remote Controls:
二、 與Grid在同一臺機器上,只要指定不同的端口號,可以運行多個RC在同一臺機器上,并行運行測試案例: 分別在3個終端進入到Selenium Grid的根目錄,執(zhí)行如下操作: ant -Dport=5556 launch-remote-control 運行后,通過訪問Grid控制臺,驗證RC注冊成功,下圖可以看到開啟了3個remote-control(5555端口是之前執(zhí)行用例時默認啟動的):
注意:同一臺機器上啟動的Client的端口號不可重復(fù) 然后,我們來看看并行執(zhí)行測試案例,在一個新終端窗口中,執(zhí)行命令:ant run-demo-in-parallel 通過Remote-Control,Selenium測試案例將被并發(fā)執(zhí)行,這些測試案例都由Hub進行資源分配,在不同的selenium-RC中運行,達到并發(fā)效果。 可以從Hub控制臺看到調(diào)動了4個selenium-RC來同步工作。 此時可用的Remote Controls:
三、與Grid不在同一臺機器、不同操作系統(tǒng)、甚至不同瀏覽器下,運行Selenium Remote Control: ant -Dport="5555" –Dhost=remote-control的IP地址 -DhubURL=http://localhost:4444 -Denvironment="*iexplore" -DseleniumArgs="-multiWindow" launch-remote-control 來啟動第一個Client。 參數(shù)解釋: ? -Dport:Client的端口號 ? -Dhost:Client的hostname,如果沒有可以用IP代替 ? -DhubURL:Hub控制臺的URL -Denviroment:Client所支持的瀏覽器類型(更多類型請查看控制臺顯示的Browser列表)如果不指定Denviroment參數(shù),則在不同機上默認用*firefox執(zhí)行用例。 -DseleniumArgs:SeleniumRC啟動的參數(shù) launch-remote-control:表示啟動一個Client 啟動其它Client同理:參考上述參數(shù), 注意:啟動client后,再次查看http://localhost:4444/console ,發(fā)現(xiàn)Available Remote Controls列表出現(xiàn)剛啟動的Client。
假設(shè)環(huán)境如下圖:
我們?nèi)_機器,一臺機器hub.thoughtworks.com運行g(shù)rid,其它兩臺rc1和rc2分別運行兩個RC.則我們需要在啟動RC時,使用下列命令指定相應(yīng)的參數(shù):
具體可參考Grid控制臺說明,也可以查看grid_configuration.yml配置文件。
這樣,Selenium Hub會確保提供給測試案例使用的Remote-Control。需要注意的是,Remote Control的環(huán)境參數(shù)可以隨意注冊,即使FireFox瀏覽器工作在Linux下,你也可以向Hub注冊,說它工作在OS X下。這就意味著Hub不會檢驗注冊信息的正確性,你南大要自行保證這一點。 可以在不同平臺下執(zhí)行測試案例,在一個新終端窗口中,執(zhí)行命令:ant run-demo-for-multiple-environments
四、Selenium Grid的一些缺點: 一些目前已知的會影響使用的問題(可以通過重啟服務(wù)來解決)。 ? Hub監(jiān)控頁面不能快速地更新鏈接到它上面的Client資源 如果Selenium腳本運行被意外終止,或者remote-control被關(guān)閉,Client資源不會被釋放。
|
|
來自: WindySky > 《開發(fā)工具》