为什么80%的码农都做不了架构师?>>>
问题
最新想通过界面批量输入数据到系统里面。
思路
使用自动化测试工具解决这个批量操作到问题。
Selenium
镜像
- selenium/hub
- selenium/node-chrome 他们两者之间的关系,就是hub是管理者,node-chrome是被管理者。hub管理这所有测试集群的容器进程。如下图:
这里我们只使用这个两个镜像进行使用,开始安装镜像,这里假设本地已经完成了docker的安装:
docker pull selenium/hub
docker pull selenium/node-chrome
访问Docker Hub访问,找到相关命令行进行安装。
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是否正常启动。
上面表示Node,已经连接上了Hub。
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图片来查看自动化测试是否运行成功。
总结
SeleniumHQ支持的语言真的多。SeleniumHQ的的集群模式只能用node开头的镜像才能够使用。
参考
- SeleniumHQ/docker-selenium
- Docker Hub
- seleniumhq官网
- An Introduction to Using Selenium-Docker Containers for End-to-End Testing
- Docker Selenium