繁体   English   中英

如何使用NUnit3并行测试执行配置Selenium Grid?

[英]How to configure Selenium Grid with NUnit3 parallel test execution?

我们当前的C#/ Nunit 2.6.3测试框架具有一个回归套件,该回归套件在单台PC上运行需要花费超过35个小时的时间,其中的灯具会持续长达20分钟。 设置要在多台计算机上运行的测试批处理既耗时又效率低下,因此我尝试将测试迁移到NUnit 3,以获得在Selenium Grid上并行执行的好处。

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

由于我将始终从比拥有节点的夹具更多的夹具执行测试,因此必须将夹具排在队列中直到节点可用为止,这一点很重要。 在实践中,测试夹具可能必须等待几个小时才能获得空闲节点。 对于当前的配置实验,我进行了以下设置:

  • 具有以下配置的集线器: java -jar selenium-server-standalone-2.48.2.jar -role hub -newSessionWaitTimeout:-1 -browserTimeout 120 -timeout 3600
  • 默认配置中的单个节点。

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

在这种情况下,我希望只有支持IE单个实例的单个节点,才能执行单个测试。 然后,集线器将在空闲时将队列中的下一个测试发送到该节点。 但是,似乎两个测试夹具正在同时运行。 一个测试被推送到该节点,但是另一个夹具上的测试失败,并显示以下消息:

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

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

有谁知道正确的配置,或者这是NUnit 3 Test适配器的问题吗? 不幸的是,浏览器选择已固定为IE。

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

//Determines the number parallel threads that run simultaneously
[assembly: LevelOfParallelism(7)]

如果将此属性设置为可用节点数,则测试将按我的预期进行排队。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM