docker selenium grid2 环境搭建

本文详细介绍了如何使用SeleniumGrid构建分布式测试环境,包括环境依赖、hub与node节点配置,以及利用Docker快速部署SeleniumGrid集群的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

selenium grid2环境搭建

使用docker构建selenium grid分布式环境


selenium grid2环境搭建

Selenium Grid实际它是基于Selenium RC的,而所谓的分布式结构就是由一个hub节点和若干个node代理节点组成。Hub用来管理各个代理节点的注册信息和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令转发给代理节点来执行。下面结合环境部署来理解Hub与node节点的关系。

环境依赖: Java1.8 运行环境

       选择最新版本的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、查看镜像

sudo docker images

 

REPOSITORY            TAG       IMAGE ID         CREATED       SIZE

selenium/node-chrome  latest    1eba57bd3d79     12 days ago   823MB

selenium/hub          latest    d1437f7d9f87     12 days ago   285MB

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

#!/bin/bash

 

case $1 in

  "start")

     echo 'begain to start selenium hub and nodes'

     echo 'nodes num is '$2

     rm -f log.txt

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

 

     for((i=1;i<=$2;i++));

     do

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

         echo 'start selenium node'$i' ok'

         echo 'node'$i>>log.txt

     done

  ;;

 

  "stop")

    echo 'stop hub begain...'

    docker stop hub

    docker rm hub

    echo 'stop hub down...'

    while read line

    do

        echo "begain stop "$line

        docker stop $line

        docker rm $line

        echo 'stop '$line' success'

    done < log.txt

 

  ;;

esac

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值