Selenium Grid的如何使用

一、Selenium Grid解決什么問題

可以分布式運行自動化測試用例,提高執行效率和解決兼容性測試的要求。

二、運行機制

selenium Grid使用Hub和Node模式,一臺計算機作為Hub(管理中心)管理其他多個Node(節點)計算機。Hub負責將測試用例分發給多臺Node計算機執行,并收集多臺Node計算機執行結果的報告,匯總后提交一份總的測試報告。

Hub:

在分布式測試模式中,只能有一臺作為Hub的計算機。

Hub負責管理測試腳本, 并負責發送腳本給其他Node節點。

所有的Node節點計算機會在Hub計算機中先進行注冊,注冊成功后再和Hub計算機通信,Node節點計算機會告之Hub自己的相關信息。例如,Node節點的瀏覽器相關信息、最多并發數等。

Hub計算機可以給自己分配執行測試用例的任務。

Hub計算機分發的測試用例任務會在各個Node節點計算機執行。

Node:

在分布式測試模式中,可以有一個或者多個Node節點。

Node節點會打開本地的瀏覽器完成測試任務并返回測試結果給Hub。

Node節點的操作系統和瀏覽器版本無需和Hub保持一致。

在Node節點上可以同時打開多個瀏覽器并行執行測試任務。

三、使用方法

1、準備兩臺計算機,一臺作為Hub,命名為A;另一臺作為Node,命名為B。

2、打開http://selenium-release.storage.googleapis.com/index.html?path=2.51/地址,

下載selenium-server-standalone- 2.53.1.jar,保存在兩臺計算機的硬盤C:/grid文件夾中。

3、在A計算機上打開cmd窗口,輸入并執行以下語句:

java -jar selenium-server-standalone- 2.53.1.jar -role hub 或者

java -jar selenium-server-standalone- 2.53.1.jar -role hub -hubConfig hub.json

參數:

role參數:hub表示作為管理中心

port參數:hub服務器的端口號

hubConfig:hub各種配置的json文件路徑。hub.json與jar包在同一個文件夾中

此語句表示使用java命令把jar文件作為程序執行,并且把參數role和hubConfig傳遞給jar文件的函數,用來啟動Hub管理中心,如下圖所示:


圖中“http://172.16.231.45:4446/grid/”為Hub的地址。在計算機上打開http://172.16.231.45:4446/grid/console,驗證此網址是否顯示出“view config”的鏈接。

4、在B計算機中打開cmd窗口,輸入下面命令:

java -jar selenium-server-standalone- 2.53.1.jar -role webdriver -nodeConfig node.json

參數:

role參數:webdriver表示Node節點的名字

nodeConfig :node各種配置的json文件路徑。node.json與jar包在同一個文件夾中

執行后,如下圖所示:


5、在訪問Hub地址,http://172.16.231.45:4446/grid/console,驗證Node節點是否已經注冊成功,如下圖所示:


6、編寫分布式測試腳本

第一種方式:指定Node節點

DesiredCapabilities dc = DesiredCapabilities.chrome();

driver=newRemoteWebDriver(newURL("http://172.16.231.45:8888/wd/hub"),dc);

第二種方式:指定Hub地址,由Hub分發

DesiredCapabilities dc = DesiredCapabilities.chrome();

driver=newRemoteWebDriver(newURL("http://172.16.231.45:4446/wd/hub"),dc);

注意事項:

new UR中的地址,必須加上"/wd/hub"

第一種方式,測試用例只用在相應的Node節點計算機上執行

第二種方式,有Hub根據每個Node節點瀏覽器版本及最大并發量分配測試用例

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容