在TestNG 中,可以通过suite标签中的Parallel属性,定义是否多线程并发运行测试。
Parallel取值有3个:tests、classes、methods,可以通过在testng.xml中的suite tag下设置,如:
<suite name="Testng Parallel Test" parallel="tests" thread-count="5">
<suite name="Testng Parallel Test" parallel="classes" thread-count="5">
<suite name="Testng Parallel Test" parallel="methods" thread-count="5">
它们的共同点都是最多起5个线程去同时执行不同的用例。
它们的区别如下:
- tests:一个线程负责一个<test>标签,相同<test>标签下的用例只能在同一个线程中执行。
多个并行时,每个<test >标签所包含的class,method之间的线程ID是一样的。 - classes:一个线程负责一个<classes>标签下的@Test用例只在同一个线程中执行。多个并行时,每个<classes>标签之间的线程ID不一样,即在不同的线程中执行。
- methods:所有用例都可以在不同的线程去执行。