package com.cognizant.grid;
import java.net.MalformedURLException;
import java.net.URL;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class SeleniumGrid_cognizant {
AppiumDriver driver;
@Parameters({“browserName”,“platform”,“deviceName”,“version”})
@BeforeMethod
public void beforeMethod(String browserName, String platform, String deviceName, String version ) throws MalformedURLException{
DesiredCapabilities capabilities = DesiredCapabilities.android();
/*capabilities.setCapability("browserName", browserName);
capabilities.setCapability("platform", platform);
capabilities.setCapability("applicationName", applicationName);
capabilities.setCapability("version", version);*/
// capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME,"Appium");
capabilities.setCapability(MobileCapabilityType.VERSION, version);
capabilities.setCapability("deviceName",deviceName);
//capabilities.setCapability("udid",deviceName);
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
// capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"Android");
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME,"chrome");
driver = new AndroidDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
}
@Test
public void myTest() throws InterruptedException{
System.out.println("inside");
driver.get("http://www.cognizant.com");
Thread.sleep(2000);
driver.findElement(By.xpath("//*[@id=\"mm\"]/img")).click();
Thread.sleep(5000);
}
@AfterMethod()
public void afterMethod(){
driver.quit();
}
}
node.json file
{
“capabilities”: [
{
“browserName”:“Chrome”,
“version”: “4.3”,
“maxInstances”: 3,
“platform”: “ANDROID”,
“applicationName”:“emulator-5554”
}
],
“configuration”: {
“nodeTimeout”: “120”,
“port”: “4726”,
“hubPort”: “4444”,
“proxy”: “org.openqa.grid.selenium.proxy.DefaultRemoteProxy”,
“url”: “http://xxxxxxxxx:4726/wd/hub”,
“hub”: “xxxxxxxxx:4444/grid/register”,
“hubHost”: “xxxxxxxxx”,
“nodePolling”: “2000”,
“registerCycle”: “10000”,
“register”: true,
“cleanUpCycle”: “2000”,
“timeout”: “30000”,
“maxSession”: “1”
}
}
<test name="SeleniumGrid_Sony" >
<parameter name="browserName" value="Chrome"/>
<parameter name="platform" value="Android"/>
<parameter name="deviceName" value="emulator-5554"/>
<parameter name="version" value="4.3"/>
<classes>
<class name="com.cognizant.grid.SeleniumGrid_cognizant"/>
</classes>
<parameter name="browserName" value="Chrome"/>
<parameter name="platform" value="Android"/>
<parameter name="deviceName" value="emulator-5556"/>
<parameter name="version" value="4.4"/>
<classes>
<class name="com.cognizant.grid.SeleniumGrid_cognizant"/>
</classes>
hub:
C:\Grid>java -jar selenium-server-standalone-2.45.0.jar -role hub -hub http://xxxxxxx:4444/grid/register
nodes:
C:\Program Files (x86)\Appium\node_modules\appium\bin>node appium.js -a xxxxxxxx -p 4726 --nodeconfig “c:/Grid/node1.json” --udid emulater-5554 -
-bootstrap-port 2252 --chromedriver-port 4735
C:\Program Files (x86)\Appium\node_modules\appium\bin>node appium.js -a xxxxxxxxx -p 4728 --nodeconfig “c:/Grid/node2.json” --udid emulater-5556 --bootstra
p-port 2257 --chromedriver-port 4739