2012-12-26 51 views
0

我按照here所述运行硒网格。
我有集线器,一个节点在一个虚拟机上运行,​​其他节点在其他虚拟机上运行。

当我去http://hub:4444/grid/控制台,我可以看到的节点和配置,但在很多时候我需要:硒网格操纵软件

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

此刻我通过登录到所有节点并手动重新启动/更改。这非常耗时,特别是当我需要重新启动整个电网时。

我的问题是,是否有定义机器的软件,并且我很快能够进行这些更改。类似于网格操纵/配置软件,或者可能是在这些情况下节省时间的一些最佳实践?

回答

1

你可以做研究,也可以在亚马逊AWS上投资。

如果您硒枢纽港(4444)是向公众开放,您可以使用AWS API来火了,当它启动时它有一个启动批处理文件来使用你的主机实例。 java -jar server.jar -role node -hub http:hub:4444/grid/register

这也可以让你几乎触发X个实例,比如1000,每台机器运行1个测试。可能你可以在一个小时内运行一个完整的自动化回归套件。

当你得到一个可靠的系统,你就可以通过命令行(或通过运行测试)火了起来,然后关机情况下就突发奇想,无需任何配置。

硒/亚马逊
Amazon AWS
Setting up your Grid

额外的材料
Selenium Grid EC2 AMI

+0

感谢您的回答,但我正在寻找一个免费解。另一个缺点是,并非所有我正在测试的应用程序都可以从公共访问>也有了这个解决方案,我仍然会最终手动管理网格。 –

+1

不完全。您对付费解决方案是正确的,但是Amazon VPC允许您拥有自己的实例云,这意味着他们可以访问其他隐藏的Web应用程序。不,你不会在初始配置后再手动管理它。 – sircapsalot

+0

为什么downvote? – sircapsalot

1

我们一年前有同样的问题。早些时候我曾问过类似的问题。 How to maintain Selenium Grid?。 Selenium Grid 2.0提供了一些集成这些功能的方法。

但是,我的组织执行了一些不同的事情。我们为网格维护创建了一些UI屏幕。步骤是这样的:

  1. 获取虚拟机的所有IP地址和DNS数据库表
  2. 创建
  3. 中的所有虚拟机的启动将一个小型的Java程序集线器和RC虚拟机之间的映射这将做一个查找在DB找出它应该连接到哪些枢纽和它应该使用什么浏览器配置进行连接。
  4. 的重新分配集线器之间的虚拟机创建UI。来自用户界面的任何分配都将重新启动虚拟机,并会依次触发启动脚本。

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

0

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

我推荐使用Docker来管理你的网格。在传统VM设置中使用Docker有一些巨大的好处:

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

  2. Docker有许多内置的方法来快速创建网格,缩放节点或缩小节点并快速重新启动整个网格。

  3. 码头集装箱都可以在一台机器上运行,所以有一个中心控制点。不再需要单独访问每个虚拟机来解决问题或维护性能。

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

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