Friday, August 28, 2020

Selenium Grid(Hub-Node)

 Selenium Grid - To run your test cases in Remote Machines like different OS-WINDOWS etc and to run in different Browsers and version.




HUB- To trigger your tests and nodes are nothing about your OS machines and the browsers.

Helps in running tests in parallel.in multiple machines.on selenium Grid.


1.Download Selenium server

Place the jar file in D driver and lets keeps D drive is your HUB


https://www.selenium.dev/downloads/

Selenium Server (Grid)

The Selenium Server is needed in order to run Remote Selenium WebDriver (Grid)

2. Run below to invoke server.

D:\UPC\seleniumServer>java -jar selenium-server-standalone-3.141.59.jar -role hub



3. copy paste in browser

http://169.254.149.102:4444/grid/console

or 

http://localhost:4444/grid/console


4.To Register Node


C:\Users\manjunathk\selenium>java -jar selenium-server-standalone-3.141.59.jar -role webdriver -hub http://169.254.149.102:4444/grid/register/ -port 5566


where D drive is HUB and

 C drive is my NODE



Now go back to D drive, looks for



Now Register chrome driver in node i.e c-driver


java -Dwebdriver.chrome.driver="C:\Users\manjunathk\selenium\chromedriver.exe"  -jar selenium-server-standalone-3.141.59.jar -role webdriver -hub http://169.254.149.102:4444/grid/register/ -port 5566





Write a program,


package ExtentReport.ExtentReports;


import java.net.MalformedURLException;

import java.net.URL;


import org.openqa.selenium.Platform;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.remote.DesiredCapabilities;

import org.openqa.selenium.remote.RemoteWebDriver;


public class GridTest {


public static void main(String[] args) throws MalformedURLException {

// TODO Auto-generated method stub

DesiredCapabilities dc = new DesiredCapabilities();

dc.setBrowserName("chrome");

dc.setPlatform(Platform.WINDOWS);

       // dc.setVersion("84.0.4147.135");

// Download from here https://chromedriver.chromium.org/downloads

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

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

}


}

After running above program, you should be seeing logs in node as




















Similarly for firefox, execute below.


java -Dwebdriver.firefox.driver="C:\Users\manjunathk\selenium\geckodriver.exe"  -jar selenium-server-standalone-3.141.59.jar -role webdriver -hub http://169.254.149.102:4444/grid/register/ -port 5577


15:05:16.732 INFO [DefaultGridRegistry.add] - Registered a node http://169.254.149.102:5577

15:05:34.920 INFO [DefaultGridRegistry.add] - Registered a node http://169.254.149.102:5566




Selenium_Grid_With_Docker_Compose(yml file)

 docker-compose.yml version: "3" services:   hub:     image: selenium/hub:3.141.59     ports:       - "4444:4444"   chro...