Selenium Grid 的搭建方法

传统 Selenium Grid 的搭建方法

搭建一个具有 1 个 Node 的 Selenium Grid。那么通常来讲我们需要 2 台机器,其中一台作为 Hub,另外一台作为 Node,并要求这两台机器已经具备了 Java 执行环境。

1.通过官网下载 selenium-server-standalone-.jar 文件。这里需要注意的是,不管是 Hub 还是Node,都使用同一个 JAR 包启动,只是启动参数不同而已。

2.将下载的 selenium-server-standalone-.jar文件分别复制到两台机器上.

3.选定其中一台机器作为 Selenium Hub,并在这台机器的命令行中执行以下命令:

java 复制代码
java -jar selenium-server-standalone-<version>.jar -role hub

在这条命令中,"-role hub"的作用是将该机器启动为 Selenium Hub。启动完成后,这台机器默认对外提供服务的端口是 4444。

然后,你就可以在这台机器上通过http://localhost:4444/grid/console观察 Selenium Hub 的状态,也可以在其他机器上通过 http://:4444/grid/console 观察 Selenium Hub 的状态。其中, 是这台 Selenium Hub 机器的 IP 地址。由于此时还没有 Node 注册到该 Hub 上,所以你看不到任何的 Node 信息。

启动过程和状态信息,分别如图所示。

4.在另一台作为 Selenium Node 的机器上执行以下命令:

java 复制代码
java -jar selenium-server-standalone-<version>.jar -role node -hub http:// <Hub_IP>:4444/grid/register

这条命令中,"-role node"的作用是,将该机器启动为 Selenium Node,并且通过"-hub"指定了 Selenium Hub 的节点注册 URL。

执行成功后,你可以再次打开 http://:4444/grid/console 观察 Selenium Hub 的状态。此时,你可以看到已经有一个 Node 挂载到了 Hub 上。这个 Node,就是用来实际执行测试的机器了。并且,这个 Node 上已经缺省提供了 5 个 Firefox 浏览器的实例、5 个 Chrome 浏览器的实例和 1 个 IE 浏览器的实例,同时默认允许的并发测试用例数是 5 个。

如果你想自己配置这些内容,可以在启动 Node 的时候提供不同的启动参数。具体可以指定哪些参数,你可以参考Selenium Grid的官方文档。

Node启动过程

Hub端Node注册的过程

5.完成上述操作后,在测试用例中通过以下代码将测试指向 Selenium Hub,然后由 Selenium Hub 完成实际测试执行机的分配与调度工作。其中,最关键的部分是,创建 RemoteWebDriver 实例的第一个参数,这个参数不再是一个具体的测试执行机的 IP 地址或者名字了,而是 Selenium Hub 的地址。

java 复制代码
DesiredCapabilities capability = DesiredCapabilities.firefox();
WebDriver driver = new RemoteWebDriver(new URL("http://<Hub_IP>:4444/wd/hub"), capability);

基于 Docker 的 Selenium Grid 的搭建方法

java 复制代码
#创建了Docker的网络grid
$ docker network create grid

#以Docker容器的方式启动Selenium Hub,并且对外暴露了4444端口
$ docker run -d -p 4444:4444 --net grid --name selenium-hub selenium/hub:3.14.0-europium

#以Docker容器的方式启动并挂载了Chrome的Selenium Node
$ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-chrome:3.14.0-europium

#以Docker容器的方式启动并挂载了Firefox的Selenium Node
$ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-firefox:3.14.0-europium
相关推荐
卓码软件测评5 小时前
第三方软件验收评测机构【Gatling安装指南:Java环境配置和IDE插件安装】
java·开发语言·ide·测试工具·负载均衡
测试人社区—小叶子11 小时前
金融系统迁移测试:历时半年的完整实践复盘
运维·网络·人工智能·python·测试工具·金融
测试人社区—小叶子14 小时前
Rust会取代C++吗?系统编程语言的新较量
运维·开发语言·网络·c++·人工智能·测试工具·rust
墨^O^14 小时前
软件测试开发知识笔记
笔记·学习·测试工具·单元测试·测试用例·压力测试·ab测试
测试人社区—小叶子14 小时前
量子计算实用化元年:我们该关注什么?
运维·网络·人工智能·python·测试工具·算法·自动化
爱打代码的小林15 小时前
python爬虫基础
爬虫·python·selenium
一点事1 天前
用postman,如何调用webservice接口?
测试工具·postman
程序员杰哥1 天前
python+requests接口自动化测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
测试人社区—84161 天前
Postman API测试指南
人工智能·git·测试工具·自动化·bug·postman
天才测试猿1 天前
自动化测试实践总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例