Docker建立Selenium容器

2022-06-23 16:15:08 字數 2759 閱讀 7512

seleniumhq官方專案: 專案目前快速迭代中。

selenium

這裡主要針對的是 selenium grid,它用於分布式自動化測試,就是一套selenium **可在不同的環境上執行。剛好,docker可快速的建立各種環境。

selenium grid 有兩個概念

hub :主節點,你可以看作 「北京總公司的測試經理」。

node:分支節點,你可以看作 「北京總公司的測試小兵a」 和 「上海分公司的測試小兵b」,還有 「深圳分公司的測試小兵c」 …。

也就是說在selenium grid中只能有乙個主hub,但可以在本地或遠端建立 n 多個分支node,測試指令碼指向主hub,由主hub 分配給本地/遠端node 執行測試用例。

docker selenium 環境安裝

以ubuntu為例,在ubuntu下安裝docker,請參考:docker安裝(ubuntu)

docker hub(倉庫):

$ sudo docker pull selenium/hub
$ sudo docker pull selenium/node-chrome
3、檢視映象

$  sudo docker images

repository tag image id created size

selenium/node-chrome latest 1eba57bd3d79 12 days ago 823mb

selenium/hub latest d1437f7d9f87 12 days ago 285mb

4、啟動主hub容器

$ sudo docker run -d -p --name selenium-hub selenium/hub

5、啟動分支node chrome 容器

$ sudo docker run -d --link selenium-hub:hub selenium/node-chrome

6、檢視容器

$ sudo docker images

container id image command created status ports names

9cd0dac69875 selenium/hub "/opt/bin/entry_poin…" 12 hours ago up 12 hours 0.0.0.0:32768->4444/tcp selenium-hub

18d139a6c36d selenium/node-chrome "/opt/bin/entry_poin…" 12 hours ago up 12 hours eloquent_gates

這裡需要注意,selenium/hub 容器的埠號為4444,對ubuntu對映的埠為32768,前面通過-p引數自動分配。

工作原理:

selenium grid指令碼 -> ubuntu(32768) -> hub容器(4444) -> node chrome 容器

建立grid測試指令碼與執行

1、編寫selenium grid 指令碼(grid_demo.py)

注意訪問的埠號和瀏覽器,因為我們只啟動了node chrome容器,如果這裡設定friefox的話,需要你啟動node firefox容器,hub找不到合適的node會報錯。

另外,我們為了驗證指令碼是否真的執行加上了列印和截圖。

2、執行指令碼

3、檢視截圖

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

docker run -d -p 5901:5900 --name node58 --linkselehub:hub

Docker映象建立

2 建立步驟 2 執行容器。3 修改容器。4 將容器儲存為新的映象。開啟乙個新的xshell視窗 docker pull options name tag digest docker images options repository tag docker run options image com...

Docker建立容器

容器是映象的乙個執行例項,是基於映象執行的輕量級環境,是乙個或者一組應用。怎樣建立容器?將容器所基於的映象名稱傳入即可,docker會從本地倉庫中尋找該映象,如果本地倉庫沒有,則會自動從遠端倉庫中拉取。docker pull nginx 拉取nginx最新版本的映象 檢視映象 建立nginx容器 d...

docker 建立映象

主要有三種 基於已有映象的容器建立 基千本地模板匯入 基於 dockerfile建立。該方法主要是使用 docker container commit命令。命令格式為docker container commit options container repository tag 主要選項包括 a,a...