并行地跨不同测试运行testng方法

时间:2015-06-13 17:46:46

标签: maven selenium testng selenium-grid parallel-testing

我在使用maven运行的textarea文件中有多个测试标记。我在套件级别将parallel属性设置为方法,将线程数设置为5.我面临的问题是测试是按顺序执行的,只有测试用例内的方法是并行执行的。更清楚的是,尽管有未使用的线程(在我的情况下网格中的Selenium节点)可用,但后续测试会等待,直到执行上一个测试中的所有方法。

这是我用过的testng.xml,     

testng.xml

由于我的selenium网格中有超过10个节点可用,这种行为会大大增加执行时间,并且无法实现网格架构的目的。请告诉我是否可以使用该方法并行执行套件中的测试方法。我确信我错过了一些愚蠢的东西,但是请你指点一下吗?

3 个答案:

答案 0 :(得分:0)

在TestNG xml文件中键入parallel =“tests”

答案 1 :(得分:0)

Parallel =方法就是这样 - “测试用例中的方法是并行执行的”。

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

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

答案 2 :(得分: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个线程。