xxxxxxxxxx
-it's a java program looks like jar file
-we run this jar from 2 roles: hub and node
-hub receives commands Webdriver object of the client
-then hub is looking for available nodes
for execution.
-nodes are executing tests
xxxxxxxxxx
Selenium Grid can be used to execute
same or different test scripts on
multiple platforms and browsers
concurrently so as to achieve distributed test execution.
It allows running test cases in parallel
thereby saving test execution time.
It allows multi-browser testing.
It allows multi-OS testing.
It allows multi-platform testing (desktop, mobile).
xxxxxxxxxx
java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json
xxxxxxxxxx
What is a node in Selenium Grid?
Node is the machine which is attached to the hub.
There can be multiple (preferably) nodes in Selenium Grid.
Selenium Grid uses a hub-node concept where
you only run the test on a single machine
called a hub, but the execution will be done
by different machines called nodes.
RemoteWebDriver driver=new RemoteWebDriver (new URL(hubIP), capability);
xxxxxxxxxx
{
"port": 4444,
"newSessionWaitTimeout": -1,
"servlets" : [],
"withoutServlets": [],
"custom": {},
"capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"registryClass": "org.openqa.grid.internal.DefaultGridRegistry",
"throwOnCapabilityNotPresent": true,
"cleanUpCycle": 5000,
"role": "hub",
"debug": false,
"browserTimeout": 0,
"timeout": 1800
}
xxxxxxxxxx
When do you use Selenium Grid?
Selenium Grid can be used to execute
same or different test scripts on
multiple platforms and browsers
concurrently so as to achieve distributed test execution.