1 of 14

SELENIUM GRID

2 of 14

PARALLEL/SEQUENTIAL EXECUTION

500 Test Cases

100 test cases

200 test cases

200 Test Cases

HUB

NODE 1

NODE 2 - 6666

NODE 3 - 7777

4444

5555

B – IE, FF, Chrome

B - Chrome

B - Firefox

3 of 14

How to configure hub and nodes

java -jar selenium-server-standalone-2.37.0.jar –role hub

STARTING A HUB

java -jar selenium-server-standalone-2.37.0.jar -role webdriver –hub http://localhost:4444/grid/register -port 5555

REGISTERING A NODE TO THE HUB

SETTING UP SUPPORTED BROWSER NAMES

java -jar selenium-server-standalone-2.37.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5555 -browser browserName=firefox -browser browserName=iexplore -browser browserName=chrome

4 of 14

SETTING UP MAX INSTANCES & SESSIONS

java -jar selenium-server-standalone-2.37.0.jar -role webdriver -hub

http://localhost:4444/grid/register -port 5555 -browser browserName=firefox

-browser browserName=iexplore -browser browserName=chrome,maxInstances=3

SETTING UP MAX INSTANCES

SETTING UP MAX SESSIONS

java -jar selenium-server-standalone-2.32.0.jar -role webdrive

r -hub http://localhost:4444/grid/register -port 5555 -browser browserName=firef

ox,maxInstances=4 -browser browserName=iexplore -browser

browserName=chrome,maxInstances=3 -maxSession 4

5 of 14

SETTING UP CHROME & IE DRIVERS

-Dwebdriver.chrome.driver= C:\Softwares\chromedriver.exe

SETTING UP CHROME DRIVER

FINAL COMMAND

Java -Dwebdriver.chrome.driver= C:\Softwares\chromedriver.exe

-Dwebdriver.ie.driver= C:\Softwares\IEDriverServer.exe

-jar selenium-server-standalone-2.32.0.jar -role webdriver

-hub http://localhost:4444/grid/register -port 5555 -browser

browserName=firefox,maxInstances=4 -browser browserName=iexplore -browser

browserName=chrome,maxInstances=3 -maxSession 4

SETTING UP IE DRIVER

-Dwebdriver.ie.driver= C:\Softwares\IEDriverServer.exe

6 of 14

WHAT WE HAVE SEEN SO FAR:

  • What is Grid?
  • What are Hub and Nodes?
  • Grid Console
  • Configuring Hub & Nodes
  • What are Max Instances
  • Whar are Max Sessions
  • Setting up Max Instances & Sessions
  • Configuring Grid for IE & Chrome driver support
  • Registering Multiple nodes to a hub

7 of 14

WHAT WE WILL SEE NOW:

  • How to execute single test on a single node – serially on multiple browsers?
  • How to execute single test on a single node – Parallely on multiple browsers?

8 of 14

Single test on a single node – serially on multiple browsers

public class testSearch {

@Test(dataProvider="getData")

public void doSearch(String text, String browser) throws MalformedURLException{

System.out.println(browser);

DesiredCapabilities capabilities = null;

if(browser.equals("firefox")){

capabilities = DesiredCapabilities.firefox();

capabilities.setBrowserName("firefox");

capabilities.setPlatform(Platform.ANY);

9 of 14

}else if(browser.equals("ie")){

capabilities = DesiredCapabilities.internetExplorer();

capabilities.setBrowserName("iexplore");

capabilities.setPlatform(Platform.WINDOWS);

}else if(browser.equals("chrome")){

capabilities = DesiredCapabilities.chrome();

capabilities.setBrowserName("chrome");

capabilities.setPlatform(Platform.ANY);

}

//require for WebDriver

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

//RemoteWebDriver driver = new FirefoxDriver();

driver.get("http://google.com");

driver.findElement(By.name("q")).sendKeys(text);

}

10 of 14

@DataProvider

public Object[][] getData(){

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

data[0][0] = "selenium";

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

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

data[1][1] = "chrome";

return data;

}

11 of 14

Single test on a single node – Parallely on multiple browsers

public class testSearch {

@Test(dataProvider="getData")

public void doSearch(String text, String browser) throws MalformedURLException{

System.out.println(browser);

DesiredCapabilities capabilities = null;

if(browser.equals("firefox")){

capabilities = DesiredCapabilities.firefox();

capabilities.setBrowserName("firefox");

capabilities.setPlatform(Platform.ANY);

12 of 14

}else if(browser.equals("ie")){

capabilities = DesiredCapabilities.internetExplorer();

capabilities.setBrowserName("iexplore");

capabilities.setPlatform(Platform.WINDOWS);

}else if(browser.equals("chrome")){

capabilities = DesiredCapabilities.chrome();

capabilities.setBrowserName("chrome");

capabilities.setPlatform(Platform.ANY);

}

//require for WebDriver

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

//RemoteWebDriver driver = new FirefoxDriver();

driver.get("http://google.com");

driver.findElement(By.name("q")).sendKeys(text);

}

13 of 14

@DataProvider (parallel=true)

public Object[][] getData(){

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

data[0][0] = "selenium";

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

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

data[1][1] = "chrome";

return data;

}

14 of 14

SETTING UP JSON FOR HUB & NODES

java -jar selenium-server-standalone-2.37.0.jar -role hub -hub Config hub.json

SETTING UP JSON FOR HUB

SETTING UP JSON FOR NODE

java -jar selenium-server-standalone-2.37.0.jar -role webdriver -nodeConfig node1.json