Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用NUnit3并行测试执行配置Selenium网格?_C#_Internet Explorer_Selenium_Webdriver_Nunit 3.0 - Fatal编程技术网

C# 如何使用NUnit3并行测试执行配置Selenium网格?

C# 如何使用NUnit3并行测试执行配置Selenium网格?,c#,internet-explorer,selenium,webdriver,nunit-3.0,C#,Internet Explorer,Selenium,Webdriver,Nunit 3.0,我们当前的C#/Nunit 2.6.3测试框架有一个回归套件,在一台pc上运行需要35个多小时,有些测试长达20分钟。设置在多台机器上运行的批测试既耗时又低效,因此我尝试将测试迁移到NUnit 3,以获得在Selenium网格上并行执行的好处 我的目标是让12个节点分别运行一个IE实例。然而,似乎VS的NUnit3测试适配器正在尝试同时运行所有测试 由于我总是从比节点更多的装置中执行测试,因此在节点可用之前,装置将处于队列中是很重要的。实际上,测试夹具可能需要等待几个小时才能获得空闲节点。 对于

我们当前的C#/Nunit 2.6.3测试框架有一个回归套件,在一台pc上运行需要35个多小时,有些测试长达20分钟。设置在多台机器上运行的批测试既耗时又低效,因此我尝试将测试迁移到NUnit 3,以获得在Selenium网格上并行执行的好处

我的目标是让12个节点分别运行一个IE实例。然而,似乎VS的NUnit3测试适配器正在尝试同时运行所有测试

由于我总是从比节点更多的装置中执行测试,因此在节点可用之前,装置将处于队列中是很重要的。实际上,测试夹具可能需要等待几个小时才能获得空闲节点。 对于我当前的配置实验,我有以下设置:

  • 具有以下配置的中心:
    java-jar selenium-server-standalone-2.48.2.jar-角色中心-newSessionWaitTimeout:-1-浏览器超时120-超时3600
  • 默认配置中的单个节点

  • 两个测试夹具,每个夹具有10个测试。测试装置具有以下属性:
    [Parallelizable(ParallelScope.Self)]

在这种情况下,我希望只有一个节点支持IE的一个实例,因此只执行一个测试。当节点空闲时,集线器会将队列中的下一个测试发送给节点。但是,两个测试装置似乎同时运行。一个测试被推送到节点,但另一个设备上的测试失败,并显示以下消息:

结果消息:
OpenQA.Selenium.WebDriverException:对远程WebDriver服务器的URL HTTP请求在60秒后超时。 ---->System.Net.WebException:操作已超时

当我在Java/JUnit框架中使用Eclipse上的网格时,我没有遇到任何问题。集线器将使用默认配置对测试进行排队,直到节点空闲且没有任何超时


是否有人知道正确的配置,或者这是NUnit 3测试适配器的问题?不幸的是,浏览器选择被固定为IE。

我发现通过在AssemblyInfo中设置LevelOfParallelism属性可以控制并行线程的数量

//Determines the number parallel threads that run simultaneously
[assembly: LevelOfParallelism(7)]
如果该属性设置为可用的节点数,那么测试队列将如我所期望的那样