0

我正在运行这里描述的硒网格。
我有集线器,一个节点在一台虚拟机上运行,​​其他节点在其他虚拟机上运行。

当我进入http://hub:4444/grid/控制台时,我可以看到节点和配置,但很多时候我需要:

  • 重新启动整个网格
  • 重启一个节点
  • 添加节点
  • 移除一个节点

目前,我通过登录所有节点并手动重新启动/更改来做到这一点。这非常耗时,尤其是当我需要重新启动整个网格时。

我的问题是,是否有一个软件可以让我定义机器,并且我可以快速做出这些更改。诸如网格操作/配置软件之类的东西,或者在这些情况下可以节省时间的一些最佳实践?

4

3 回答 3

1

一年前我们遇到了同样的问题。我之前在 SO 中问过一些类似的问题。如何维护 Selenium Grid?. Selenium Grid 2.0 提供了一些集成这些功能的方法。

然而,我的组织实施了一些不同的事情。我们为网格维护创建了一些 UI 屏幕。步骤如下:

  1. 获取数据库表中所有虚拟机的 IP 地址和 DNS
  2. 创建 Hub 和 RC VM 之间的映射
  3. 在所有 VM 的启动中放置一个小型 Java 程序,该程序将在 DB 上查找以找出它应该连接到哪个集线器以及它应该用于连接的浏览器配置。
  4. 创建用于在集线器之间重新分配 VM 的 UI。来自 UI 的任何分配都将重新启动 VM,进而触发启动脚本。

构建上述解决方案需要一些时间和精力,但值得的是我使用一年后的感受。

于 2013-01-08T02:24:07.840 回答
1

您可以对 Amazon AWS 进行研究,也可以对其进行投资。

如果您的 selenium 集线器端口 (4444) 对公众开放,您可以使用 AWS API 启动具有启动批处理文件的实例,以便在主机启动时使用它。java -jar server.jar -role node -hub http:hub:4444/grid/register

这也允许您启动 X 数量的实例,比如 1000 个,每台机器运行 1 个测试。您可能会在一小时内运行整个自动化回归套件。

当你得到一个稳固的系统后,你可以通过命令行(或通过运行你的测试)启动,然后随心所欲地关闭实例,而无需任何配置。

Selenium / Amazon
Amazon AWS
设置您的网格

附加材料
Selenium Grid EC2 AMI

于 2012-12-26T17:52:35.393 回答
0

Selenium Grid 是您的测试基础架构,但听起来您需要在它之上有一层来管理此基础架构。

我建议使用 Docker 来管理您的网格。与传统的 VM 设置相比,使用 Docker 有一些巨大的好处:

  1. Docker 容器比 VM 更轻量级。每个节点需要担心的开销更少。

  2. Docker 有许多内置方法可以快速创建网格、放大或缩小节点以及快速重新启动整个网格。

  3. Docker 容器都可以在一台机器上运行,因此有一个中心控制点。不再需要单独访问每个 VM 来进行故障排除或性能维护。

如果你想看一个例子,我最近在我的公司做了这个,并在这里写了:

http://www.conductor.com/nightlight/running-selenium-grid-using-docker-compose/

于 2015-04-07T15:13:30.250 回答