📜  带有 8 个容器的 selenium 网格泊坞窗 (1)

📅  最后修改于: 2023-12-03 15:39:24.062000             🧑  作者: Mango

带有 8 个容器的 Selenium 网格泊坞窗

简介

Selenium 网格泊坞窗是一个用于分布式测试的工具,可以将测试脚本在多台机器上并行执行,大大缩短了测试时间。网格泊坞窗使用 Docker 容器来管理测试环境,每个容器代表一个测试节点,可以通过添加或删除容器来实现动态调整测试集群规模。

本文介绍一个带有 8 个容器的 Selenium 网格泊坞窗,包括如何安装、配置和使用。

安装

要运行一个 Selenium 网格泊坞窗,需要先安装 Docker 和 Docker Compose。这里假设已经安装好了这两个工具。

接下来,需要创建一个 Docker Compose 配置文件,内容如下:

version: '3'

services:
  hub:
    image: selenium/hub:3.141.59-20200101
    ports:
      - "4444:4444"
    environment:
      GRID_MAX_SESSION: 16
      GRID_BROWSER_TIMEOUT: 300

  chrome:
    image: selenium/node-chrome:3.141.59-20200101
    depends_on:
      - hub
    environment:
      HUB_HOST: hub
      HUB_PORT: 4444

  firefox:
    image: selenium/node-firefox:3.141.59-20200101
    depends_on:
      - hub
    environment:
      HUB_HOST: hub
      HUB_PORT: 4444

  opera:
    image: selenium/node-opera:3.141.59-20200101
    depends_on:
      - hub
    environment:
      HUB_HOST: hub
      HUB_PORT: 4444

  edge:
    image: selenium/node-edge:3.141.59-20200101
    depends_on:
      - hub
    environment:
      HUB_HOST: hub
      HUB_PORT: 4444

  safari:
    image: selenium/node-safari:3.141.59-20200101
    depends_on:
      - hub
    environment:
      HUB_HOST: hub
      HUB_PORT: 4444

  ie:
    image: selenium/node-ie:3.141.59-20200101
    depends_on:
      - hub
    environment:
      HUB_HOST: hub
      HUB_PORT: 4444

  android:
    image: selenium/node-android:3.141.59-20200101
    depends_on:
      - hub
    environment:
      HUB_HOST: hub
      HUB_PORT: 4444

  ios:
    image: selenium/node-ios:3.141.59-20200101
    depends_on:
      - hub
    environment:
      HUB_HOST: hub
      HUB_PORT: 4444

上面的配置文件定义了 8 个容器,分别代表不同的测试节点。其中,hub 是 Selenium 的主控节点,负责分配测试任务和管理测试结果。其余 7 个节点分别代表 Google Chrome、Firefox、Opera、Microsoft Edge、Safari、Internet Explorer 和 iOS / Android 设备。这里选择了比较常见的测试节点,可以根据实际需求进行修改。

将以上代码保存为 docker-compose.yml,然后在存放该文件的目录下运行以下命令即可启动 Selenium 网格泊坞窗。

docker-compose up -d
使用

启动成功后,可以通过浏览器访问 http://localhost:4444/grid/console 查看测试节点的状态。

使用 Selenium WebDriver 时,只需要将测试代码中的 RemoteWebDriver 实例化为 http://localhost:4444/wd/hub 即可连接到 Selenium 主控节点。例如:

WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), new ChromeOptions());
总结

以上就是一个带有 8 个容器的 Selenium 网格泊坞窗的安装和使用介绍。通过动态调整容器数量和类型,可以轻松扩展测试集群的规模和种类,满足不同的测试需求。