【问题标题】:Selenium Grid Hub and Node from Java CodeJava 代码中的 Selenium Grid Hub 和节点
【发布时间】:2021-12-22 21:40:48
【问题描述】:

我正在为我的自动化套件使用 Selenium Hub 和 Node 设置。截至目前,我正在使用以下命令在远程机器上手动启动集线器和节点。

  • java -jar selenium-server-standalone-3.141.59.jar -role hub
  • java -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -hub http://localhost:4444/grid/register

我想删除这个手动过程。是否可以用java代码启动和停止hub以及注册节点?

【问题讨论】:

    标签: java selenium selenium-grid


    【解决方案1】:

    是的。请使用 docker,很容易设置。

    步骤:

    1. 安装docker
    2. 保存这个硒file
    3. 打开命令提示符并输入:docker-compose -f docker-compose-v3.yml up。就是这样。
    4. 如果你想down,docker-compose -f docker-compose-v3.yml down

    这将在内部创建集线器和节点并将节点附加到集线器。 你可以简单地通过这个“http://localhost:4444/wd/hub”开始使用节点

    【讨论】:

      【解决方案2】:

      您可以使用 docker 和 docker-compose 在远程机器上运行 Selenium Grid

      1. 在你的远程机器上安装docker,以下链接详细介绍了各种平台的安装:docs.docker.com/engine/install/
      2. 在远程机器上安装 docker-compose,以下链接详细介绍了各种平台的安装: docs.docker.com/compose/install
      3. 使用您想要的配置创建一个 docker-compose.yml 文件,以下链接根据您要设置的网格类型提供信息: docker-selenium/tree/trunk#docker-compose

      根据您当前的配置,它将像以下一样简单(注意:该示例使用 Selenium Grid v4,它也适用于 Selenium 3 项目,但是如果您愿意,也可以替换 Selenium Grid v3(如果这是您的偏好):

      version: "3"
      services:
        selenium-hub:
          image: selenium/hub:4.0.0
          container_name: selenium-hub
          ports:
            - "4442:4442"
            - "4443:4443"
            - "4444:4444"
        chrome:
          image: selenium/node-chrome:latest
          container_name: chrome
          depends_on: 
            - selenium-hub
          environment: 
            - SE_EVENT_BUS_HOST=selenium-hub
            - SE_EVENT_BUS_PUBLISH_PORT=4442
            - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
      

      假设您只需调用上述文件docker-compose.yml,将其放在您选择的目录中。

      建议您以分离模式启动网格,使其在后台运行。 在文件所在的目录中,执行以下命令:docker-compose up -d(您也可以在远程机器的根目录下运行此命令,使用 -f 标志来声明 docker compose 文件所在的位置:docker-compose -f /path/to/directory/docker-compose.yml up -d

      当不再需要 Selenium Grid 时,执行以下命令:docker-compose down(您也可以在远程计算机的根目录下运行此命令,使用 -f 标志来声明 docker compose 文件所在的位置:docker-compose -f /path/to/directory/docker-compose.yml down )

      根据您运行自动化测试套件的方式,您可以通过多种方式启动、运行和关闭网格:

      1. 使用上述命令手动
      2. 计划作业(Windows 计划服务、Linux crontab 作业)
      3. 将其作为 Jenkins 阶段的一部分运行

      选项已打开。

      还有一点建议,selenium.dev 经常使用最新的安全补丁更新他们的镜像(大约每 2 周一次)。为确保您拥有已修复漏洞的最新版本映像,您可以在网格未启动时使用以下命令:docker-compose pull

      继续使用现有配置来执行测试。

      要通过浏览器访问 Selenium Grid v4 控制台视图,请访问:http://<server-ip/name>:4444/ui/index.html#/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-30
        • 2021-12-27
        • 2018-02-03
        • 1970-01-01
        • 2011-10-03
        • 1970-01-01
        相关资源
        最近更新 更多