appium / java-client

Java language binding for writing Appium Tests, conforms to W3C WebDriver Protocol
Apache License 2.0
1.2k stars 755 forks source link

Parallel execution is not working in appium with testng #1212

Open yashbaid6 opened 5 years ago

yashbaid6 commented 5 years ago

The problem

I am providing the udid and it's ruining but it is not executing my tests, it just reset sometime and then stop working.

I am using the:-

If I don't initialize loadconfig there it is not initializing the driver and beforesuite annotation is not even working.

Environment

java-1.8 appium-6.1.0 appium server- gui based version 1.13.0 testng- 6.8

Details

If I don't initialize loadconfig there it is not initializing the driver and beforesuite annotation is not even working.

Code To Reproduce Issue [ Good To Have ]

it's testng file:

<test name="Emulator">
        <parameter name="runAs" value="grid"></parameter>
        <parameter name="platform" value="mobile"></parameter>
        <parameter name="runOn" value="emulator-5554"></parameter>
        <parameter name="port" value="4726"></parameter>
        <classes>
            <class name="TestCase.Login"/>
        </classes>
    </test>
    <test name="Samsung J7">
        <parameter name="runAs" value="grid"></parameter>
        <parameter name="platform" value="mobile"></parameter>
        <parameter name="runOn" value="52039763fe37a3eb"></parameter>
        <parameter name="port" value="4729"></parameter>
        <classes>
            <class name="TestCase.Login"/>
        </classes>
    </test>

Capability files:-

@Parameters({"runOn"})
    @BeforeSuite
    public static void loadConfigProp(@Optional("chrome_normal") String runOn) throws IOException
    {//Importing the files
        FileInputStream fis = new FileInputStream(System.getProperty("user.dir")+"\\src\\main\\resources\\Properties\\"+"data.properties");
        prop.load(fis);
        app= new File(prop.getProperty("app.path"));
        //APPLICATION_NAME = prop.getProperty("application.path");
        BASE_PKG = prop.getProperty("base.pkg");
        APP_ACTIVITY = prop.getProperty("application.activity");        AUTOMATION_INSTRUMENTATION=prop.getProperty("automation.instumentation");
        DEVICE_NAME=prop.getProperty("device.name");

        PLATFORM_NAME=prop.getProperty("platform.name");

        capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME,
                Base.PLATFORM_NAME);
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android");
        capabilities.setCapability(MobileCapabilityType.APP,app.getAbsolutePath());
        capabilities.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY,
                Base.APP_ACTIVITY);
        capabilities.setCapability("noReset","true");
        capabilities.setCapability("fullReset","false");
        capabilities.setCapability(AndroidMobileCapabilityType.APP_PACKAGE,
                Base.BASE_PKG);
        if(runOn.equals("52039763fe37a3eb"))
            {
                capabilities.setCapability("udid", "52039763fe37a3eb");
                driver = new AndroidDriver(new URL("http://127.0.0.1:4729/wd/hub"), capabilities);
            }else if(runOn.equals("emulator-5554"))
            {
                capabilities.setCapability("udid", "emulator-5554");
                driver = new AndroidDriver(new URL("http://127.0.0.1:4726/wd/hub"), capabilities);
            }
    }

Config file to load it:

 @BeforeTest
    public void start() throws IOException {
        Base b= new Base();
        b.loadConfigProp("52039763fe37a3eb");
        b.loadConfigProp("emulator-5554");
        driver=b.getDriver();
    }
mykola-mokhnach commented 5 years ago

moved to java client