Skip to main content

Docker Integration with Selenium Grid - Complete Tutorial


Hello Everyone! Welcome back to another Fresh article of MODTECHSTUFF where you Learn Automation testing.
In this article, we will talk about docker Integration with Selenium Grid.

Learn Automation testing


Alongside Unit and Integration Tests, UI tests are significant in the product development lifecycle. They can recognize bugs and abnormalities before going to Production.
To run our Selenium tests in equal, we utilize the selenium network and disseminate tests over numerous physical or virtual machines which will lessen the time required for running tests. 
To run tests in equal, we have to design Selenium Grid with Hub and Nodes where the center is the main issue that will get test demands alongside arrangements or abilities. In view of the solicitation got, the center point will appropriate tests to the enrolled hubs. 

A large portion of the associations executes their Selenium contents on virtual machines. In view of the number of contents, they have to expand the hub machines. At the point when the hubs increment keeping up the Grid condition will turn into an issue in setting up required programs/OS mixes over these virtual machines. 
And furthermore, there are times were issues like Browser Crashes, hubs coming up short on memory, Java forms come up short on memory, and so forth kills our time in rehashing hub machines/center point. 
There are scarcely any organizations that utilization a Cloud-based stage for automation testing of web/portable applications like SauceLabs/Browserstack/CrossBrowserTesting yet yes these are costly.

Diminishing test execution time is key for programming improvement groups that desire to actualize visit conveyance draws near (like constant coordination and conveyance) or quicken advancement process durations by and large. Engineers just can't stand to trust that tests will finish in situations where regular forms and tests are the standards. Dispersing tests over various machines is one answer to this issue. 
We'll likewise see how to run tests against various programs and automate the provisioning and de-provisioning of machines to minimize expenses. 

This article sees how to disperse automated tests over various machines with Selenium Grid and Docker Swarm, and how we download, introduce, and coordinate it with the Selenium alongside concerned screen captures and this pictorial portrayal will empower you to comprehend the procedure rapidly and effectively as well.



What is Selenium Grid?

At the point when we actualize all the tests in a single machine sooner or later there may be a few impediments, and some of the time one single machine won't be sufficiently adequate to run all the tests and that purpose of opportunity Selenium grid comes into the job. 
With regards to appropriated testing, Selenium Grid is one of the most remarkable and well known open-source devices. With it, we can spread the test load over different machines and run them cross-program. 

Suppose you have a set-up of hundred tests that you run locally on your PC against a solitary adaptation of Chrome. Maybe it takes six minutes to run those tests. Utilizing Selenium Grid you could turn up three distinct machines to run them, which would diminish the test execution time by (about) 33%. You could likewise run similar tests against various programs and stages. Along these lines, in addition to the fact that you are sparing time, yet you are additionally assisting with guaranteeing that your web application carries on and looks similar when running on various programs and conditions

Selenium Grid utilizes a customer service model that incorporates a focal center point and numerous hubs (the programs which run the tests). 
Selenium is an opensource system for creating UI tests that can run on Chrome, Firefox, IE, and Edge. 
At the point when we convey an application, we need to test it physically. An analyzer will open the program, glue the URL, type his login and secret key, click the login catch, and check if the landing page shows up accurately. Selenium accompanies the guarantee to robotize this procedure. A robot will do that rather than a human!


What is Docker?

In straightforward terms, Docker can be named as a compartment. Engineers or Docker clients can put things like database, libraries, conditions into that holder, and afterward utilize those databases, conditions, and libraries to make, convey, and run applications. 
By utilizing Docker holders you can set up and pack a product application with the entirety of the substance that is required to assemble that application, for example, databases, libraries, and different conditions, lastly, you can dispatch them all out as one bundle. 

Typically while designing the Selenium grid we have to have various virtual machines as hubs and we have to interface each and every hub with the center point. Additionally, when we set up an ordinary framework we have to download the Selenium server container record and run that container document on every PC in which we are going to set up the Selenium grid. 
This is expensive and once in a while a tedious undertaking for the analyzers. Be that as it may, Docker encourages us to comprehend cost-related and tedious issues. 

Docker was imagined by Solomon Hykey and was propelled into the product business in 2013 March as an open-source device. These days, designers and framework engineers are utilizing Docker for a few reasons. 
Docker is a lightweight holder which can make you to run circulated applications in a moment. Docker Containers occupy less room than VMs (compartment pictures are regularly many MBs in size), and start right away. 
Whereas each Virtual Machine incorporates a full duplicate of a working framework, at least one application with important doubles and libraries which devours more space and makes delayed for sure. 

