Showing posts with label Grid. Show all posts
Showing posts with label Grid. Show all posts

September 16, 2015

Selenium Grid Extras

September 16, 2015 3
In this post i am going to explain about Selenium Grid Extras.

Selenium Grid Extras :

Simplify the management of the Selenium Grid Nodes and stabilize said nodes by cleaning up the test environment after the build has been completed.

For More information on Selenium Grid Extras you can refer to this link. 

Selenium-Grid-Extras



Features of Grid Extras:
  • Ability to control individual grid nodes, following is an incomplete list of OS level tasks:
    • Killing any browser instance by name
    • Stopping any Process by PID
    • Moving mouse to specific location
    • Get Memory usage and disk statistics
  • Automatically upgrade WebDriver binaries
  • Restart node after a set number of test executions
  • Central storage of configurations for all nodes on the HUB server
  • Screenshots at the OS level
  • And much more.


Steps to Install / Configure Selenium Grid Extras:

Download Grid Extras Jar file from Here : Download Selenium-Grid-Extras

Selenium Grid Extras is a project that helps you set up and manage your local Selenium Grid. Typical instances of the Grid consists of the HUB and Nodes. The HUB is responsible for managing test sessions and assigning new session idle nodes.
Setup of Grid Extras is made to be simple, just run the packaged JAR file and point the node at the HUB location, Grid Extras will take care of the rest for you.

Hub SetUp:
1. After downloading selenium grid extras jar file, open command prompt and navigate to folder where grid extras jar file is available.
2. Type in command  java -jar


I renamed selenium grid extras jar file to SeleniumGridExtras.jar.

After starting seleniumgridextras it will prompt several questions.

What is the default Role of this computer? (1 - node | 2 - hub | 3 - hub & node)

Default Value: 1

if you want to use your machine as Hub..then you need to type 2, if you want to use your machine as hub and node then type 3.

In this case i am using it as hub  so i type in 2.

What is the HOST for the Selenium Grid Hub?
Default Value: 127.0.0.1
In my case it is default value so i just click Enter

What is the PORT for the Selenium Grid Hub?
Default Value: 4444
Press Enter port will be set to 4444


What is node Platform? (WINDOWS|XP|VISTA|WIN8|WIN8_1|MAC|LINUX|UNIX|ANDROID)
Default Value: VISTA

I left it as default

Would you like WebDriver, IEDriver and ChromeDriver to auto update (1-yes/0-no)
Default Value: 1
Press Enter --it will automatically updte your webdriver,IE and chrome drivers

Once you set all options your command prompt should look like this



Verify Grid Console and Grid Extras

type in the IP address which is shown in command prompt and output looks like this




It shows you  RAM and OS details

Now open grid console --- http://localhost:4444/grid/console




Grid Node Set Up:

Go to another machine and start seleniumgridExtras.jar

It will prompt several questions:

What is the default Role of this computer? (1 - node | 2 - hub | 3 - hub & node)

Default Value: 1
type 1 ..bcs we want to use this as node


What is the HOST for the Selenium Grid Hub?
Default Value: 127.0.0.1
type in IP address of HUB ..ex: 172.xx.xx.xx

What is the PORT for the Selenium Grid Hub?
Default Value: 4444
Press Enter port will be set to 4444


Will this node run 'Firefox' (1-yes/0-no)
Default Value: 0

Yes I want to run Firefox so i type in 1

What version of 'Firefox' is installed?
Default Value: 36

It will identify your firefox version. Press Enter

Will this node run 'InternetExplorer' (1-yes/0-no)
Default Value: 0
Yes I want to run IE so i type in 1

Similarly it will prompt questions for Chrome, Safari based on your requirement you have to choose option.

Would you like this Node to auto update browser versions? (1-yes/0-no)
Default Value: 1

press 1 if you want to auto update browser versions.



Should this Node record test runs? (1-yes/0-no)
Default Value: 1

Press Enter 


Once you set all the options it will start Grid Extras..

it should look like this....


Now you are all set to run your scripts on grid extras.

Again come back to HUB and navigate to http://localhost:4444/grid/console 
it should look like this







Now i can run scripts in FF,IE and Chrome.

The rest is same..you have to run your webdriver script.

Below is the sample script.




Once the execution is done...Open HUB URL http://1xx.xx.xx.xx:3000/ or in HUB machine open url 

It should look like this...



You can see videos in seleniumgrid extras folder...where you seleniumgridextras jar file is available. One folder will be created with name "video_output" in that folder you can see video files.









September 8, 2015

Selenium Grid by using VisGrid

September 08, 2015 3
In this I will explain you what is selenium grid and how to setup this grid in simple way...

Selenium Grid:
Selenium-Grid allows you run your tests on different machines against different browsers in parallel. That is, running multiple tests at the same time against different machines running different browsers and operating systems. Essentially, Selenium-Grid support distributed test execution. It allows for running your tests in a distributed test execution environment

(From http://www.seleniumhq.org/docs/07_selenium_grid.jsp)


When to Use It:

Generally speaking, there’s two reasons why you might want to use Selenium-Grid.
  • To run your tests against multiple browsers, multiple versions of browser, and browsers running on different operating systems.
  • To reduce the time it takes for the test suite to complete a test pass.
(From http://www.seleniumhq.org/docs/07_selenium_grid.jsp)


Grid Set Up:

To set up grid its a bit tedious task..
1. Set up Hub
2 .Register your nodes to Hub
3. Mention max number of instances and sessions...etc etc...Everything you have to do it from command prompt...

Do we need to use boring command prompt..??
No
Do we have any GUI for grid?
Answer is Yes

What is the tool??

Here is Answer VisGrid

VisGrid: 
VisGrid is a GUI for Selenium Grid. You can start hub, create and attach a Selenium node very easily and quickly.



Here are details about VisGrid usage:


Steps to Download VisGrid:

Scroll down to bottom of page and Enter email id and click download.
You can see Release notes here -- http://www.codoid.com/products/downloadNotes/30




After downloading, unzip VisGrid.zip
Double click on Visgrid-1.8.jar
Click Start Hub Button
Now Hub is started and 'Create Node' & 'Stop Hub' buttons are displayed

Click 'Create Node' button
Select a browser and click 'Add' button

That's it. You have created Hub and attached a node successfully
Hit http://localhost:4444/grid/console to cross check your actions









By default VisGrid-1.8 came with 2.46, if you want you can change selenium-server and drivers.


Now your Grid is configured and ready to run scripts in parallel using Selenium Grid and VisGrid.

Steps to Create Grid_Maven Project:

Create a Maven Project --- Create-sample-maven-project
Difference between normal webdriver script and Grid script is how you instantiate your browser

What is Hub:
The hub is the central point where you load your tests into.
Controlling of execution will be done from Hub
The hub is launched only on a single machine
The machine containing the hub is where the tests will be run, but you will see the browser being automated on the node.

What is Node:
Nodes are the Selenium instances that will execute the tests that you loaded on the hub.
There can be one or more nodes in a grid.
Nodes can be launched on multiple machines with different platforms and browsers.
The machines running the nodes need not be the same platform as that of the hub.

Develop Script that can run on Grid:

There are two important classes which plays major role while running scripts using Grid
DesiredCapabilites is used to set the type of browser and OS that we will automate
RemoteWebDriver is used to set which node (or machine) that our test will run against.

Here is the sample script which can run script on Grid.






Here is sample testng.xml file



Final Project you can Download from here ...

Grid_Maven_VisGrid