docker+selenium Grid搭建自动化分布式测试环境
Posted gcgc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker+selenium Grid搭建自动化分布式测试环境相关的知识,希望对你有一定的参考价值。
当自动化测试需要考虑到兼容性的时候,之前的做法是每个执行机上安装不同版本的浏览器,实际上这样做会很浪费资源,现在有了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查看容器运行状态
[email protected]:~$ 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搭建自动化分布式测试环境的主要内容,如果未能解决你的问题,请参考以下文章
Docker Selenium Grid 全量集成测试环境搭建和负载均衡
Docker Selenium Grid 全量集成测试环境搭建和负载均衡
Selenium Grid Docker-通过 Jenkins 实现自动化