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

标签 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
    }

我得到的结果非常奇怪,而不是并行执行的测试。尽管它们似乎是并行执行的,但测试/ session 似乎混淆了。例如,一个测试的日志输出 (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
  }
}

我在这里缺少什么? session /测试怎么会混淆,或者这里有其他东西在起作用?感谢所有帮助!

最佳答案

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

希望有帮助!

关于c# - 无法并行运行测试(Selenium grid + NUnit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41573140/

相关文章:

java - Selenium Grid 如何使用 Java 从中获取文件?

c# - 在数组中使用命名键 C# MVC razor

c# - 如何在 C# 中构建 Web 服务缓存

c# - asp.net进度加载

java - Selenium WebDriver RuntimeException :Process refused to die after 10 seconds, 并且无法对其进行 taskkill:无法找到可执行文件:taskkill

java - 通过openCV比较图片在 Selenium 中的大小不同

selenium - org.openqa.selenium.WebDriverException : Unable to parse remote response: <! DOCTYPE html>

Jenkins - 带有虚拟机的 CI

c# - 如何在类型上使用 switch-case?

selenium - 如何使用带有 firefox 17.0.1 的 Webdriver 在 Mac 上以 headless 模式运行 selenium 测试