Docker is an open stage for engineers and framework executives to fabricate, boat, and run dispersed applications, regardless of whether on workstations, server farm VMs, or the cloud. 
At the end of the day, Docker is a holder that we should you to indicate a total bundle of parts expected to run a product. 
We won't examine much on Docker as there are numerous articles accessible on Docker. 
We accept that you have just introduced docker and is up running, if not please introduce Docker. Docker can be introduced on Windows, macOS, Linux, and Cloud stages. If it's not too much trouble check the necessities and download dependent on condition.

Pre-requisites for Docker

Install Java
Install Required Browsers (versions if needed)
Selenium server jars

Installing Docker in Windows

The following thing that we have to do is to introduce the Docker tool. To run Docker orders, we need Docker speedy beginning terminal which will join the Docker tool kit. Thus we need to introduce the Docker tool. 
We can download the Docker tool stash from any site in any case, I would strongly suggest you download the Docker tool compartment from their official site: https://www.docker.com/products/docker-desktop

In the wake of introducing the Docker tool compartment double-tap and open the Docker quickstart terminal. Docker will arrange your default machine with the IP Address: 192.168.99.100 and it will require some investment to design your neighborhood machine just because. Consequently, you need to hold up until the accompanying window shows up. 
While we arrange the Selenium network (without Docker), we likewise need to design the Selenium center point and hubs (programs). 


Like a typical network when we design the Selenium matrix with the Docker we need to introduce the center point and program hubs into our Docker holder and later, we can begin the center and hubs from that Docker compartment. 
Subsequently, the main thing is to introduce the center and hub pictures into the Docker. 
At first, we have to introduce five pictures to run our test utilizing Docker. 

Selenium hub picture 
Selenium node firefox picture 
Selenium node chrome picture 
Selenium node firefox-investigate picture 
Selenium node chrome-investigate picture
After downloading all the images into your container you can check it using the below command.


Start Selenium Hub

In a typical Selenium network (without Docker) the initial step is to begin Selenium center point. To begin Selenium center point from Docker holder, we have an exceptional order which is 

docker run - d - p 4444:4444 – name selenium-hub selenium/hub

docker run command 
When you type and enter that order in your terminal, the Selenium center point will be open from the Docker holder. You can confirm whether Selenium center point has begun or not by checking the accompanying connection in your program: http://192.168.99.100:4444/grid/support 

Start Selenium Nodes 
Selenium hub is begun and next, we have to begin hubs from Docker holder, we have to begin chrome hub and Firefox hub. We have introduced both the hub pictures into our Docker compartment in the establishment procedure. 
Presently, how about we start with both the hubs individually. Likewise, recollect that you can run the same number of nodes as you wish. Here I have utilized two nodes just (chrome node and Firefox node). 

command to run chrome hub from Docker: docker run - d – interface selenium-hub:hub selenium/node chrome 
command to run firefox hub from Docker: docker run - d – interface selenium-hub:hub selenium/node firefox 

In the wake of running Chrome and Firefox node, we have to run Chrome debug hub and Firefox investigate hub also. We run and introduce the chrome debug hub and Firefox investigates hub for showing purposes and toward the finish of this instructional exercise, I will run a test in both the investigate node by utilizing VNC (Virtual Network Computing) watcher. 
Presently, how about we start with both the hubs individually. Likewise, recollect that you can run the same number of nodes as you wish. Here I have utilized two nodes just (chrome node and Firefox node). 

command to run chrome hub from Docker: docker run - d – interface selenium-hub:hub selenium/node chrome 
command to run firefox hub from Docker: docker run - d – interface selenium-hub:hub selenium/node firefox 

In the wake of running Chrome and Firefox node, we have to run Chrome debug hub and Firefox investigate hub also. We run and introduce the chrome debug hub and Firefox investigates hub for showing purposes and toward the finish of this instructional exercise, I will run a test in both the investigate node by utilizing VNC (Virtual Network Computing) watcher. 

