selenium===使用docker搭建selenium分佈式測試環境

準備:html

#請在此以前先了解,selenium grid ;參考:selenium-grid ,下載地址 win-本地部署過程node

 

>>>環境準備: Linux操做系統linux

>>>給Linux安裝Python(linux 默認已經安裝)web

>>>安裝docker參考Ubuntu安裝docker步驟,安裝完畢後檢驗,安裝是否正確chrome

>>>docker search selenium   命令查看須要安裝的selenium包 ;目前只支持Chrome 和 Firefox兩種瀏覽器docker

>>>下載主 hub 對象: sudo docker pull selenium/hububuntu

>>>下載主node - Chrome 鏡像 :sudo docker pull selenium/node-chromeapi

>>>下載完成後查看鏡像:sudo docker images瀏覽器

 

 >>>啓動主hub 容器:sudo docker run -d -P --name selenium-hub selenium/hub網絡

  • -d 表示容器以守護態(Daemonized)形式運行。
  • -P 表示 Docker 會隨機映射一個 49000~49900 的端口到內部容器開放的網絡端口。

>>> 啓動分支node 容器 :sudo docker run -d --link selenium-hub:hub selenium/node-chrome

  • --link 通過 link 關聯 selenium-hub 容器,併爲其設置了別名hub

 >>>查看容器:docker ps  -a 

  * Selenium/hub 容器的端口號爲 4444,對Ubuntu映射的端口爲 32768,前面經過 -P 參數自動分配

>>> OK!環境搭建至此結束。使用  http://Linux外網地址:32768/grid/console  ; 查看環境

 

>>> 運行本地的測試腳本;

from selenium import webdriver
from time import sleep

driver = webdriver.Remote(
command_executor='http://Linux外網地址:32768/wd/hub',
desired_capabilities={'browserName': 'chrome'}
)

driver.get('https://www.baidu.com')

driver.find_element_by_id("kw").send_keys("selenium grid")
driver.find_element_by_id("su").click()
sleep(2)
driver.get_screenshot_as_file("result-1.png")
driver.quit()

整個執行不過是不可見的,由於他它的運行環境在Linux;要想知道他有沒有執行,能夠截圖驗證;

* 若是執行過程當中,發現報 Java 空指針異常的錯誤,請刪除掉安裝的容器和鏡像文件,從新安裝一次selenium/hub 和 selenium/node-chrome ;刪除 請參考:中止、刪除全部的docker容器和鏡像

 

總結

  • 這是一個 cs架構的分佈式測試模式,測試環境使用docker容器建立,更加穩定,減小了搭建環境帶來的腳本執行出錯困擾
相關文章
相關標籤/搜索