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

参考

相关文章
相关标签/搜索