2017-12-14 21 views
0

私は、異なるAndroid搭載デバイス上で(Selenium Webdriver(Java)+ TestNG + Mavenを使用して実装された)オートメーションスイートを並列で実行しようとしています。ここに私のコードは、XMLである:クラスTotoTestsで異なるテスト用にtestNG enを並列実行する方法

<test name="Test1"> 
    <parameter name="deviceName_" value="simulator1"/> 
    <parameter name="port_" value="4723"/> 
    <classes> 
     <class name="tests.TotoTests"> 
      <methods> 
       <include name=".*" /> 
      </methods> 
     </class> 
    </classes> 
</test> 

<!--test name="Test2"> 
    <parameter name="deviceName_" value="simulator2"/> 
    <parameter name="port_" value="4725"/> 
    <classes> 
     <class name="tests.TotoTests"> 
      <methods> 
       <include name=".*" /> 
      </methods> 
     </class> 
    </classes> 
</test--> 

、私は20回のテストを持っています。それぞれに@Testアノテーションが付いています。 xmlを実行すると、2つのデバイスがTotoTestsクラスを並行して実行します。だから私のdevice1(シミュレータ1)は20のテストを実行し、私のdevice2(シミュレータ2)も20のテストを実行します。

私が望むのは、シミュレータ1はTotoTestsで最初のテストを実行し、シミュレータ2はTotoTestsで2番目のテストを実行します。 1つのデバイスが終了すると、TotoTestsで3番目のテストが実行されます。そして、デバイスの1つが終了すると、4回目のテストが実行されます。 20回のテストを実行するには、半分の時間しか必要ありません。各デバイスは10回のテスト、つまり9回のテスト、または11回のテストしか実行しないためです...しかし、20回のテストではありません。

どうすればいいですか?

+0

このトピックは既に作成済みです。https://stackoverflow.com/questions/47809529/distributed-native-test-execution-over-android-devices – dmle

答えて

0

各テストでパラメータparallel = trueを追加します。これは機能するかもしれません。上記のxmlでは、xmlファイルにparallel = "Class"パラメータを追加することもできます

0

複数のスレッドを作成して並列実行するには、スレッド数が0の並列スレッドを使用する必要があります。 この変更されたコードを試してください:

<suite name="Suite" parallel="tests" thread-count="2" > 
<test name="Test1"> 
<parameter name="deviceName_" value="simulator1"/> 
<parameter name="URL_" value="127.0.0.1:4723/wd/hub"/> 
<classes> 
<class name="tests.TotoTests"> 
<methods>  
<include name=".*" /> 
</methods> 
</class> 
</classes> 

</test> <!—Test 1 --> 
<test name="Test2"> 
<parameter name="deviceName_" value="simulator2"/> 
<parameter name="URL_" value="127.0.0.2:4725/wd/hub"/> 
<classes> 
<class name="tests.TotoTests"> 
<methods> 
<include name=".*" /> 
</methods> 
</class> 
</classes> 
</test> <!—Test 2 --> 
</suite> <!-- Suite --> 

希望するとうまくいきます。

関連する問題