0

I'm trying to run my automation suite (implemented using Selenium Webdriver (Java) + TestNG + Maven) in parallel on different Android devices. Here's my code in xml:

<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-->

In class TotoTests, I have 20 tests. Each of them has the annotation @Test. When I run the xml, two devices run the class TotoTests in parallel. So my device1(simulator1) run 20 tests, and my device2 (simulator2) run 20 tests, too.

But what I want is, the simulator1 run the first test in TotoTests, and the simulator2 begins to run the second test in TotoTests. When one device has finished, it will run the third test in TotoTests. And then when one of the device finished, it will run the 4th test. So to run 20 tests, I will need only half time. Because each device will run only 10 tests, or 9 tests, or 11 tests....But not 20 tests.

How can I do this?

yue
  • 119
  • 1
  • 11
  • This topic was already raised here https://stackoverflow.com/questions/47809529/distributed-native-test-execution-over-android-devices – dmle Dec 14 '17 at 18:19

3 Answers3

0

add parameter parallel=true at each test. This might work. Also in the above xml you can add parallel="Class" parameter in the xml file

Jyothi
  • 28
  • 3
0

For creating multiple threads and run parallel you have to use parallel with no of thread count. Try this modified code :

<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 -->

Hope it will work.

Indrapal Singh
  • 364
  • 1
  • 2
  • 13
0
<suite name="TestSuite" parallel="tests" thread-count="2">
  <test name="Test1" preserve-order="true">
    <parameter name="baseURL" value="http://www.amazon.com" />
    <classes>
      <class name="package.myClass" />
    </classes>
  </test>
  <test name="Test2" preserve-order="true">
    <parameter name="baseURL" value="http://www.google.com" />
    <classes>
      <class name="package.myClass" />
    </classes>
  </test>
Mounika
  • 38
  • 7
  • Please don't post the [exact same answer](https://stackoverflow.com/a/58612540/11384392) on multiple questions. Flag the questions as duplicates instead. – Das_Geek Oct 29 '19 at 18:02