0

我正在为我的自动化套件使用 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 代码启动和停止集线器并注册节点?

4

2 回答 2

0

您可以使用 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#/

于 2021-11-11T14:24:44.043 回答
0

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

脚步 :

  1. 安装泊坞窗
  2. 保存这个硒文件
  3. 打开命令提示符并输入: docker -compose -f docker-compose-v3.yml up。而已。
  4. 如果你想下来,docker-compose -f docker-compose-v3.yml down

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

于 2021-11-11T10:51:34.090 回答