并行套件
如果您正在运行多个套件文件(例如“ java org.testng.TestNG testng1.xml testng2.xml”)并且您希望这些套件中的每一个都在单独的线程中运行,这将很有用。您可以使用以下命令行标志来指定线程池的大小:
java org.testng.TestNG -suitethreadpoolsize 3 testng1.xml testng2.xml testng3.xml
并行测试、类和方法
在
<suite name="My suite" parallel="methods" thread-count="5">
<suite name="My suite" parallel="tests" thread-count="5">
<suite name="My suite" parallel="classes" thread-count="5">
<suite name="My suite" parallel="instances" thread-count="5">
- parallel=”methods”:TestNG 将在单独的线程中运行所有测试方法。依赖方法也将在单独的线程中运行,但它们将遵循您指定的顺序。
- parallel=”tests”:TestNG 将在同一线程中运行同一
标记中的所有方法,但每个 标记将在单独的线程中。这允许您将所有非线程安全的类分组在同一个 中,并保证它们都将在同一个线程中运行,同时利用 TestNG 使用尽可能多的线程来运行您的测试。 - parallel=”classes”:TestNG 将在同一个线程中运行同一个类中的所有方法,但每个类将在单独的线程中运行。
- parallel=”instances”:TestNG 将在同一个线程中运行同一个实例中的所有方法,但两个不同实例上的两个方法将在不同线程中运行。
此外,属性 thread-count允许您指定应为此执行分配多少线程。
您还可以指定应从不同的线程调用@Test方法。您可以使用属性threadPoolSize来实现此结果:
@Test(threadPoolSize = 3, invocationCount = 10, timeOut = 10000)
public void testServer() {
在这个例子中,函数testServer将被三个不同的线程调用十次。此外,十秒的超时可确保没有任何线程会永远阻塞在该线程上。