Linux系統下搭建Selenium Grid分佈式測試環境

1.使用工具

  centos 七、docker、selenium/hub、selenium/node-chromehtml

2.安裝docker

  此處docker的安裝方式不做講解,請參考:http://www.javashuo.com/article/p-qwmrfdkf-gr.htmljava

3.獲取selenium鏡像

   查找鏡像

經過docker search selenium查看可用的selenium相關鏡像node

 docker search selenium git

hub:selenium/hub
node:selenium/node-chrome,selenium/node-chrome-debuggithub

輸入命令chrome

 docker pull selenium/hub docker

 docker pull selenium/node-chrome windows

 docker pull selenium/node-chrome-debug centos

下載相關鏡像

node的鏡像有兩種,selenium/node-chrome與selenium/node-chrome-debug,帶有debug的鏡像中帶有vnc服務可使用vnc viewer進行鏈接查看運行狀況api

使用命令docker images查看下載的鏡像

  docker images 

4.部署鏡像

hub的部署

 docker run -d -p 4444:4444 --name hub selenium/hub 

暴露4444端口用於後面腳本的運行

部署成功後,可經過http://主節點ip地址:4444/grid/console 查看節點狀態

node的部署

 docker run -P -d --link hub:hub --name chrome selenium/node-chrome 

--link 是連接別名爲hub的容器

注意:這樣部署之後未設置容器的共享內存,頗有可能形成用例運行過程當中,內存不足卡死,可使用下面的命令給容器設置共享內存,官網建議爲2g

 docker run -P -d --link hub:hub --name chrome --shm-size=2g selenium/node-chrome

 

node節點部署成功後會註冊到hub中心節點中,若是出現chrome標誌則註冊成功,能夠點擊view config查看詳細信息

node-debug的部署

 docker run -d -p 5900:5900 -p 5555:5555 --shm-size=2g --link hub:hub selenium/node-chrome-debug 

debug鏡像在部署是須要暴露5900端口用於vnc服務的鏈接,能夠下載vnc viewer鏈接進鏡像中,vnc的初始密碼爲:secret

 

5.節點在不一樣計算機上

當主節點與分支節點在不一樣的計算機上運行時,須要在部署node時添加啓動參數

seleniumHQ網站:https://github.com/seleniumHQ/docker-selenium,網站上有詳細說明,以及如何搭建集羣

如:主節點運行在192.168.1.165上,分支節點運行在192.168.1.117上

  docker run -d -p < node_port >:5555 -e HUB_HOST = < hub_ip | hub_name > -e HUB_PORT = 4444 -e REMOTE_HOST = "http:// <node_ip | node_name>:<node_port>" selenium/node-chrome:3.14.59-palladium 

<node_port> 分支節點端口號

<hub_ip|hub_name> 此處只用填寫主節點的ip地址

<node_ip | node_name> 分支節點的ip地址

<3.141.59-palladium> 爲版本號

完整命令:

 docker run -d -p 5555:5555 -e HUB_HOST=192.168.1.165 -e HUB_PORT=4444 -e REMOTE_HOST="http://192.168.1.117:5555" selenium/node-chrome:3.141.59-palladium 

6.運行測試腳本 

 1 public class Test {
 2     public static void main(String[] args) throws Exception {
 3         DesiredCapabilities browserDriver;
 4         browserDriver = DesiredCapabilities.chrome();
 5         String url = "http://192.168.1.117:4444/wd/hub";
 6         WebDriver driver = new RemoteWebDriver(new URL(url),browserDriver);
 7         driver.get("https://www.baidu.com/");
 8         driver.findElement(By.id("kw")).sendKeys("Selenium");
 9         driver.findElement(By.id("su")).click();
10         Thread.sleep(2000);
11         System.out.println("運行結束");
12         driver.quit();
13     }
14 }

 

若是運行過程當中沒有報錯且成功打印信息則證實環境搭建成功,也可使用vncverw鏈接chrome-node-debug查看運行狀態

 

7.擴展部分

1、設置分支節點瀏覽器的分辨率信息

默認狀況下,節點瀏覽器以1360 x 1020的屏幕分辨率,顏色深度24位運行。這些設置能夠經過調整啓動參數SCREEN_WIDTH(寬)SCREEN_HEIGHT(高)SCREEN_DEPTH(色位)指定須要的分辨率與顏色深度

 docker run -d -p 5900:5900 -p 5555:5555 -e SCREEN_WIDTH=1920 -e SCREEN_HEIGHT=1080 -e SCREEN_DEPTH=24 --shm-size=2g --link hub:hub selenium/node-chrome-debug  

使用vnc鏈接分支節點查看分辨率是否設置成功

2、主節點(hub)併發數設置

    設置主節點的最大session數,部署鏡像是纔可以設置,使用GRID_MAX_SESSION,若是是存在多個分支節點,分支節點上的maxSession和不能大於主節點上的maxSession

      docker run -d -p 4444:4444 -e GRID_MAX_SESSION=10 --name hub selenium/hub 

3、分支節點(node)併發數設置

默認狀況下,每一個節點瀏覽器只支持一個瀏覽器同時運行,能夠經過設置啓動參數NODE_MAX_INSTANCES,NODE_MAX_SESSION(節點中同時運行的最大測試數),兩個參數必須配合使用

  docker run -d -p 5900:5900 -e NODE_MAX_INSTANCES=5 -e NODE_MAX_SESSION=-e SCREEN_WIDTH=1920 -e SCREEN_HEIGHT=1080 -e SCREEN_DEPTH=24 --shm-size=2g --link hub:hub selenium/node-chrome-debug 

         驗證併發數設置

    經過訪問主節點ip:4444/grid/console 查看子節點註冊狀態,出現五個chrome圖標,標識能同時啓動五個chrome瀏覽器

    

    跨平臺

    Grid支持不一樣平臺的節點鏈接,這裏咱們再將windows平臺下的node節點註冊到linxu主節點下

    1.windows平臺下使用grid首先須要下載selenium的jar包,這裏使用的是3.12的版本

     要求:

      1):JDK環境(這裏不作贅述,能夠百度查看)

      2):selenium-server-standalone-3.12.jar

     下載鏈接:https://selenium-release.storage.googleapis.com/index.html,進入到3.12文件夾中,下載selenium-server-standalone-3.12.jar

    2.下載好之後,打開cmd而且進入到jar包下載目錄,並運行下方命令啓動node節點

  java -jar selenium-server-standalone-3.12.0.jar -role node -hub http://192.168.1.117:4444/grid/register/ -maxSession 5 -browser "browserName=firefox,version=68,platform=WINDOWS,maxInstances=5" -port 5555 

     windows系統下使用 -hub http://ip:端口/grid/register 進行的子節點註冊

     -browser 則是瀏覽器的啓動參數,browserName是瀏覽器名,version是瀏覽器版本號

     註冊成功後訪問主節點ip:4444/grid/console會出現下方界面,能夠看出已經成功註冊了firefox瀏覽器的節點,而且併發數是5

    

相關文章
相關標籤/搜索