This site is in read only mode. Please continue to browse, but replying, likes, and other actions are disabled for now.
14 / 169
Dec 2014

Hi Team,

Any help in the same as the hub is listening to both Ports and both devices are connected to one machine but while executing the code when I run it serially it gets executed on one device only and when I run the code parallelly then it throws exception for "uiautomator quit before it successfully launched"

Thanks

My Json looks like

{
"capabilities":
[
{
"browserName": "Android",
"version":"4.4",
"maxInstances": 3,
"platform":"ANDROID",
"deviceName":"emulator-5554"
}],

"configuration":

{
"nodeTimeout":120,
"port":4723,
"hubPort":4444,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:4723/wd/hub",
"hub": "127.0.0.1:4444/grid/register",
"hubHost":"127.0.0.1",
"nodePolling":2000,
"registerCycle":10000,
"register":true,
"cleanUpCycle":2000,
"timeout":30000,
"maxSession":1
}
}

i used 3 more json file(only node url and device changed ) for more devices and working fine with me

Even i was stuck on same issue for long.

you might creating new driver instance for each node so iit'll will stop existing running session when new session request open with new instance.
thats why you are not able to run session parallel on both devices.

Solution:
1. Take parameter from xml file and set capability as per device
2. Define appium with grid server url (hub url and port)

!! Happy testing ....................

Even I am facing the same issue. My node config files are:

file 1

{
"capabilities":
[
{
"browserName": "Android",
"version":"4.4.2",
"maxInstances": 3,
"platform":"ANDROID",
"deviceName":"emulator-5554"
}
],
"configuration":
{
"nodeTimeout":120,
"port":4728,
"hubPort":4444,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:4728/wd/hub",
"hub": "127.0.0.1:4444/grid/register",
"hubHost":"127.0.0.1",
"nodePolling":2000,
"registerCycle":10000,
"register":true,
"cleanUpCycle":2000,
"timeout":30000,
"maxSession":1
}
}

File 2

{
"capabilities":
[
{
"browserName": "Android",
"version":"4.4.2",
"maxInstances": 3,
"platform":"ANDROID",
"deviceName":"emulator-5556"
}
],
"configuration":
{

"nodeTimeout":120,
"port":4730,
"hubPort":4444,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:4730/wd/hub",
"hub": "127.0.0.1:4444/grid/register",
"hubHost":"127.0.0.1",
"nodePolling":2000,
"registerCycle":10000,
"register":true,
"cleanUpCycle":2000,
"timeout":30000,
"maxSession":1

}
}

Code Written:

public static AndroidDriver driver=null;

@Test(dataProvider="getData")
public void searchTest(String b) throws MalformedURLException, InterruptedException{

	if(driver==null){

	DesiredCapabilities cap = null;

	System.out.println(b);
		if(b.equals("mobile1")){


		cap	= new DesiredCapabilities();
		cap.setCapability(CapabilityType.BROWSER_NAME, "");
		cap.setCapability("deviceName","emulator-5556");
		cap.setCapability("platformVersion", "4.4.2");
		cap.setCapability("platformName","Android");

		cap.setCapability("appPackage",
					"com.android.contacts");
		cap.setCapability("appActivity",
					"com.android.contacts.activities.DialtactsActivity");

	}else if(b.equals("mobile2")){

		cap	= new DesiredCapabilities();

		cap.setCapability(CapabilityType.BROWSER_NAME, "");
		cap.setCapability("deviceName","emulator-5554");
		cap.setCapability("platformVersion", "4.4.2");
		cap.setCapability("platformName","Android");

		cap.setCapability("appPackage",
				"com.android.contacts");
	cap.setCapability("appActivity",
				"com.android.contacts.activities.DialtactsActivity");

	}

		driver = new AndroidDriver(new URL("http://localhost:4444/wd/hub"), cap);
	driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
	driver.quit();
	}
}

@DataProvider(parallel=true)
public Object[][] getData(){

	Object data[][] = new Object[2][1];

	data[0][0] = "mobile1";

	data[1][0] = "mobile2";

	return data;


}

Every time the code is being executed on a single device where as I have connected two real device with same machine and started the hub as well on same machine:

Hub Started with:

java -jar selenium-server-standalone-2.44.0.jar -role hub

Started node 1:

C:\Users\ishita\Desktop\Appium\Appium2\node_modules\appium\bin>node appium --nodeconfig c:/softwares/jars/appiumnode1.json -p 4728

