Selenium Docker的Grid方式進行自動化測試

問題

最新想經過界面批量輸入數據到系統裏面。html

思路

使用自動化測試工具解決這個批量操做到問題。node

Selenium

鏡像

  • selenium/hub
  • selenium/node-chrome 他們二者之間的關係,就是hub是管理者,node-chrome是被管理者。hub管理這全部測試集羣的容器進程。以下圖:

關係圖

這裏咱們只使用這個兩個鏡像進行使用,開始安裝鏡像,這裏假設本地已經完成了docker的安裝:git

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

訪問Docker Hub訪問,找到相關命令行進行安裝。github

Hub

docker run -d -p 4444:4444 --name selenium-hub selenium/hub

Node

docker run -d --link selenium-hub:hub selenium/node-chrome

檢查

經過打開http://127.0.0.1:4444/grid/console連接界面來檢查Hub和Node是否正常啓動。web

檢查Node

上面表示Node,已經鏈接上了Hub。chrome

Python測試

from selenium import webdriver
from time import sleep

driver = webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities={'browserName': 'chrome'}
)

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

driver.find_element_by_id("kw").send_keys("docker selenium")
driver.find_element_by_id("su").click()

sleep(3)

driver.get_screenshot_as_file("baidu_img.png")

driver.quit()
print("end...")

這主要經過保存的baidu_img.png圖片來查看自動化測試是否運行成功。docker

總結

SeleniumHQ支持的語言真的多。SeleniumHQ的的集羣模式只能用node開頭的鏡像纔可以使用。bash

參考

相關文章
相關標籤/搜索