Nodes are successfully registered with Hub BUT script is always execute on one device only.
Following are the JSON
1:
{
"capabilities":
[
{
"browserName": "android",
"version": "4.4.2",
"maxInstances": 5,
"platform": "ANDROID",
"deviceName": "226CF65ED0ABE221"
}
],
"configuration":
{
"nodeTimeout":120,
"cleanUpCycle":2000,
"timeout":2000000,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:4723/wd/hub",
"maxSession": 20,
"port": 4723,
"host": "127.0.0.1",
"register": true,
"registerCycle": 5000,
"hub": "127.0.0.1:4441/grid/register",
"hubPort": 4441,
"hubHost": "localhost",
"role": "node"
}
}
2:
{
"capabilities":
[
{
"browserName": "android",
"version": "4.4.2",
"maxInstances": 5,
"platform": "ANDROID",
"deviceName": "9EDCBB229B2DD02D"
}
],
"configuration":
{
"nodeTimeout":120,
"cleanUpCycle":2000,
"timeout":2000000,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:3300/wd/hub",
"maxSession": 20,
"port": 3300,
"host": "127.0.0.1",
"register": true,
"registerCycle": 5000,
"hub": "127.0.0.1:4441/grid/register",
"hubPort": 4441,
"hubHost": "localhost",
"role": "node"
}
}
Script capabilities:
For node 1:
@Parameters(value={"device_id1", "device_id2"})
@BeforeSuite//The annotated method will be run before all tests in this suite have run.
public static WebDriver atStart(@Optional("nnn") String device_id1, String device_id2) throws InterruptedException, IOException
{
System.out.println("in Samsung galaxy: "+device_id1);
if ("226CF65ED0ABE221".equals(device_id1))//FOR SAMSUNG GALAXY NOTE
{
capabilities=new DesiredCapabilities();
File app = new File(applicationPath);
capabilities.setCapability("automationName", "Appium");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "android");
capabilities.setCapability("deviceName", device_id1);
//capabilities.setCapability("udid", device_id);
capabilities.setCapability("platformVersion", "4.4.2");
capabilities.setCapability(CapabilityType.PLATFORM,"ANDROID");
capabilities.setCapability("platformName", "ANDROID");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", "com.avaamo.android.staging");
capabilities.setCapability("appActivity", "com.avaamo.android.ui.LandingActivity");
//setting new command timeout for selenium server
capabilities.setCapability("newCommandTimeout", "2000000");//33.33 mins
}
For Node 2:
if("9EDCBB229B2DD02D".equals(device_id2))
{
capabilities=new DesiredCapabilities();
File app1 = new File(applicationPath);
capabilities.setCapability("automationName", "Appium");
capabilities.setCapability(CapabilityType.BROWSER_NAME,"android");
capabilities.setCapability("deviceName",device_id2);
//capabilities.setCapability("udid",device_id);
capabilities.setCapability("platformVersion", "4.4.2");
capabilities.setCapability(CapabilityType.PLATFORM,"ANDROID");
capabilities.setCapability("platformName","ANDROID");
capabilities.setCapability("app", app1.getAbsolutePath());
capabilities.setCapability("appPackage", "com.avaamo.android.staging");
capabilities.setCapability("appActivity", "com.avaamo.android.ui.LandingActivity");
//setting new command timeout for selenium server
capabilities.setCapability("newCommandTimeout", "2000000");//33.33 mins
}
return driver = new AndroidDriver(new URL("http://127.0.0.1:4441/wd/hub"), capabilities);
@Hassan_Radi @Appium_Master @rgonalo Can any one please suggest?