目录
selenium grid2环境搭建
Selenium Grid实际它是基于Selenium RC的,而所谓的分布式结构就是由一个hub节点和若干个node代理节点组成。Hub用来管理各个代理节点的注册信息和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令转发给代理节点来执行。下面结合环境部署来理解Hub与node节点的关系。
环境依赖: Java1.8 运行环境
- 第一步、下载selenium-server-standalone-xxx.jar
下载地址:
https://www.seleniumhq.org/download/
选择最新版本的server进行下载
- 第二步、使用命令启动hub
下载之后,放置到任意目录,并执行命令 java -jar selenium-server-standalone-3.12.0.jar -role hub,如下图所示,其中 - 第三步、使用命令启动node
还是使用selenium-server-standalone-3.12.0.jar, 执行命令java -jar selenium-server-standalone-3.12.0.jar -role node -hub http://192.168.xx.xx:4444/grid/register/ -browser browserName=chrome,maxInstances=5 -port 5557
这里注意下,相应的selenium浏览器驱动比如chromedriver, 必须跟 selenium-server-standalone-xxx-jar 放在同一目录下
-
命令选项请参考
-
- 第四步、打开console页面检查
http://192.168.78.12:xxx/grid/console
使用docker构建selenium grid分布式环境
docker hub(仓库):
https://hub.docker.com/r/selenium/hub/
1、下载主hub镜像
$ sudo docker pull selenium/hub
2、下载主node chrome 镜像
$ sudo docker pull selenium/node-chrome
3、查看镜像
|
4、启动主hub容器
$ sudo docker run -d -P --name selenium-hub selenium/hub
- -d 表示容器以守护态(Daemonized)形式运行。
- -P 表示 Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。
5、启动分支node chrome 容器
$ sudo docker run -d --link selenium-hub:hub selenium/node-chrome
6、查看容器
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9cd0dac69875 selenium/hub "/opt/bin/entry_poin…" 12 hours ago Up 12 hours 0.0.0.0:32768->4444/tcp selenium-hub
18d139a6c36d selenium/node-chrome "/opt/bin/entry_poin…" 12 hours ago Up 12 hours eloquent_gates
这里需要注意,Selenium/hub 容器的端口号为 4444
,对Ubuntu映射的端口为 32768
,前面通过 -P
参数自动分配。
最后分享一个我写的shell脚本,用于控制启动集群和停止集群的
启动 ./controller.sh start 50
关闭 ./controller.sh stop
|