Should I learn Docker containers tool to run Selenium test automation. What's the purpose of learning it?
Isn't it enough to run your automation project in Jenkins?
First understand virtualization concepts:
Your code runs on a system.
In the past, we used to buy bare metals for each isolated code. Meaning if you want two servers you buy two servers.
so if a code requires only 1G RAM, but the server you have is 32GB you are wasting remaining 31GB of hardware resource.
To avoid this wastage the hardware virtualization concept came to use, now on the 32 GB server, you can create 32,1GB VMs.
But still another wastage was there, the code may not utilize 100% RAM or CPU all the time . More than 90% of the time only 30% of system resources will be in use.
To avoid this Docker containerization technology was introduced. The containerization creates virtualization in OS level and share the hardware resource so you can use the unutilized system resource.
This ensures your organization can save a fortune by utilizing available resource to its max.
Isn't it enought to run through Jenkins?
Jenkins is just a software that automates CI/CD. It tells what to do where. The "docker","server" or "VM" comes in the where part.
you can decide to run code on the actual physical machine but you will have the above-discussed issues. You will be wasting hardware resource just to run test code
So why to use Docker
You will not just ensure the quality of the system but also ensures you save your organization some money by ensuring system resources are nto wasted
There are a number of uses of Docker from QA perspective in any qa company. Few of them are listed below:
It checks all the boxes:
These changes are common to application and test code. I am not able to come up with a recommendation to use Docker that is specific to test automation only and not applicable to application development in general.
As per this article, For QA, Docker solves the classic problem of ensuring that you test the same application you ship. Because everything the application needs to run is packaged in the container, it can run predictably and consistently across the pipeline, and with different configurations -- no more pesky variables to track down. If a configuration issue is the source of a bug, then the container image in use is the point where it should be addressed.
Docker handles many tasks for organizations, but the key areas where organizations can take the next step in modern software delivery are in the form of microservices.
The benefits of containers add up to support QA’s ability to communicate issues, support the delivery chain further up and downstream, and build in the consistency that testers have always sought to fight the horror of system-level issues.
There is no single way to run QA with container-driven applications. But there is one criterion, and that is automation. Due to the speed of modern development and the increasing number of things to test, test automation is a must.