In the event that any mistake happens during the establishment or running procedure of pictures, the best activity is to re-introduce and run that specific picture again from Docker. 
We have now finished all the means in the Docker compartment side. Next, we have to concentrate on the Selenium content and VNC watcher for doing our show. 
Right off the bat, we have to distinguish the port quantities of chrome and firefox troubleshoot hubs that are running. Since we require those port numbers for VNC watcher. 
To recognize the port quantities of chrome and Firefox hub, you can type the beneath order in your speedy beginning terminal and you will ready to see all the Docker pictures and the running ports of each picture under the PORTS segment. 

For that we have to follow the means given beneath: 

1) Download VNC watcher from their official website: https://www.realvnc.com/en/connect/download/viewer/ 

2) Run it 

3) Type the center point URL and the port number of each troubleshoot mode as appeared beneath and click on the associate catch 

4) After tapping on the interface button VNC watcher will request a secret phrase. Of course, the secret word for VNC watcher is a mystery, type the secret phrase as mystery and snap Ok and you will have the option to see a window for the chrome program. 

5) Likewise, you need to do likewise for the Firefox program by utilizing a VNC watcher. Open the VNC application on your nearby PC and use Firefox running port number with the center URL and snap the associate catch.

At the point when you have an enormous number of tests, you can utilize the Selenium grid for accelerating your experiment executions. Once in a while, we need to run and test your experiments under various working frameworks and now and again you need to check your experiments under various programs also. We utilize the Selenium grid under such events. 
Now and again arranging the Selenium network may be a significant expense including and tedious procedure as we need numerous machines. Under such cases, the best alternative will be to utilize the Selenium Grid with Docker.



I hope this article helps you to gain some knowledge of Docker. For any query feels free to ask in the comment box.

Author:: HAROON

For more details please visit  MODTECHSTUFF

FOLLOW ME @

      

Comments

  1. Great article. Couldn’t be write much better!

    Keep it up!

    ReplyDelete

Post a Comment

Donate Us to Keep this site Alive! With PayPal

Popular posts from this blog

How to Automate OTP using Appium and Selenium Framework ?

Hello Everyone! Welcome back to another Fresh article of MODTECHST UFF where you Learn Automation testing. In this article, we will talk about Integrating the OTP SMS reading capability with your Selenium - Appium Framework that will surely help you out. There can be three solutions to this problem. Solution 1: Ask your development team to fix the OTP check process to any static value. Solution 2: Ask your development team to provide you an API in which you can pass some parameter in response he can return you the OTP sent against that number.  Solution 3: Design two Appium scripts one is two handle Websites and one is to handle the Android message box, so after sending OTP from the web execute the second script to read a message from the message box. OTP is a 2-factor authentication mechanism that was build to avoid ROBOT / Automation SO you never find the solution direct solution for that. What is Appium? Appium is an open-source structure that permits you to lead automating test...

How to create my own blog| A complete beginner's guide| Updated(May 2020)

Hello Everyone! Welcome back to MODTECHST UFF.  In this blog, we will talk about How to create your own blog and how to earn from the blog. This guide will provide each and every possible detail about blogging. I realize that beginning a blog can appear to be overpowering and scary. This free guide is tied in with blogging for amateurs and will show you how to be a blogger with simply the most essential PC aptitudes. So whether you're a student or professional, you can make your own blog in just 1 hour!!! I am not afraid to concede that when I was first figuring out how to manufacture a blog I committed a huge amount of errors. You can profit by overtime of my experience so you don't repeat these equivalent mix-ups when you make your own blog. I made this free guide with the goal that anybody can figure out how to blog rapidly and without any problem. What's more, on the off chance that you stall out anytime if you don't mind send me a message and I will give a magnific...

Top 5 Automation Testing Tools[2020]

Hello Everyone! Welcome back to another Fresh article of MODTECHST UFF where you Learn Automation testing. In this article, we will talk about Updated Top 5 Automation Testing Tools[2020] that will surely help you out. Quality at speed is the need of great importance in the product development industry. This is the reason associations are hoping to embrace Agile, Continuous Integration (CD), and DevOps techniques to discover arrangements. Test automation is a basic part of these techniques that can empower associations to give quality at speed.  In straightforward terms, automation testing is a procedure of automated test case execution and the creation of test results with no human intercession. It extensively brings down the expense and exertion that is in any case required in manual testing. It limits the possibility of mistakes by limiting excess manual work.  To execute automation testing, associations require the help of a decent automation testing organization...

Ad

Enter your email address:

Delivered by FeedBurner