您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
docker+selenium web自动化测试环境的部署
 
   次浏览      
 2019-4-30
 
编辑推荐:
本文来自于csdn,本文主要绍了自动化测试环境部的从下载,配置到运行的全部过程,希望对您的学习能有所帮助。

1、使用SecureCRT或Docker Quickstart Terminal打开docker终端。

2、下载selemiunUI测试需要的镜像

命令 docker pull:从docker hub中下载镜像。

首先搜索需要pull的image

命令:docker search selenium

针对docker selenium ,这里需要pull的image分别是:

selenium/hub
selenium/node-chrome-debug
selenium/node-firefox-debug

目前只支持在chrome和firefox中进行测试

下载的命令是docker pull+镜像名称+tag

docker
pull
baozhida/selenium-hub:3.3.1

docker
pull
baozhida/selenium-node-chrome-debug:58

docker
pull
baozhida/selenium-node-firefox-debug:52

 

官方镜像可能会使打开的网页出现中文乱码,故可采用上述镜像。

说明:默认的tag是latest;dockerhub服务器在海外,所以网速时好时坏,有时还会timeout报错,多试几次一定能成功。

由于国内访问直接访问Docker hub网速比较慢,拉取镜像的时间就会比较长。

针对此问题可以从dockerhub上拉取,这时再使用加速器修改docker的registry-mirrors 。这里使用的是DaoCloud的加速器。

下面介绍如何使用daocloud获取加速器的方法。

首先在http://www.daocloud.io/进行注册登录。

待登录成功后,点击加速器,如图所示:

等一会儿会出现以下界面,选择Windows系统,复制获取到的registry-mirrors配置。

请确认你的 Docker Toolbox 已经启动,并执行下列命令(请将 加速地址替换为在加速器页面获取的专属地址)

docker-machine ssh default

sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile

exit

docker-machine restart default

更多环境的加速配置请参考以下帮助文档

http://guide.daocloud.io/dcs/daocloud-9153151.html

3、查看镜像

输入命令docker images查看已经下载的镜像

4、创建并运行容器

创建selenium hub容器

dockerrun -d -p 4444:4444 --name selehub baozhida/selenium-hub:3.3.1

创建chrome node容器

docker run -d -p 5901:5900 --name node58 --linkselehub:hub

--shm-size=512mbaozhida/selenium-node-chrome-debug:58

创建firefox node容器

docker run -d -p 5912:5900 --name ff52 --linkselehub:hub

--shm-size=512m baozhida/selenium-node-firefox-debug:52

说明:

*-d参数:后台模式运行;

--name参数:别名;

-p参数:将容器的5900端口映射到docker的5901端口,访问Docker的5901端口即可访问到node容器;

--shm-size参数:docker默认的共享内存/dev/shm只有64m,有时导致chrome崩溃,该参数增加共享内存大小到512m.*

5、输入命令docker ps -a 查看正在运行的容器,处于up状态

6、在浏览器输入地址http://192.168.99.100:4444/grid/console

查看Selenium Grid控制台,能看到刚创建的容器已经正常注册

7、VNC远程浏览器环境

debug结尾的镜像都带有VNC服务端,本机安装VNC客户端,即可远程连接。

下载地址:https://www.realvnc.com/en/connect/download/vnc/

输入192.168.99.100:5901-->回车-->输入密码:secret-->确认-->进入chrome:58容器桌面

输入192.168.99.100:5901-->回车-->输入密码:secret-->确认-->进入firefox:52容器桌面


#coding=utf-8
from selenium import webdriver
firefox_capabilities={
"browserName":"firefox",
"version": "52.0",#注意版本号一定要写对
"platform": "ANY",
"javascriptEnabled": True,
"marionette": True,
}
browser=webdriver.Remote
("http://192.168.99.100:4444/wd/hub",
desired_capabilities=firefox_capabilities
)#注意端口号4444是我们上文中映射的宿主机端口号
browser.get("http://www.baidu.com")
browser.get_screenshot_as_file(r"C:/baidu.png")

上述代码的效果是:用firefox52.0打开百度界面,并截图保存在C盘中。

但按照以上操作,代码却报出了如下错误:

解决方法:

先进行相应的修改。

然后使用官方镜像创建selenium hub容器:

关闭原selenium hub容器

docker stop “CONTAINER ID”(对应容器的ID)

删除原selenium hub容器

docker rm “NAMES”(按上述操作,这里的NAME使用selehub)

下载 selenium/hub镜像

docker pull selenium/hub(版本默认为latest)

创建selenium hub容器

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

再次运行脚本

   
次浏览       
相关文章

云计算的架构
对云计算服务模型
云计算核心技术剖析
了解云计算的漏洞
相关文档

云计算简介
云计算简介与云安全
下一代网络计算--云计算
软浅析云计算
相关课程

云计算原理与应用
云计算应用与开发
CMMI体系与实践
基于CMMI标准的软件质量保证