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