我可以通过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,您只需在测试任务中设置“ maxParallelTasks”,使用TestNG,就可以使用建议的线程计数,如@Aruna。这完全取决于您用来执行测试的内容。进行硒测试时,将在网格中心上打开多个会话,它将在映射到的网格节点上打开多个浏览器会话。#4 楼
只适合那些偶然发现此问题的人。我集成到我的环境中的解决方案如下,而且很简单。
我使用了Build Flow插件创建一个Build Flow作业。
我创建了3个Maven风格的作业,每个作业指向一个不同的XML文件,其中包含不同的测试类。
在Build Flow作业中,我能够添加以下代码以使3个Maven作业并行运行。
我遇到的一个问题是它只能并行运行2个作业,而要第3个要并行运行,则必须等待另一个结束。
我发现我的Jenkins仅指定了2个执行程序(如果这是Jenkins中的开始规范,则不知道)。
这基本上意味着我只能一次运行2个作业只有2个工作执行者。
要解决此问题,请转到“管理Jenkins”>“配置系统”>“执行者数量”
此处您可以指定执行者的数量。我将我的更改为5,所以如果我希望最多可以并行运行5个作业。
就这样,它很容易实现。我发现有关此方法的有用之处还在于,由于采用了分层结构,因此它使您可以更好地控制正在进行的所有操作。它使您可以控制测试过程的每个阶段。并且还使您能够隔离问题以进行故障排除。