Started node 2:

C:\Users\Selenium\Desktop\Appium\Appium\node_modules\appium\bin>node appium --nodeconfig c:/softwares/jars/appiumnode2.json -p 4730

Please suggest me the fix as I need to submit a POC on the same UGENTLY !!!

Thanks for the help.

Ishita

Config. looks fine. Try to run and pass parameter from xml file and make parallel=tests
like:
suite name="VK Suite" parallel="tests" thread-count="5" verbose="1

test name="firstTest on fiest mobile"
parameter name="DeviceID" value="TA9asdsda33071OQ"
classes
class
name="vKSocialSite.VKTest"
classes
test
test name="firstTest on second mobile "
parameter name="DeviceID" value="AN45577"
classes
class
name="sof_app.SOFTest"
classes
test
suite

<> </> syntex removed

Hi,

I am trying to run two scripts on different mobile(Nexus and Samsung).

I have 2 nodeconfig.json files each having the config of devices. I am starting 2 appium servers with different node config specified in general settings. When i check the grid console i see that both the devices are appearing as Node.

In testng.xml i have specified different tests. When they are executed sequentially all the scripts are executed on a single mobile even though desired capabilities mentioned in the test script are different.

I am currently using :
appium: 1.2.0.0
OS windows
Android devices: Nexus and Samsung
Device OS: 5.0 and 4.3

Please let me know if i am missing any thing which is making the script to run on same device even though the desired capabilities mentioned are different in each test script.

JSON:

File 1:
{
"capabilities":
[
{
"browserName": "chrome",
"version": "4.3",
"maxInstances": 1,
"platform": "ANDROID",
"deviceName": "m0"
}
],
"configuration":
{
"nodeTimeout":120,
"port":4723,
"hubPort":4444,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:4723/wd/hub",
"hub": "127.0.0.1:4444/grid/register",
"hubHost":"127.0.0.1",
"nodePolling":2000,
"registerCycle":10000,
"register":true,
"cleanUpCycle":2000,
"timeout":30000,
"maxSession":1
}
}

File 2:
{
"capabilities":
[
{
"browserName": "chrome",
"version": "5.0",
"maxInstances": 1,
"platform": "ANDROID",
"deviceName": "hammerhead"
}
],
"configuration":
{
"nodeTimeout":120,
"port":4728,
"hubPort":4444,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:4728/wd/hub",
"hub": "127.0.0.1:4444/grid/register",
"hubHost":"127.0.0.1",
"nodePolling":2000,
"registerCycle":10000,
"register":true,
"cleanUpCycle":2000,
"timeout":30000,
"maxSession":1
}
}

I have attached the test scripts and testng.xml info.txt172 (7.3 KB) for reference. Any help would be appriciated.

Thanks and regards,
M.Karthik

Hi All,

Configuration to run test parallel on multiple device:

Prerequisite: 1. Start selenium grid on 127.0.0.1
2. Register multiple appium node on grid with different port

XML file:

suite name="Logintestsuite:" parallel="tests" thread-count="5" verbose="1

test name="firstTest on fiest mobile"
parameter name="DeviceID" value="TA9asdsda33071OQ"
classes
class
name="package.testfilename"
classes
test
test name="firstTest on second mobile "
parameter name="DeviceID" value="AN45577"
classes
class
name="package.testfilename"
classes
test
suite

<> </> syntex removed

Test File:

package arvind;

public class LoginTest{

public String appionlicatPath = "//....apk";

public String emulator_device_1 ="emulator-5554";
public String emulator_device_2 ="emulator-5556";
public String MobileDevice_1 ="D1";
public String MobileDevice_2 ="D2";
public static  DesiredCapabilities capabilities = new DesiredCapabilities(); 



@Parameters("DeviceID")
@BeforeTest
public void startAppium(String DeviceID) throws MalformedURLException, InterruptedException{
	
	if(DeviceID.equalsIgnoreCase("mobile1")){
		setcapabilities(appionlicatPath, MobileDevice_1,"Appium");
	         }
	
	if(DeviceID.equalsIgnoreCase("mobile2")){
		setcapabilities(appionlicatPath, MobileDevice_2,"Appium");
	         }
	
	if(DeviceID.equalsIgnoreCase("first")){
		setcapabilities(appionlicatPath, emulator_device_1,"Appium");
	         }
		
	if(DeviceID.equalsIgnoreCase("second")){
		setcapabilities(appionlicatPath, emulator_device_1,"Appium");
	         }
	if(DeviceID.equalsIgnoreCase("chrome")){
		setChromeCapabilities(emulator_device_1,"Appium");
	         }
	
	
	
	driver =  new AndroidDriver(new URL("http://127.0.0.1:4444/wd/hub"),capabilities);
	driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
	
	
}

@ AfterTest(alwaysRun= true)
public void tearDown(){
	driver.quit();
}

