docker+selenium web自动化测试环境的部署
docker+selenium web自動化測試環境的部署
1、使用SecureCRT或Docker Quickstart Terminal打開docker終端。
2、下載selemiunUI測試需要的鏡像
命令 docker pull:從docker hub中下載鏡像。
首先搜索需要pull的image
命令:docker search selenium
針對docker selenium ,這里需要pull的image分別是:
selenium/hub
selenium/node-chrome-debug
selenium/node-firefox-debug
目前只支持在chrome和firefox中進行測試
官方鏡像可能會使打開的網頁出現中文亂碼,故可采用上述鏡像。
說明:默認的tag是latest;dockerhub服務器在海外,所以網速時好時壞,有時還會timeout報錯,多試幾次一定能成功。
由于國內訪問直接訪問Docker hub網速比較慢,拉取鏡像的時間就會比較長。
針對此問題可以從dockerhub上拉取,這時再使用加速器修改docker的registry-mirrors 。這里使用的是DaoCloud的加速器。
下面介紹如何使用daocloud獲取加速器的方法。
首先在http://www.daocloud.io/進行注冊登錄。
待登錄成功后,點擊加速器,如圖所示:
等一會兒會出現以下界面,選擇Windows系統,復制獲取到的registry-mirrors配置。
請確認你的 Docker Toolbox 已經啟動,并執行下列命令(請將 加速地址替換為在加速器頁面獲取的專屬地址)
docker-machine ssh default sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile exit docker-machine restart default更多環境的加速配置請參考以下幫助文檔
http://guide.daocloud.io/dcs/daocloud-9153151.html
3、查看鏡像
輸入命令docker images查看已經下載的鏡像
4、創建并運行容器
創建selenium hub容器
dockerrun -d -p 4444:4444 --name selehub baozhida/selenium-hub:3.3.1
創建chrome node容器
docker run -d -p 5901:5900 --name node58 --linkselehub:hub
--shm-size=512mbaozhida/selenium-node-chrome-debug:58
創建firefox node容器
docker run -d -p 5912:5900 --name ff52 --linkselehub:hub
--shm-size=512m baozhida/selenium-node-firefox-debug:52
?說明:
*-d參數:后臺模式運行;
--name參數:別名;
-p參數:將容器的5900端口映射到docker的5901端口,訪問Docker的5901端口即可訪問到node容器;
--shm-size參數:docker默認的共享內存/dev/shm只有64m,有時導致chrome崩潰,該參數增加共享內存大小到512m.*
5、輸入命令docker ps -a 查看正在運行的容器,處于up狀態
?
6、在瀏覽器輸入地址http://192.168.99.100:4444/grid/console
查看Selenium Grid控制臺,能看到剛創建的容器已經正常注冊
?7、VNC遠程瀏覽器環境
debug結尾的鏡像都帶有VNC服務端,本機安裝VNC客戶端,即可遠程連接。
下載地址:https://www.realvnc.com/en/connect/download/vnc/
輸入192.168.99.100:5901-->回車-->輸入密碼:secret-->確認-->進入chrome:58容器桌面
輸入192.168.99.100:5901-->回車-->輸入密碼:secret-->確認-->進入firefox:52容器桌面
?
8、在本地運行下面的腳本進行測試。
#coding=utf-8 from selenium import webdriver firefox_capabilities={"browserName":"firefox","version": "52.0",#注意版本號一定要寫對"platform": "ANY","javascriptEnabled": True,"marionette": True, } browser=webdriver.Remote("http://192.168.99.100:4444/wd/hub",desired_capabilities=firefox_capabilities)#注意端口號4444是我們上文中映射的宿主機端口號 browser.get("http://www.baidu.com") browser.get_screenshot_as_file(r"C:/baidu.png") browser.close()
上述代碼的效果是:用firefox52.0打開百度界面,并截圖保存在C盤中。
但按照以上操作,代碼卻報出了如下錯誤:
解決方法:
先按照(http://blog.csdn.net/liujingqiu/article/details/74857145)文中方法進行相應的修改。
然后使用官方鏡像創建selenium hub容器:
關閉原selenium hub容器?
docker stop “CONTAINER ID”(對應容器的ID)
刪除原selenium hub容器?
docker rm “NAMES”(按上述操作,這里的NAME使用selehub)
下載 selenium/hub鏡像
docker pull selenium/hub(版本默認為latest)
創建selenium hub容器
docker run -d -p 4444:4444 --nameselehub selenium/hub
再次運行腳本
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的docker+selenium web自动化测试环境的部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 戒指不小心卡在手指上取不下来哪种做法更合
- 下一篇: VirtualBox中的网络连接方式详解