使用testng进行并行运行

时间:2016-10-20 11:16:20

标签: selenium-webdriver testng

我正在尝试使用testng执行并行运行。 我试图并行测试4次。但它只运行一次。

的testng.xml

<suite name="My suite" parallel="methods" thread-count="4">
  <test name="Default test" group-by-instances="true">
    <classes>
      <class name="org.com.DemoClass"/>
    </classes>
  </test> <!-- Default test -->  
</suite> <!-- Default suite -->

演示课。

public class DemoClass {    
    @Test
    public void method1() throws InterruptedException {
        long id = Thread.currentThread().getId();
        System.out.println("Before test-method. Thread id is: " + id);
    }
}

请提供宝贵的建议。

2 个答案:

答案 0 :(得分:0)

您可以尝试向@Test注释添加参数: @Test(threadPoolSize = 4, invocationCount = 4) 这将从4个不同的线程中调用您的测试四次。

答案 1 :(得分:0)

如果您需要的是,您编写的每个@Test带注释的方法都需要执行“n”次(并行或按顺序执行),而无需显式添加invocationCount属性你自己应该利用IAnnotationTransformer使用它来动态更改@Test带注释方法的值。您可以尝试使用<listeners>标记或服务加载程序通过套件文件注入此侦听器。有关听众的更多一般信息,您可以查看我的this博客文章。