基于docker轻松部署selenium grid环境

做web自动化的同学都知道selenium grid非常好用,但是环境配置特别麻烦,很多人都躺在了环境搭建。那么有没有更简单的方式呢,答案是肯定的,今天我们就用docker来完成它,希望对大家有帮助。

一、环境准备

准备一台 Linux 服务器(云服务器、自建 Linux 服务器都可以)

在 Linux 服务器上安装 docker,docker安装就不讲了,照着官网的命令来就可以了,很简单的。

二、准备开工

第一步:拉取docker官方镜像

拉取hub镜像:

docker pull selenium/hub

拉取chrome浏览器镜像:

docker pull selenium/node-chrome

第二步:启动Hub节点的docker

docker run -p 5555:4444 -d --name hub selenium/hub

  • -d:后台运行容器

  • -p 5555:4444:将宿主机端口5555与容器端口4444做映射

第三步:启动Node节点的docker

docker run -P -d --link hub:hub --name chrome selenium/node-chrome

  • -P:暴露默认端口

  • -d:后台运行容器

  • –link:链接hub容器

第四步:验证环境搭建是否成功

浏览器访问:http://192.168.1.66:5555/grid/console

看到有你映射的浏览器版本和图标就成功了

第五步:上代码

import time

from selenium import webdriver

from selenium.webdriver.common.desired_capabilitiesimport DesiredCapabilities

driver = webdriver.Remote(command_executor='http://192.168.1.66:5555/wd/hub',desired_capabilities=DesiredCapabilities.CHROME)

driver.get('https://www.baidu.com')

print("跑起来吧......")

time.sleep(2)

print("获取百度的title:",driver.title)

driver.quit()

print("跑完了......")

脚本截图如下:

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

### 使用Docker安装和配置Selenium Grid #### 安装Docker 为了使用Docker部署Selenium Grid,首先需要确保目标机器已经成功安装了Docker环境。对于大多数Linux发行版而言,可以通过官方文档中的指导完成这一过程。 #### 配置Selenium Grid Hub 和 Node 利用Docker镜像可以简化Selenium Grid的搭建流程。具体操作如下: - **启动Hub** 可以通过拉取官方提供的`selenium/hub`镜像并运行容器作为Grid的核心枢纽(Hub),这允许其他测试节点(Node)连接到它来进行分布式执行自动化脚本的任务[^2]。 ```bash docker pull selenium/hub:latest docker run -d --name selenium-hub -p 4444:4444 selenium/hub:latest ``` - **启动Node** 接下来要设置至少一个以上的浏览器实例作为节点加入到刚才创建好的hub当中去。这里同样借助于预先构建好的docker镜像如`selenium/node-chrome` 或者 `selenium/node-firefox` 来快速实现这一点。 对于Chrome节点来说, ```bash docker pull selenium/node-chrome:latest docker run -d --link selenium-hub:hub selenium/node-chrome:latest ``` 同理可得Firefox节点的操作命令, ```bash docker pull selenium/node-firefox:latest docker run -d --link selenium-hub:hub selenium/node-firefox:latest ``` 上述命令会自动将新启动的node注册给之前提到的那个名为`selenium-hub`的服务端口上监听着来自客户端发送过来的各种请求消息[^1]。 #### 测试验证 一旦完成了以上步骤之后就可以尝试编写简单的Python或者Java程序调用WebDriver API接口向远程地址发起HTTP POST方法从而触发页面加载动作进而模拟真实用户的交互行为达到功能回归的目的了。 ```python from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities driver = webdriver.Remote( command_executor='http://localhost:4444/wd/hub', desired_capabilities=DesiredCapabilities.CHROME) driver.get('https://www.example.com') print(driver.title) driver.quit() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值