-1

我的文件中有多个testng.xml使用 maven 运行的测试标签。我已将套件级别的并行属性设置为方法,线程数设置为 5。我面临的问题是测试是按顺序执行的,只有测试用例中的方法是并行执行的。更清楚地说,尽管有未使用的线程(在我的例子中是网格中的 Selenium 节点)可用,但后续测试会等到执行前一个测试中的所有方法。

这是我用过的testng.xml,

<suite name="Suite1" verbose="1" parallel="methods" thread-count="5" preserve-order="false">
  <test name="Login" >
    <classes>
       <class name="testSuite.TestSet1" />
    </classes>
  </test>

  <test name="Product Search">
    <classes>
      <class name="testSuite.TestSet2"/>
    </classes>
  </test>
</suite>

由于我的 selenium 网格中有超过 10 个可用节点,因此这种行为会大大增加执行时间,并违背了拥有网格架构的目的。请让我知道是否有一种方法可以让我在整个套件中并行执行测试方法。我确信我错过了一些愚蠢的东西,但你能帮我指出一下吗?

4

3 回答 3

0

在您的 TestNG xml 文件中键入 parallel="tests"

于 2015-06-15T11:15:19.527 回答
0

Parallel=methods 正是这样做的——“测试用例中的方法是并行执行的”。

如果您希望您的测试标签并行执行,请使用 parallel=tests。
这将并行运行所有测试标签。

但是你说你有 10 个节点可用。如果上面是您拥有的唯一 xml,那么一次只会用完两个节点,因为您只有两个测试标签。

于 2015-06-16T12:24:11.963 回答
0
<suite name="Suite1" verbose="1" parallel="tests" thread-count="2" preserve-order="false">   
  <test name="Login" parallel="methods" thread-count="5">
    <classes>
       <class name="testSuite.TestSet1" />
    </classes>   
  </test>
  <test name="Product Search" parallel="methods" thread-count="5">
    <classes>
      <class name="testSuite.TestSet2"/>
    </classes>   
  </test> 

首先允许您的套件与一次运行的测试套件数量并行运行“测试”(示例 2)。

其次,允许您的测试以每个可以运行的方法数量并行运行“方法”(每个示例 5)。

如果您遇到线程限制,请在调整这些数字时小心。例如,如果您添加另一个线程数为 5 的测试组,并将套件线程数更改为 3。您现在将有 15 个线程。

于 2015-12-29T20:15:57.340 回答