【问题标题】:Selenium grid2: how to run multiple tests against a single node?Selenium grid2:如何针对单个节点运行多个测试?
【发布时间】:2012-05-07 20:21:38
【问题描述】:

我担心这是一个非常琐碎的问题。但是我在让 selenium Grid2 对单个节点运行多个测试时遇到了一些麻烦,据我了解,这应该可以通过设置 maxSessions 来实现。

这是我的设置: -集线器完全标准运行 -Node 运行 firefox,启用 5 个实例和 5 个会话。

我使用 MBUNIT 创建了 6 个虚拟测试并添加了 [Paralizable] 以使它们并排运行。

这是我为测试所做的: 1:启动 2 个节点并运行所有测试(它们在每个节点上并行运行) 2:关闭nodeA并运行所有测试

在第 2 步中我被卡住了,我预计最后一个节点会同时运行 2 个测试,因为 maxSessions 设置为 5,但这不会发生,它只运行 1 个。

我怀疑我在某处启动集线器或节点时使用了错误的参数,但现在我无法弄清楚。有人想帮助 Grid2 的新手吗? :)

这大概是我的代码,非常基本的只是为了玩玩:

[TestFixture]
public class RemoteTest
{
  [Test]
  [Parallelizable]
  public void StartClose()
  {
    DesiredCapabilities cap = DesiredCapabilities.Firefox();

    IWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), cap);

    driver.Navigate().GoToUrl("http://www.google.dk");

    driver.Quit();
  }
}

使用的命令:

java -jar selenium-server-standalone-2.14.0.jar -role hub

java -jar selenium-server-standalone-2.14.0.jar -role node -hub http://192.168.0.26:4444/grid/register

【问题讨论】:

  • 你能分享一下你是如何并行运行测试的吗?
  • 添加了一个例子,没什么大不了的。但如果需要,我可以全部添加。
  • 您是否在 selenium-grid 控制台中看到 2 个节点,每个节点有 5 个 Firefox 实例?您可以在 yourip:4444/grid/console 找到控制台
  • 是的,他们有 5x firefox 图标。
  • 你能展示你用来启动集线器和 RC 的代码吗?我不认为这有什么问题。仍然.. :)

标签: selenium webdriver selenium-grid


【解决方案1】:

没有问题是微不足道的:)

启动服务器(使用以下命令)

java -jar selenium-server-standalone-2.14.0.jar -role hub

启动节点(使用以下命令)

java -jar selenium-server-standalone-2.14.0.jar -role node -hub http://localhost:4444/grid/register

如果您也尝试使用浏览器启动节点(检查以下命令)

-browser browserName=firefox,version=3.6,maxInstances=5,platform=LINUX

maxInstances --> 表示同一浏览器可以在 Grid 节点上运行的最大实例数

Selenium Grid: MaxSessions vs MaxInstances

如果您在测试用例中指定的功能在您的网格中不存在,那么将没有匹配项并且测试将无法运行。

请避免从节点运行测试,而是从集线器运行测试。我尝试了相同的实验,从服务器 (HUB) 运行测试,并注册了一个节点来运行并行测试用例,一切都很完美。

【讨论】:

  • 遗憾的是这并没有帮助。我已经这样开始了。也许我错过了其他东西,也许这就是我使用 MBUnit 的方式
  • 做更多的挖掘,看起来节点服务器接收会话但没有并行执行它们我收到此消息的次数与我设置并行度的次数相同:22:35:21.530 INFO - Executing: [new session: {platform=ANY, browserName=firefox, version=}] at URL: /session)跨度>
  • 有什么线索吗?我现在使用的节点是I7,所以应该有很多内核:)
  • 从我能收集到的节点只对测试进行排队。例如。我有 6 个测试和带有 2 个节点的并行化(4),当我开始测试时,每个节点都会收到 2 个会话,然后在请求新节点之前运行这些会话。这实际上节省了一些时间,但这就是它的全部功能吗?当我认为每个节点可以并行运行多个测试时,我是否误会了,或者我还缺少什么?
  • 我认为我的设置是正确的,它并行运行不同的浏览器实例没有问题。所以我可以同时运行 IE、Chrome、Firefox。只是不是 3x Firefox。我将在上面标记为 anwser,因为这是我用来启动的命令。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
  • 2011-06-23
相关资源
最近更新 更多