Im trying to execute parallel testing for android using Testng. It working but the action are performing twice.
Example:
I created a simple android login application
Im trying to pass username and password, but it is passing twice.
if password is test it is passing as “testtest”.
Below is my sample code:
package Appium;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import com.beust.jcommander.Parameter;
public class Appium {
WebDriver driver;
@Parameters({"deviceName_","UDID_","platformVersion_","URL_"})
@BeforeTest
public void setup(String deviceName_, String UDID_, String platformVersion_, String URL_) throws MalformedURLException {
File appDir = new File(System.getProperty("user.dir")+ "/Apps");
File app = new File(appDir, "app-debug.apk");
// Created object of DesiredCapabilities class.
DesiredCapabilities capabilities = new DesiredCapabilities();
// Set android deviceName desired capability. Set your device name.
capabilities.setCapability("deviceName", deviceName_);
// Set BROWSER_NAME desired capability. It's Android in our case here.
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
// Set android VERSION desired capability. Set your mobile device's OS
// version.
capabilities.setCapability("platformVersion", platformVersion_);
// Set android platformName desired capability. It's Android in our case
// here.
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("udid", UDID_);
// Set android appPackage desired capability. It is
// com.android.calculator2 for calculator application.
// Set your application's appPackage if you are using any other app.
capabilities.setCapability("appPackage", "com.example.android.logindemo");
// Set android appActivity desired capability. It is
// com.android.calculator2.Calculator for calculator application.
// Set your application's appPackage if you are using any other app.
capabilities.setCapability("appActivity", "com.example.android.logindemo.MainActivity");
capabilities.setCapability("app", app.getAbsolutePath());
// Created object of RemoteWebDriver will all set capabilities.
// Set appium server address and port number in URL string.
// It will launch calculator app in android device.
driver = new RemoteWebDriver(new URL("http://"+URL_), capabilities);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
}
@Test
public void test() {
driver.findElement(By.id("com.example.android.logindemo:id/etName")).sendKeys("****");
driver.findElement(By.id("com.example.android.logindemo:id/etPassword")).sendKeys("****");
driver.findElement(By.id("com.example.android.logindemo:id/btnLogin")).click();
}
}
Testng.xml:
<?xml version="1.0" encoding="UTF-8"?>