   @Test()
   public void loginTest() throws InterruptedException{
 Thread.sleep(10000L);
   homepage.loginButton();
   registerpage.login("patel5788@gmail.com", "abcd");
   Assert.assertTrue("User not loggedIn", homepage.isTestPresent("Log Out"));	


public void setcapabilities(String apppath,String device,String automation){
	File app = new File(apppath); 
	capabilities.setCapability("deviceName", device);
	capabilities.setCapability("automationName",automation);
	capabilities.setCapability("appium-version", "1.2.2");
	capabilities.setCapability("platformName", "Android");
	capabilities.setCapability("platformVersion", "4.4.2");			
        capabilities.setCapability("app", app.getAbsolutePath());
    
}

hope this is helpful for appium grid setup.
Question welcomed :smile:

Hi @Arvind_Patel,

I tried below mentioned steps:

1)Launch grid at localhost:4444
2)Launch appium with nodeConfig.json and start it i.e. appium started at 127.0.0.1:4723
3)Launch appium with nodeConfig1.json and start it i.e. appium started at 127.0.0.1:4728

Prepare testng.xml as shown below:

suite name="Suite" parallel="tests" thread-count="5" verbose="1"
test name="Test1"
parameter name="Device_ID" value="085d3b920c928938"
classes
class name="Test.ZoomPinch"
classes
test
test name="Test2"
parameter name="Device_ID" value="4df70d325d884031"
classes
class name="Test.Calculator"
classes
test
suite

Have beforemethod parametarized:

@Parameters ("Device_ID")
@BeforeMethod
public void setUp(String device)throws MalformedURLException {
System.out.println(device);
switch(device)
{
case "4df70d325d884031":
capabilities = new DesiredCapabilities();
//capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
//capabilities.setCapability("deviceName", "Default");
capabilities.setCapability(CapabilityType.VERSION, "4.3");
capabilities.setCapability("browserName", "chrome");
//capabilities.setCapability(CapabilityType.PLATFORM, "Android");
capabilities.setCapability("deviceName", "m0");
capabilities.setCapability("platformName", "Android");
//capabilities.setCapability(capabilityName, value)
//capabilities.setCapability("appPackage", "com.google.android.apps.maps");
//capabilities.setCapability("appActivity", "com.google.android.maps.MapsActivity");
break;
default: System.out.println("no mob exists...");
break;
}
//driver= new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap); // (you can get it from
// apk info app)

                    driver   = new AppiumDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
}

@Parameters("Device_ID")
@BeforeMethod
public void setup(String device)throws Exception
{
switch(device)
{
case "085d3b920c928938":
capabilities = new DesiredCapabilities();
//capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
//capabilities.setCapability("browserName", "Chrome");
capabilities.setCapability(CapabilityType.VERSION, "5.0");
capabilities.setCapability("deviceName", "hammerhead");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("appPackage", "com.davemorrissey.labs.subscaleview.sample");
capabilities.setCapability("appActivity", "com.davemorrissey.labs.subscaleview.sample.MainActivity");
break;
default:System.out.println("no mob...exists");
break;
}
driver= new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

      //driver = new AppiumDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
}

When executed, out of 2 tests 1 of them fail...
when only Test2 is executed, even though device id is mentioned it is getting executed on another device.

Please suggest what needs to be done...

Thanks and regards,
M.Karthik

Hi @karthik_holla,

You are launching the second test directly on the first appium server (port 4723):

You must use the hub url:

driver = new AppiumDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

And the hub will redirect your test to the properly appium server depending on "browserName", "version" and "platform" capabilities.

@rgonalo @Arvind_Patel ,

i tried again it didnt work. Everything will execute in a single device i.e nexus 5 irrespective of parallel or sequential

Below are the test cases,testng.xml and config files:

