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...