-1

testng.xmlmaven を使用して実行しているファイルに複数のテスト タグがあります。スイート レベルの parallel 属性をメソッドに設定し、スレッド カウントを 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 しかない場合は、テスト タグが 2 つしかないため、一度に使用されるノードは 2 つだけです。

于 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 に答える