Selenium 系列篇(八):Docker 分布式搭建

Selenium 系列篇(八):Docker 分布式搭建1. 前言 运行脚本,可以发现 VNC Viewer 会展示完整的自动化过程。 实际项目中,可以下载 selenium/node-firefox-debug 镜像,通过镜像开启多个容器节点,只要保证端口号不冲突即可。 如此,结合 Docker,Selenium Grid 可以非…

Selenium 系列篇(八):Docker 分布式搭建

1. 前言

上篇文章 提到可以利用 Selenium Grid 搭建分布式自动化测试环境

由于 Docker 可以高效地利用系统资源,提供一致性运行环境,不需要额外配置,更加方便进行持续集成和持续交付等优势

所以,在实际项目中,一般会采用 Docker 容器来搭建分布式环境

2.下载镜像

首先,在服务器下载安装 Docker CE 免费版本,并配置加速镜像源,然后重启 Docker 应用

# 编辑文件,输入镜像加速地址sudo vi /etc/docker/daemon.json# 输入地址# Docker中国官方镜像加速{ "registry-mirrors": ["https://registry.docker-cn.com"]}# 重启dockersystemctl restart docker

接着,使用 docker pull 命令下载下面 3 个镜像到本地:

1、selenium/hub:主节点镜像 hub

2、selenium/node-chrome:node 节点

3、selenium/node-chrome-debug:带有 VNC 服务端,便于观看执行步骤

# 主hubdocker pull selenium/hub# node节点docker pull selenium/node-chrome# selenium/node-chrome-debug VNC Serverdocker pull selenium/node-chrome-debug

3.运行容器

使用 docker run 命令,可以直接通过镜像创建一个容器并运行起来

首先,创建并启动 1 个主 hub 容器,并使用 –name 参数进行重命名

# 主hub# -P:将容器端口映射到docker主机的一个随机端口上# --name:重命名,便于管理docker run -d -P --name hub_xag selenium/hub

然后,创建并启动 1 个 Chrome node 节点容器,并使用 -p 参数,将容器的 5900 端口映射到主机的 5903 端口

# node节点# --link:关联到hub主节点docker run -d -p 5903:5900 --link hub_xag:hub --name node1 selenium/node-chrome

最后,创建一个 chrome-debug 容器,并将端口映射到主机的 5900 端口上

# chrome-debug容器docker run -d -p 5900:5900 --link hub_xag:hub selenium/node-chrome-debug

使用 docker ps -a 命令即可以查看容器的运行状态及端口映射情况

Selenium 系列篇(八):Docker 分布式搭建

需要注意的是,如果是部署在服务器,需要配置服务器防火墙和安全组规则

4.查看节点及启动 VNC

使用 Chrome 打开通过 Docker 主机 IP + Hub 主节点映射的端口号组成的 URL

比如:http://139.199.xx.xx/grid/console

可以很直观地看到当前 Hub 主节点下所有注册的 Node 节点列表

Selenium 系列篇(八):Docker 分布式搭建

然后,在本机上下载安装 VNC Viewer,打开客户端软件

输入 Docker 主机 IP + chrome-debug 映射在 Docker 主机的端口号,就可以实时查看 Docker 主机的运行情况

比如:http://139.199.xx.xx:5900

需要注意的是,第一次登陆默认的密码是:secret

Selenium 系列篇(八):Docker 分布式搭建

5.编写脚本并运行

随手编写一段脚本,将 command_executor 参数中的地址设置为上面 Hub 主节点 IP 地址

from selenium import webdriverdriver = webdriver.Remote(command_executor='http://139.199.xx.xx:32768/wd/hub',desired_capabilities={'browserName': 'chrome'})driver.get('https://www.baidu.com')driver.find_element_by_id("kw").send_keys("欢迎关注公众号:AirPython")driver.find_element_by_id("su").click()print(driver.page_source)

运行脚本,可以发现 VNC Viewer 会展示完整的自动化过程。

6.最后

实际项目中,可以下载 selenium/node-firefox-debug 镜像,通过镜像开启多个容器节点,只要保证端口号不冲突即可。

如此,结合 Docker,Selenium Grid 可以非常方便地创建、管理分布式自动化测试环境。

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。

推荐阅读

Selenium 系列篇(八):Docker 分布式搭建

今天的文章Selenium 系列篇(八):Docker 分布式搭建分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/16912.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注