1. 程式人生 > >docker+selenium Grid搭建自動化分布式測試環境

docker+selenium Grid搭建自動化分布式測試環境

connect try 資源 created ole sele registry www. web

當自動化測試需要考慮到兼容性的時候,之前的做法是每個執行機上安裝不同版本的瀏覽器,實際上這樣做會很浪費資源,現在有了docker容器化技術,讓一切變得簡單

1、首先安裝一臺Ubuntu系統的服務器,可以在workstations裏面創建一個虛擬機

2、虛擬機創建好了之後使用xshell連接,

  2.1 安裝docker

  2.2 獲取鏡像

    

  docker pull selenium/hub   docker pull selenium/node-firefox-debug   docker pull selenium/node-chrome-debug

  2.3 使用鏡像創建容器

    

  docker run -d - -p 5555:4444 --name selenium_hub registry.docker-cn.com/selenium/hub   docker run -d -p 5900:5900 --link selenium_hub:hub --name chrome_node selenium/node-chrome-debug   docker run -d -p 5901:5901 --link selenium_hub:hub --name firefox_node selenium/node-firefox-debug   docker ps -a查看容器運行狀態   
chen@ubuntu:~$ docker ps
CONTAINER ID        IMAGE                                 COMMAND                  CREATED             STATUS              PORTS                    NAMES
a3110167a391        selenium
/node-chrome-debug "/opt/bin/entry_po..." About an hour ago Up About an hour 0.0.0.0:5902->5900/tcp chrome_node b230ed926f09 selenium/node-firefox-debug "/opt/bin/entry_po..." About an hour ago Up About an hour 0.0.0.0:5901->5900/tcp agitated_jepsen ac2bd2b8912f registry.docker
-cn.com/selenium/hub "/opt/bin/entry_po..." 24 hours ago Up About an hour 0.0.0.0:5555->4444/tcp selenium_hub

  可以訪問 虛擬機ip:5555/grid/console來驗證容器是否啟動,如下   技術分享圖片

安裝VNC viewer   vnc viewer是一款優秀的遠程控制工具軟件   官網下載地址:https://www.realvnc.com/en/connect/download/viewer/   安裝好以後File->New connection,在彈出的界面中輸入node的ip和端口號,保存後雙擊啟動。   連接,會要求輸入密碼,默認密碼就是secret   技術分享圖片技術分享圖片

出現這個頁面就代表成功連接了

技術分享圖片

編寫腳本測試一下

#coding=utf-8
from  selenium import webdriver
firefox_capabilities ={
"browserName": "firefox",
"version": "62.0.3",#註意版本號一定要寫對
"platform": "ANY",
"javascriptEnabled": True,
"marionette": True,
}
browser=webdriver.Remote("http://192.168.179.128:5555/wd/hub",desired_capabilities=firefox_capabilities)#註意端口號5555是我們上文中映射的宿主機端口號
browser.get("http://www.baidu.com")
browser.find_element_by_id(kw).send_keys(docker)
browser.get_screenshot_as_file("D:/baidu.png")
browser.close()

運行腳本後,可以在VNC中實時看到運行界面

技術分享圖片

docker+selenium Grid搭建自動化分布式測試環境