用docker创建selenium-grid

官网说明:https://github.com/SeleniumHQ/docker-selenium

Standalone Chrome and Firefox
$ docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:3.141.59-vanadium
# OR
$ docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-firefox:3.141.59-vanadium
Selenium Grid Hub and Nodes
使用 docker 局域网方式

此时需要创建hub和node相通的一个网络,这里取名为“grid”

$ docker network create grid
$ docker run -d -p 4444:4444 --net grid --name selenium-hub selenium/hub:3.141.59-vanadium
$ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-chrome:3.141.59-vanadium
$ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-firefox:3.141.59-vanadium

使用结束后,需要删除网络

# 删除所有未使用的网络
$ docker network prune
# 或
# 只删除刚才创建的“grid”网络
$ docker network rm grid
使用 docker 构建方式

创建docker-compose.yaml文件:

docker-compose安装: https://docs.docker.com/compose/install/

version: "3"
services:
  selenium-hub:
    image: selenium/hub:3.141.59-vanadium
    container_name: selenium-hub
    ports:
      - "4444:4444"
  chrome:
    image: selenium/node-chrome:3.141.59-vanadium
    volumes:
      - /dev/shm:/dev/shm
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
  firefox:
    image: selenium/node-firefox:3.141.59-vanadium
    volumes:
      - /dev/shm:/dev/shm
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444

在同一个文件夹内使用 docker-compose up 命令启动,
使用 docker-compose down 命令停止服务。

docker容器配置

指定Hub的主机名和端口

$ docker run -d -e HUB_HOST=<hub_ip|hub_name> -e HUB_PORT=4444 selenium/node-chrome:3.141.59-vanadium

指定Node的主机名和端口

$ docker run -d -p <node_port>:5555 -e HUB_HOST=<hub_ip|hub_name> -e HUB_PORT=4444 -e REMOTE_HOST="http://<node_ip|node_name>:<node_port>" selenium/node-firefox:3.141.59-vanadium

设置分辨率
默认分辨率:1360 x 1020 ,24位彩色,96DPI,可以通过下面的参数修改:

docker run -d -e SCREEN_WIDTH=1366 -e SCREEN_HEIGHT=768 -e SCREEN_DEPTH=24 -e SCREEN_DPI=74 selenium/standalone-firefox

增加浏览器实例数
默认一个Node容器只创建1个slot ,可以通过下面的参数修改:

$ docker run -d -e HUB_HOST=<hub_ip|hub_name> -e NODE_MAX_INSTANCES=5 -e NODE_MAX_SESSION=5 selenium/node-firefox:3.141.59-vanadium

如果运行无头模式,可以不启动Xvfb环境。

$ docker run -d --net grid -e HUB_HOST=selenium-hub -e START_XVFB=false -v /dev/shm:/dev/shm selenium/node-chrome
Docker 构建 Chrom双节点完整实例
  1. 无头模式
  2. 每个节点最多5个实例,每个实例最多5个session
  3. 浏览器的系统时间与宿主的时间一致
  4. 时区为中国时区

docker-compose.yaml

version: "3"
services:
  selenium-hub:
    image: selenium/hub:3.141.59-vanadium
    container_name: selenium-hub
    volumes:
      - /etc/localtime:/etc/localtime
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "4444:4444"
  chrome1:
    image: selenium/node-chrome:3.141.59-vanadium
    volumes:
      - /dev/shm:/dev/shm
      - /etc/localtime:/etc/localtime
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
      - NODE_MAX_INSTANCES=5 
      - NODE_MAX_SESSION=5
      - START_XVFB=false
      - TZ=Asia/Shanghai
  chrome2:
    image: selenium/node-chrome:3.141.59-vanadium
    volumes:
      - /dev/shm:/dev/shm
      - /etc/localtime:/etc/localtime
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
      - NODE_MAX_INSTANCES=5
      - NODE_MAX_SESSION=5
      - START_XVFB=false
      - TZ=Asia/Shanghai
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值