我让Jenkins 1.499与Grid 2独立服务器(以及Jenkins Selenium Grid插件)一起在Windows 2008(64位)服务器上运行Watir-Webdriver测试。

我可以通过Jenkins在独立服务器(或插件)上运行测试,但是它们不能并行运行。我需要怎么做才能使其并行运行?

我已经尝试了parallel_tests gem,但是fork()对于Windows环境似乎并不是很好的实现。我想可能需要使用TestNG来管理并行性,但是我不确定,如果有人知道,可以使用一些建议吗?

#1 楼

如果您使用的是Ruby,我相信您应该能够使用绿色线程来避免fork()

http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_threads.html

虽然从技术上讲不是真正的并行性,但是如果您只是启动Watir-Webdriver测试,它应该可以正常工作。这个想法是分别启动每个线程,并让每个线程运行一个测试脚本。

#2 楼

在TestNG.xml文件中,有一个“并行”属性,可用于配置同时并行运行多个测试方法/类。

<suite name="mySuite" parallel="methods" thread-count="5">
<suite name="mySuite" parallel="tests" thread-count="5">
<suite name="mysuite" parallel="classes" thread-count="5">
<suite name="mySuite" parallel="instances" thread-count="5">


文章http ://technologyandleadership.com/testng-running-tests-in-parallel/提供了所有这些值的深入描述。

#3 楼

您可以从构建工具中派生测试任务,无论它是什么。使用Maven,它被称为“ surefire插件”,使用Gradle,您只需在测试任务中设置“ maxParallelTask​​s”,使用TestNG,就可以使用建议的线程计数,如@Aruna。这完全取决于您用来执行测试的内容。进行硒测试时,将在网格中心上打开多个会话,它将在映射到的网格节点上打开多个浏览器会话。

#4 楼

只适合那些偶然发现此问题的人。

我集成到我的环境中的解决方案如下,而且很简单。

我使用了Build Flow插件创建一个Build Flow作业。

我创建了3个Maven风格的作业,每个作业指向一个不同的XML文件,其中包含不同的测试类。

在Build Flow作业中,我能够添加以下代码以使3个Maven作业并行运行。

我遇到的一个问题是它只能并行运行2个作业,而要第3个要并行运行,则必须等待另一个结束。

我发现我的Jenkins仅指定了2个执行程序(如果这是Jenkins中的开始规范,则不知道)。

这基本上意味着我只能一次运行2个作业只有2个工作执行者。

要解决此问题,请转到“管理Jenkins”>“配置系统”>“执行者数量”

此处您可以指定执行者的数量。我将我的更改为5,所以如果我希望最多可以并行运行5个作业。

就这样,它很容易实现。我发现有关此方法的有用之处还在于,由于采用了分层结构,因此它使您可以更好地控制正在进行的所有操作。它使您可以控制测试过程的每个阶段。并且还使您能够隔离问题以进行故障排除。