docker+selenium grid+python实现分布式自动化测试
来源:互联网 发布:it招标书 编辑:程序博客网 时间:2024/06/05 08:35
把环境部署在docker里,会更干净,更好管理,部署起来更容易,且可复制性强等,好处不多说,直接记录过程
dockers的安装及基本命令上一篇已经介绍过http://blog.csdn.net/songer_xing/article/category/7301775,本篇直接结合selenium
1、docker里获取selenium 镜像
先启动docker 服务,输入命令,service docker start
然后获取selenium相关镜像,本篇部署一个hub,一个chrome node
输入命令
docker pull selenium/hub
docker pull selenium/node-chrome-debug
没指定版本即下载最新版本的镜像,docter会尝试先从默认镜像仓库下载(默认使用docter hub公共注册服务器中的仓库),也可以通过配置,使用自定义的镜像仓库
下载会比较慢,全部下载完成以后,查看下载完的镜像
输入命令
docker images
这里介绍下添加国内镜像的方法,这样下载会很快
我这里用阿里云加速器
登录阿里开发平台注册:https://dev.aliyun.com/search.html
点击创建我的容器镜像,点击镜像加速器,选择自己所属平台,按要求配置即可
2、创建并运行selenium相关容器
输入命令
docker run -p 5555:4444 -d --name hub selenium/hub
docker run -d -p 5900:5900 --link hub:hub selenium/node-chrome-debug
输入docker ps 显示正运行的容器
run 是创建并运行容器。
-p 是把容器里的端口映射出来,让别人可以访问。
-d 在后台运行
--name 给容器起别名
--link是链接别名为hub的容器
打开http://192.168.253.228:5555/grid/console,这时候selenium grid环境已经部署完成,这就是在docker里部署的好处,用容器的隔离,省去好几台设备部署node,3、运行测试
到这里就环境部署完成,直接运行测试即可
#coding=utf-8from selenium import webdriverimport oschrome_driver = os.path.abspath(r"/opt/webDriver/chromedriver")os.environ["webdriver.chrome.driver"] = chrome_driverchrome_capabilities ={ "browserName": "chrome", "version": "", "platform": "ANY", "javascriptEnabled": True, "webdriver.chrome.driver":chrome_driver}browser = webdriver.Remote("http://192.168.253.228:5555/wd/hub", desired_capabilities=chrome_capabilities)browser.get("http://www.163.com")print browser.titlebrowser.get_screenshot_as_file(r"d:/chrome.png")browser.quit()
这里要注意的是,使用chrom浏览器,需要配置chromedriver,配置方法有两种,一种是配在环境变量里,我是直接在代码里指定路径
下载命令如下
mkdir -p /opt/webDriver
cd /opt/webDriver
wget https://chromedriver.storage.googleapis.com/2.33/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
chmod 775 chromedriver
但打开截图发现中文乱码,连接vnc进去看,运行打开浏览器中文确实是乱码
4、基于Dockerfile创建镜像,解决中文乱码问题
Dockerfile加入内容如下
FROM selenium/node-chrome-debugUSER rootRUN apt-get update \ && apt-get -y install ttf-wqy-microhei ttf-wqy-zenhei \ && apt-get clean
先将Dockerfile上传到目标主机上,先安装上传命令
yum install lrzsz –y,之后rz上传
主要基于原镜像,加入中文字体
运行dockerfile来构建,输入命令
docker build -t node-chrome-debug/chinese /opt/songer/
构建完成,即生成新的镜像,运行
docker run -d -p 5902:5900 --link hub:hub --name chinese node-chrome-debug/chinese
如图,已经运行5、重新测试
测试端口连接如图,可用,测试截图后,中文正常
用vnc连接进去,最终效果如图
- docker+selenium grid+python实现分布式自动化测试
- jenkins+selenium grid实现分布式自动化测试
- 使用python-selenium grid进行分布式测试
- Docker+Selenium Grid构建分布式Web测试环境
- selenium+python—实现基本自动化测试
- python + selenium 自动化测试
- selenium + python 自动化测试
- Python自动化测试-Selenium
- selenium + python 自动化测试
- Docker与Web自动化测试:一键创建Selenium Grid集群
- Selenium-Grid工作方式(自动化测试技术)
- Selenium grid 分布式运行测试代码
- 使用docker selenium 构建web自动化分布式测试环境时,遇到的一些问题
- 自动化测试(Selenium Grid+Java)--Selenium有用篇
- Python + Selenium网页自动化测试
- Selenium+Python 自动化测试模型
- python+selenium 自动化测试webui
- python+selenium自动化测试封装
- bootstrap modal框 不根据id关闭 ,强行关闭模态框
- 关于dubbo的一个面试题
- ssm多文件上传
- Lua Tables
- 7-17 爬动的蠕虫(15 分)
- docker+selenium grid+python实现分布式自动化测试
- 1140: 小数点后第n位 多实例
- Maven工程搭建
- 系统内核的加载
- STL理论基础
- cordova platform add android报错解决方法
- 3.7对象与const【C++】
- 大数据从0到一(Hadoop)
- Spring boot-应用打包部署