天天看點

Selenium Grid叢集搭建背景介紹方案設計實際部署測試應用

背景介紹

閱讀對象 背景知識
測試人員 具有Selenium使用基礎

在Web UI自動化測試過程中,我們都使用了Selenium這個工具來與浏覽器進行互動。但是,考慮到僅僅使用Selenium,我們無法進行分布式的多任務并行測試。因為在同一台電腦上,通常僅僅隻有一個浏覽器執行個體可以正常運作。運作多個浏覽器的話會出現互相幹擾。是以,我們考慮到基于Selenium-Grid來搭建一套分布式的Selenium測試節點叢集。

Selenium Grid叢集搭建背景介紹方案設計實際部署測試應用

Selenium

方案設計

這裡我們打算通過selenium-grid建構一個多浏覽器測試叢集,同時支援ie, firefox, chrome,

phantomjs

。phantomjs是headless浏覽器,一種非GUI方式通路頁面,能夠加快速度。不同的浏覽器需要相應的驅動才能夠與Selenium進行互動。下表詳細說明了浏覽器與驅動的對應關系。

浏覽器 驅動 備注
Internet Explorer IEDriverServer
Firefox geckodriver 新版本firefox中需要此驅動
Chrome chromedriver
ghostdriver 新版本phantomjs已經原生內建了ghostdriver
Selenium Grid叢集搭建背景介紹方案設計實際部署測試應用

實際部署

步驟1, 啟動selenium-hub

java -jar /path/to/selenium-server-standalone-<SELENIUM VERSION>.jar -role hub
           

步驟2,配置浏覽器驅動

在不同的測試叢集機上,分别安裝不同類型的浏覽器和相應的驅動。

并配置好環境變量(将浏覽器驅動driver配置進PATH變量中)。

步驟3,在不同的叢集機上啟動selenium-node

啟動node-phantomjs
phantomjs --webdriver=${WEBDRIVER_PORT}--webdriver-selenium-grid-hub=http://${SLENIUM_HUB_IP}:${SLENIUM_HUB_PORT}
           
啟動node-chrome, node-firefox, node-ie, 方式一樣,分别在這些安裝了chrome,firefox, ie的節點叢集機上,啟動node服務。并注冊到selenium-hub上即可。需要保證每個叢集節點中浏覽器對應驅動程式的環境變量正确。
java -jar /path/to/selenium-server-standalone-<SELENIUM VERSION>.jar -role node -hub ${SELNIUM_HUB_URL}
           

步驟4, 檢視hub挂載節點情況

檢視注冊的浏覽器節點清單。

登入進入:

${SELENIUM_HUB_URL}/grid/console

Selenium Grid叢集搭建背景介紹方案設計實際部署測試應用

node-phantomjs

Selenium Grid叢集搭建背景介紹方案設計實際部署測試應用

node-chrome, node-firefox, node-ie.png

上圖顯示了注冊成功後,selenium-hub管理面闆上顯示的注冊節點情況,我們可以及時了解到測試節點叢集的情況,以及測試浏覽器的類型。

測試應用

Selenium Grid測試叢集搭建好了以後,我們就可以基于Selenium叢集來做一些分布式的測試任務了。實際的應用,我們後續再講。