我决定从当前的解决方案(几年前由我们的团队使用经过修改的NUnit etc...(在VirtualMachines上运行测试,然后在中心服务器上收集结果)切换到Selenium Grid 2。
尝试使用ParallelizableAttribute的选项。 不幸的是,我注意到IWebDriver存储在全局变量(puhh)中。这导致测试启动多个浏览器实例,但测试使用单个IWebDriver - >测试执行发生在单个浏览器中 - >测试是在单个进程下运行的,但有几个“工作”线程。尝试使用2个虚拟机作为“节点”,将本地PC用作集线器。
我知道最好的解决方案是将无效的想法改为在全局变量中存储驱动程序,但这需要花费太多时间:有3k +重的UI测试需要更新;许多静态方法都希望将驱动程序作为全局变量进行更新。
同样,NUnit 3.0提供了NDistribUnit来并行运行多个程序集。要运行多个测试项目,这很好,但目前我们每个应用程序有一个程序集。 最好并行运行一个应用程序(一个程序集)的测试。
还有其他方法可以在这里使用GRID + NUnit 3来使其工作吗?
最后,现有的解决方案被重构:现在执行期间的每个测试都有自己的驱动程序。由于这一变化,许多代码被重写(似乎有太多的方法将IwebDriver作为全局变量)
答案 0 :(得分:0)
实际上,有两个选项可以做到: