SELENIUM GRID AND
JENKINS
Outline
Why Selenium Grid
Features / Components of Grid
Grid Node and Grid Hub
Why we thought of Selenium Grid
Jenkins plug-in for selenium
How to write tests test design
Working example
What is Selenium Grid
Usual Selenium Setup
Issues ?
RC (Remote Control) is quite slow.
Takes a lot of time to complete all your test
suits
Not suitable for large scale testing
Can run a limited number of concurrent
tests.
About six browsers On same RC
Work around ..
Work around
Multiple RCs to avoid the limitation on #
of parallel tests.
Issues:
Test needs to be aware of the RC being used.
Have to maintain a series of RCs.
Solution : Selenium Grid
All your components
All Can be in different machines..
All of them can communicate using selenese.
Selenium Grid
A Distributed grid of RCs.
Main two components
Grid Hub
Grid Nodes
Grid Hub
Allocates RCs for tests
Keeps an eye on test sessions
Entry point for all your tests
Load balances test requests to the RCs.
Grid Node
It is configured and started using a command.
Provide all your capabilities in the command.
browserType
Version
Platform i.e. Windows,linux,CentOS
applicationName a specific name for your
node.
Grid Node
Capabilities are the unique attributes for
a node.
Selenium Grid code uses
DesiredCapabilities
This capability object is passed into
RemoteWebDriver instance
Selenium Grid Console
It shows you all the connected grid
clients(nodes)
More features
Supports parallel execution
We need to write our test to execute in
parallel.
Use Junit4 ParallelComputer features.
Features..
Supports Selenium WebDriver / Remote
WebDriver
Grid 2.0 is the latest, more features with it.
Easy to start the Grid Hub as well as the node.
Why we thought of Using
Selenium
Our product has a GWT (Google web tool
kit) based front end.
Complex user scenarios involved.
Big , distributed team working on
features.
Usual scrum team, a single tester
No enough time to do end end UI tests.
Why we thought of Selenium
Grid
Different platforms to support
Windows/IE9
XP/IE8
CentOS/FF
64 bit/ 32 bit machine combinations.
Limited time and Need to execute all in one
shot.
Grid allows multiple environments and
parallel executions.
Selenium Grid in Jenkins
Jenkins is a CI server.
Why Jenkins ?
Our code base is huge.
Needs to ensure clean builds.
It has lot of plugins.
Its free and open
Jenkins has a plug-in for selenium grid
Easy installation.
Selenium grid is executed within the Jenkins server.
You can start grid node by pointing to this grid url.
With your desired capabilities.
Jenkins JOB
Jenkins Selenium Plugin
How we write Tests
Our Demo Setup
Demo..
Show time..