无法并行运行测试(Selenium grid + NUnit)

时间:2017-01-10 16:04:00

标签: c# selenium-webdriver selenium-grid nunit-3.0

我使用NUnit 3.5与selenium网格(selenium-server-standalone-2.53.0.jar)和两个节点(一个节点与集线器在同一台机器上)。

在网格上顺序执行测试效果很好。同时执行多个顺序测试套件(即执行两个单独的测试项目,集线器将测试分配到一个集线器)也很有效。

我无法工作的是并行运行同一项目中的多个测试类。我想要做的是彼此并行执行一些测试类(包含多个测试)。基本上,我的两个(或更多)测试类看起来像这样:

[Parallelizable(ParallelScope.Fixtures)]
public class Search {

    [Test]
    public void TestSomething() {
        //Test here
    }

    [Test]
    public void TestSomethingElse() {
        //Test something else here
    }

而不是并行执行的测试,我得到了非常奇怪的结果。虽然它们似乎并行执行,但测试/会话似乎变得混乱。例如,一个测试的日志输出(Console.WriteLine)将显示在另一个测试的输出中。所以传递的测试可能有日志输出说它已经失败(因为我们在失败的测试中输出了一些日志记录)。

集线器配置:与默认设置相同,但使用端口8887

节点配置:

{
  "capabilities": [
    {
      "browserName": "firefox",
      "maxInstances": 5,
      "cleanSession": true 
    },
    {
      "browserName": "chrome",
      "maxInstances": 5
    },
    {
      "browserName": "internet explorer",
      "maxInstances": 1
    }
  ],
  "configuration": {
    "_comment" : "Configuration for Node",
    "cleanUpCycle": 2000,
    "timeout": 10000,
    "port": 5555,
    "host": "sto-selenium02",
    "register": true,
    "hubPort": 8887,
    "maxSessions": 3
  }
}

我在这里缺少什么?如何将会话/测试混淆起来,还是在这里发挥其他作用?所有帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,结果发现WebDriver实例被编码为静态变量。当删除它时,测试可以并行运行。

希望有所帮助!

相关问题