TestNG并行执行

时间:2013-10-06 17:29:44

标签: testng

我有4个@Test方法,并希望每次运行3次。我希望在12个线程中同时执行所有操作。

我创建了一个像这样的

的testng.xml文件
<suite name="Suite1" verbose="1" parallel="methods" thread-count="100">

  <test name="Test1">
    <classes>
      <class name="Tests"/>
    </classes>
  </test>

  <test name="Test2">
    <classes>
      <class name="Tests"/>
    </classes>
  </test>

  <test name="Test3">
    <classes>
      <class name="Tests"/>
    </classes>
  </test>

</suite>

如果我设置parallel =“methods”TestNG在Test1的4个线程中执行4个测试方法,之后对Test2执行相同的操作,然后对Test3执行相同的操作。但我不想在运行Test2之前等待Test1完成。 TestNG能够运行Test1,Test2&amp;同时测试3(如果并行=“测试”),但在这种情况下,它为每个测试按顺序执行4个测试方法。

有没有办法让TestNG完全不等待并在单独的线程中启动所有测试的所有方法?

3 个答案:

答案 0 :(得分:1)

让套件运行并行测试,然后每个测试都可以运行并行方法。类似的东西:

<suite name="Suite1" verbose="1" parallel="tests" thread-count="10">

  <test name="Test1" parallel="methods" thread-count="4">
    <classes>
      <class name="Tests"/>
    </classes>
  </test>

  <test name="Test2" parallel="methods" thread-count="4">
    <classes>
      <class name="Tests"/>
    </classes>
  </test>

  <test name="Test3" parallel="methods" thread-count="4">
    <classes>
      <class name="Tests"/>
    </classes>
  </test>

</suite>

答案 1 :(得分:0)

如果这些是相同的测试,那么您可以使用invocationCount和threadpoolsize。在@Test注释中,将invocationCount = 3和threadPoolsize添加为3.在testng.xml中,只创建一个测试(而不是3),设置parallel = methods和thread-count = 4。

希望它有所帮助。

答案 2 :(得分:0)

尝试使用:

<suite name="suite"  parallel="methods"  thread-count="20">

希望这有帮助。