測試基礎架構指的是,執行測試的過程當中用到的全部基礎硬件設施以及相關的軟件設施。所以,咱們也把測試基礎架構稱之爲廣義的測試執行環境。一般來說,測試基礎架構主要包括如下內容:node
執行測試的機器;測試用例代碼倉庫;chrome
發起測試執行的 Jenkins Job;統一的測試執行平臺;docker
測試用例執行過程當中依賴的測試服務,好比提供測試數據的統一測試數據平臺、提供測試全局配置的配置服務、生成測試報告的服務等;瀏覽器
…網絡
「小做坊」模式是人工維護一批數量很少(一般在 30 臺之內)的執行測試的機器,而後按需使用。架構
存在的問題是:併發
測試執行機與測試用例的關係是不透明的,即每一個測試用例都須要人爲設置測試執行機。測試
使用 Selenium Grid 可讓測試機器的選擇變得「透明」。也就是說,咱們只要在執行測試用例時指定須要的瀏覽器版本便可,而無需關心如何找到合適的測試執行機。由於,這尋找符合要求的測試執行機的工做,Selenium Grid 能夠幫你完成。firefox
Selenium Grid 的架構特色,天生就能很好地支持測試用例的併發執行。code
Selenium Grid 的架構
Selenium Hub 用來管理各個 Selenium Node 的註冊信息和狀態信息,而且接收遠程客戶端代碼的測試調用請求,並把請求命令轉發給符合要求的 Selenium Node 執行。
經過官網下載 selenium-server-standalone-.jar 文件。這裏須要注意的是,無論是 Hub 仍是 Node,都使用同一個 JAR 包啓動,只是啓動參數不一樣而已。
安裝 Docker 環境後。
#建立了Docker的網絡grid $ docker network create grid #以Docker容器的方式啓動Selenium Hub,而且對外暴露了4444端口 $ docker run -d -p 4444:4444 --net grid --name selenium-hub selenium/hub:3.14.0-europium #以Docker容器的方式啓動並掛載了Chrome的Selenium Node $ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-chrome:3.14.0-europium #以Docker容器的方式啓動並掛載了Firefox的Selenium Node $ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-firefox:3.14.0-europium
來源於 極客時間 茹炳晟 軟件測試52講