私は、異なる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回のテストではありません。
どうすればいいですか?
このトピックは既に作成済みです。https://stackoverflow.com/questions/47809529/distributed-native-test-execution-over-android-devices – dmle