0

I'm having issues with my appium testing framework running in parallel
I’m using appium java-client 7.6.0, testnt 7.6.1, Appium v1.22.3 with 1 ios simulator & 1 android emulator with 2 appium servers running separately for both devices.

this is how my testng looks like:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Mobile Test Automation Suite" parallel="tests" thread-count="2">
    <listeners>
        <listener class-name="com.qa.listeners.testListener"/>
    </listeners>
    <test name="iOS login Test">
        <parameter name="platformName" value="iOS"/>
        <parameter name="deviceName" value="iphone12"/>
        <parameter name="emulator" value="true"/>
        <parameter name="platformVersion" value="15.5"></parameter>
        <parameter name="udid" value="55896861-DB90-4F13-955A-F65D20F409B3"></parameter>
        <parameter name="wdaLocalPort" value="8101"></parameter>
        <classes>
            <class name="com.qa.tests.LoginTest"/>
        </classes>
    </test>
    <test name="Android login Test">
        <parameter name="platformName" value="Android"/>
        <parameter name="deviceName" value="Pixel_3"/>
        <parameter name="emulator" value="true"/>
        <parameter name="platformVersion" value="12.0"></parameter>
        <parameter name="udid" value="emulator-5554"></parameter>
        <parameter name="systemPort" value="8201"></parameter>
        <parameter name="mjpegServerPort" value="9001"></parameter>
        <classes>
            <class name="com.qa.tests.LoginTest"/>
        </classes>
    </test>
    <test name="iOS Logout Test">
        <parameter name="platformName" value="iOS"/>
        <parameter name="deviceName" value="iphone12"/>
        <parameter name="emulator" value="true"/>
        <parameter name="platformVersion" value="15.5"></parameter>
        <parameter name="udid" value="55896861-DB90-4F13-955A-F65D20F409B3"></parameter>
        <parameter name="wdaLocalPort" value="8102"></parameter>
        <classes>
            <class name="com.qa.tests.LogoutTest"/>
        </classes>
    </test>
    <test name="Android Logout Test">
        <parameter name="platformName" value="Android"/>
        <parameter name="deviceName" value="Pixel_3"/>
        <parameter name="emulator" value="true"/>
        <parameter name="platformVersion" value="12.0"></parameter>
        <parameter name="udid" value="emulator-5554"></parameter>
        <parameter name="systemPort" value="8202"></parameter>
        <parameter name="mjpegServerPort" value="9002"></parameter>
        <classes>
            <class name="com.qa.tests.LogoutTest"/>
        </classes>
    </test>
</suite>

This is currently sequence of execution happening for me:

-----------Android—driver STARTED with SessionID: 3709cdd0-e24f-4499-bf17-29461eb967df-----------
-----------iOS—driver STARTED with SessionID: 39ad63ed-2384-4d51-8442-b1feaf70e522-----------

first android test finishes earlier
-----------Android—driver QUITED with SessionID: 3709cdd0-e24f-4499-bf17-29461eb967df-----------
-----------iOS—driver STARTED with SessionID: 7bfe770a-8caa-4d40-949e-07c25e042bc0-----------
-----------iOS—driver QUITED with SessionID: 39ad63ed-2384-4d51-8442-b1feaf70e522-----------
-----------Android—driver STARTED with SessionID: e572838a-b3e2-46e9-b388-4065f391af3d-----------
-----------iOS—driver QUITED with SessionID: 7bfe770a-8caa-4d40-949e-07c25e042bc0-----------
-----------Android—driver QUITED with SessionID: e572838a-b3e2-46e9-b388-4065f391af3d-----------

I observed that because the sequence of tests in testng it tries to start another iOS test while the previous one was still running, is there a way how we can control this ? i.e let previous ios or android test finish before starting a new one ?

I want each test to run independently tests should wait for other one to finish.

Abdu
  • 1

0 Answers0