docker+selenium web自动化测试环境的部署

docker+selenium web自动化测试环境的部署


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容器桌面

 

8、在本地运行下面的脚本进行测试。

#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")
browser.close()

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

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

解决方法:

先按照(http://blog.csdn.net/liujingqiu/article/details/74857145)文中方法进行相应的修改。

然后使用官方镜像创建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


再次运行脚本

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一个开源的容器化平台,可以实现轻量级、可移植和自足的容器化应用程序的创建、部署和运行。通过使用Docker,可以将应用程序及其依赖项打包成一个容器,以简化应用程序的部署和管理过程。 Selenium是一个用于自动化Web浏览器操作的工具。它可以模拟用户在浏览器中的操作,如点击、输入文本、提交表单等。Selenium可以对Web应用程序进行自动化测试,并提供多种编程语言的支持。 Pytest是一个Python编程语言中的测试框架,用于编写和执行单元测试。它提供了丰富的断言库、执行测试的灵活控制,以及丰富的插件机制,使得测试编写和运行过程更加简单和高效。 结合使用DockerSelenium和Pytest可以实现自动化Web应用程序的测试和部署。通过将Selenium和Pytest集成在Docker容器中,可以创建一个独立的测试环境,无需在本地安装和配置相关的软件和依赖项。这样可以简化测试环境的搭建过程,并保持测试环境的一致性。 使用Docker容器中的Selenium和Pytest,可以编写自动化测试脚本,并在测试容器中运行。测试脚本可以使用Selenium模拟用户在Web应用程序中的操作,并使用Pytest进行断言和结果判断。通过使用Docker容器,测试可以在不同的环境中运行,确保测试的可移植性和一致性。 总结来说,DockerSelenium和Pytest联合使用可以实现自动化测试环境的快速搭建,提高测试效率和可移植性。这种集成可以帮助开发人员和测试人员更好地开发和测试Web应用程序,并简化部署和管理过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值