public class Calculator {

DesiredCapabilities capabilities;
  AppiumDriver driver;

@Parameters ("Device_ID") 
@BeforeMethod
public void setUp(String device)throws MalformedURLException {
	System.out.println(Thread.currentThread().getId());
	switch(device)
	{
	case "4df70d325d884031":
                 			capabilities = new DesiredCapabilities();
                 			//capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
                 			//capabilities.setCapability("deviceName", "Default");
                 			capabilities.setCapability(CapabilityType.VERSION, "4.3");
                 			capabilities.setCapability("browserName", "chrome");
                 			//capabilities.setCapability(CapabilityType.PLATFORM, "Android");
                 			capabilities.setCapability("deviceName", "m0");
                 			capabilities.setCapability("platformName", "Android");
                 			//capabilities.setCapability(capabilityName, value)
                 			//capabilities.setCapability("appPackage", "com.google.android.apps.maps");
                 			//capabilities.setCapability("appActivity", "com.google.android.maps.MapsActivity");
                 			break;
	default: System.out.println("nim thatha kottidara ee config du mobile???");
			 break;
	}
              //driver= new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);                                                                                                                                  // (you can get it from
                                                                                                                                                                                                              // apk info app)
                        
                    driver   = new AppiumDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
}
@Test
public void verifyCalculator() throws InterruptedException
{
	driver.get("http://www.google.com");
	Thread.sleep(10000);
	System.out.println("launched...");
	System.out.println(driver.getSessionId());
    }

@AfterMethod
public void destroy()
{
driver.close();
//driver.quit();
}
}


public class ZoomPinch
{
static DesiredCapabilities capabilities;
static AppiumDriver driver;
static WebDriverWait wait;

@Parameters("Device_ID")
 @BeforeMethod
 public void setup(String device)throws Exception 
{
	System.out.println(Thread.currentThread().getId());
	switch(device)
	{
	case "085d3b920c928938":
	  capabilities = new DesiredCapabilities();
      //capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
       //capabilities.setCapability("browserName", "Chrome");
      capabilities.setCapability(CapabilityType.VERSION, "5.0");
      capabilities.setCapability("deviceName", "hammerhead");
      capabilities.setCapability("platformName", "Android");
      capabilities.setCapability("appPackage", "com.davemorrissey.labs.subscaleview.sample");
      capabilities.setCapability("appActivity", "com.davemorrissey.labs.subscaleview.sample.MainActivity");
      break;
	default:System.out.println("nim thatha kottidara ee config du mobile???");
	 		break;
	}
	 driver= new AppiumDriver(new URL("http://localhost:4444/wd/hub"), capabilities); 

      //driver = new AppiumDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
}
 @Test
 public void zoom() throws MalformedURLException
 { 
	 System.out.println(driver.getSessionId());

      try {
		Thread.sleep(4000);
	} catch (InterruptedException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
      driver.findElementById("com.davemorrissey.labs.subscaleview.sample:id/basicFeatures").click();
      //android.view.View
      CommonFunctionLibrary cobj=new CommonFunctionLibrary(driver);
      cobj.zoomOnElement(cobj,"id", "com.davemorrissey.labs.subscaleview.sample:id/imageView");
      cobj.pinchOnElement(cobj,"id", "com.davemorrissey.labs.subscaleview.sample:id/imageView");
 }
 @AfterMethod
 public void tearDown()
 {
	 driver.quit();
 }

}


testng.xml:

xml version="1.0" encoding="UTF-8"
DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"
suite name="Suite" parallel="none"
test name="Test1"
parameter name="Device_ID" value="085d3b920c928938"
classes
class name="Test.ZoomPinch"
classes
test
test name="Test2"
parameter name="Device_ID" value="4df70d325d884031"
classes
class name="Test.Calculator"
classes
test
suite


Json Config:

{
"capabilities":
[
{
"browserName": "chrome",
"version": "5.0",
"maxInstances": 1,
"platform": "ANDROID",
"deviceName": "hammerhead"
}
],
"configuration":
{
"nodeTimeout":120,
"port":4728,
"hubPort":4444,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:4728/wd/hub",
"hub": "127.0.0.1:4444/grid/register",
"hubHost":"127.0.0.1",
"nodePolling":2000,
"registerCycle":10000,
"register":true,
"cleanUpCycle":2000,
"timeout":30000,
"maxSession":1
}
}

{
"capabilities":
[
{
"browserName": "chrome",
"version": "4.3",
"maxInstances": 1,
"platform": "ANDROID",
"deviceName": "m0"
}
],
"configuration":
{
"nodeTimeout":120,
"port":4723,
"hubPort":4444,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:4723/wd/hub",
"hub": "127.0.0.1:4444/grid/register",
"hubHost":"127.0.0.1",
"nodePolling":2000,
"registerCycle":10000,
"register":true,
"cleanUpCycle":2000,
"timeout":30000,
"maxSession":1
}
}

Please help . not sure whats going wrong... :frowning:

You must set the device id when starting the Appium server (parameter --udid) or creating the driver (capability udid). Without this configuration, the Appium server executes the test in the first device that it finds.

In your example, you can add the capability with:

capabilities.setCapability("udid", device);

Or launch both Appium servers with --udid:

node . --nodeconfig nodeConfig.json -p 4723 --udid 4df70d325d884031
node . --nodeconfig nodeConfig1.json -p 4728 --udid 085d3b920c928938

Appium doc: http://appium.io/slate/en/master/?ruby#running-your-tests-with-appium263

@rgonalo @Hassan_Radi @Arvind_Patel,

I am trying to run the my test cases parallel on 3 devices connected to my machine

I am trying to launch the same test cases for different devices using the method described below.
[Launching and stopping appium server programatically][1].

Please can you guide me on how to launch appium server programmatically using node config.json.

1) I launching grid through command prompt: java -jar selenium-server-standalone.jar -role hub
2) I am executing the below code to launch appium server with nodeconfig.json

Below is the Code which i am trying to execute:

package Test;

import io.appium.java_client.AppiumDriver;

import java.io.IOException;
import java.net.URL;

import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecuteResultHandler;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.ExecuteException;
import org.apache.commons.exec.Executor;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;

public class NewTrial
{
public static void main(String[] args) throws ExecuteException, IOException
{
AppiumDriver driver;
DefaultExecuteResultHandler resultHandler;
Executor executor ;
CommandLine command = new CommandLine("cmd");
command.addArgument("/c");
command.addArgument("C:\Users\mkarthik\Documents\selenium\Appium\node.exe");
command.addArgument("C:\Users\mkarthik\Documents\selenium\Appium\node_modules\appium\bin\appium.js");
command.addArgument("--nodeconfig");
command.addArgument("C:\Users\mkarthik\Documents\nodeconfig.json");
command.addArgument("--bootstrap-port");
command.addArgument("4724");
resultHandler = new DefaultExecuteResultHandler();
executor = new DefaultExecutor();
executor.setExitValue(1);
System.out.println("command: "+command);
executor.execute(command, resultHandler);

	DesiredCapabilities capabilities=new DesiredCapabilities();
	URL url=new URL("http://localhost:4444/wd/hub");

	capabilities.setCapability(CapabilityType.VERSION, "5.0");
      capabilities.setCapability("deviceName", "hammerhead");
      capabilities.setCapability("platformName", "Android");
	capabilities.setCapability("udid","085d3b920c928938");

	 driver   = new AppiumDriver(url, capabilities);
	 driver.get("http://www.google.com");


}

}

Below is the error i am getting:

command: cmd /c C:\Users\mkarthik\Documents\selenium\Appium\node.exe C:\Users\mkarthik\Documents\selenium\Appium\node_modules\appium\bin\appium.js --nodeconfig C:\Users\mkarthik\Documents\nodeconfig.json --bootstrap-port 4724
log4j:WARN No appenders could be found for logger (org.apache.http.client.protocol.RequestAddCookies).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.openqa.selenium.WebDriverException: Error forwarding the new session Empty pool of VM for setup Capabilities [{deviceName=hammerhead, platformName=Android, udid=085d3b920c928938, version=5.0}]
Command duration or timeout: 249 milliseconds
Build info: version: '2.42.2', revision: '6a6995d', time: '2014-06-03 17:42:30'
System info: host: 'mkarthik-W7', ip: '192.168.56.1', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_40'
Driver info: io.appium.java_client.AppiumDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:88)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:126)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:153)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:44)
at Test.NewTrial.main(NewTrial.java:57)
Caused by: org.openqa.grid.common.exception.GridException: Error forwarding the new session Empty pool of VM for setup Capabilities [{deviceName=hammerhead, platformName=Android, udid=085d3b920c928938, version=5.0}]
at org.openqa.grid.web.servlet.handler.RequestHandler.process(RequestHandler.java:114)
at org.openqa.grid.web.servlet.DriverServlet.process(DriverServlet.java:83)
at org.openqa.grid.web.servlet.DriverServlet.doPost(DriverServlet.java:67)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.seleniumhq.jetty7.servlet.ServletHolder.handle(ServletHolder.java:565)
at org.seleniumhq.jetty7.servlet.ServletHandler.doHandle(ServletHandler.java:479)
at org.seleniumhq.jetty7.server.session.SessionHandler.doHandle(SessionHandler.java:225)
at org.seleniumhq.jetty7.server.handler.ContextHandler.doHandle(ContextHandler.java:1031)
at org.seleniumhq.jetty7.servlet.ServletHandler.doScope(ServletHandler.java:406)
at org.seleniumhq.jetty7.server.session.SessionHandler.doScope(SessionHandler.java:186)
at org.seleniumhq.jetty7.server.handler.ContextHandler.doScope(ContextHandler.java:965)
at org.seleniumhq.jetty7.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.seleniumhq.jetty7.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
at org.seleniumhq.jetty7.server.Server.handle(Server.java:349)
at org.seleniumhq.jetty7.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:452)
at org.seleniumhq.jetty7.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:47)
at org.seleniumhq.jetty7.server.AbstractHttpConnection.content(AbstractHttpConnection.java:894)
at org.seleniumhq.jetty7.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:948)
at org.seleniumhq.jetty7.http.HttpParser.parseNext(HttpParser.java:857)
at org.seleniumhq.jetty7.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.seleniumhq.jetty7.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:66)
at org.seleniumhq.jetty7.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:254)
at org.seleniumhq.jetty7.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
at org.seleniumhq.jetty7.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
at java.lang.Thread.run(Unknown Source)
[36minfo[39m: Welcome to Appium v1.2.0 (REV e53f49c706a25242e66d36685c268b599cc18da5)
[90mdebug[39m: Non-default server args: {"nodeconfig":"C:\Users\mkarthik\Documents\nodeconfig.json"}
[36minfo[39m: Appium REST http interface listener started on 0.0.0.0:4723
[36minfo[39m: LogLevel: debug
[90mdebug[39m: starting auto register thread for grid. Will try to register every 10000 ms.
[90mdebug[39m: Appium successfully registered with the grid on 127.0.0.1:4444
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 4.760 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 0.943 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 0.712 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 0.586 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 0.581 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 0.587 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 1.939 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[90mdebug[39m: Appium request initiated at /wd/hub/status
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 0.532 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 1.044 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 1.581 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 0.547 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 1.643 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 0.944 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}
[36minfo[39m: [37m-->[39m [37mGET[39m [37m/wd/hub/status[39m [90m{}[39m
[36minfo[39m: [37m<-- GET /wd/hub/status [39m[32m200[39m[90m 1.161 ms - 104[39m [90m{"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}[39m
[90mdebug[39m: Appium request initiated at /wd/hub/status
[90mdebug[39m: Request received with params: {}
[90mdebug[39m: Responding to client with success: {"status":0,"value":{"build":{"version":"1.2.0","revision":"e53f49c706a25242e66d36685c268b599cc18da5"}}}

Below is the nodeconfig.json

{
"capabilities":
[
{
"browserName": "chrome",
"version": "5.0",
"maxInstances": 1,
"platform": "ANDROID",
"deviceName": "hammerhead"
}
],
"configuration":
{
"nodeTimeout":120,
"port":4728,
"hubPort":4444,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:4728/wd/hub",
"hub": "127.0.0.1:4444/grid/register",
"hubHost":"127.0.0.1",
"nodePolling":2000,
"registerCycle":10000,
"register":true,
"cleanUpCycle":2000,
"timeout":30000,
"maxSession":1
}
}

Kindly help.

Thanks and regards,
M.Karthik

If running more than one test session on the same machine, you need to make sure to provide different ports for each test. Have you done that???

I just tried with the code which launches grid and appium. Its launching appium server and its registering using nodeconfig.json. I see that the grid console shows the mobile but when AppiumDriver driver = new AppiumDriver(new ("http://local host:4444/wd/hub"),capabilities); is executed its failing...

Yes have only one device connected to test...have attached the error info in my previous post..."error forwarding new session empty pool of vm for setup capabilities" is the error