6

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?

1
  • You ship what you test. Commented Jan 16, 2021 at 10:32

4 Answers 4

3

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

3

There are a number of uses of Docker from QA perspective in any qa company. Few of them are listed below:

  1. It runs faster in comparison to Jenkins or any other tool as the deployments are done in containers. Due to this, you can deploy the identical containers in different portions at the same time which makes it very quick.
  2. It’s quite easy to place frameworks, libraries, artifact versions and all project dependencies in a single container.
  3. If an issue is encountered, you can share their images (here: image is the application, potentially even at the moment in time when a test failed) instead of bug reports. so, that makes it easy to reproduce.
  4. It can be used to catch the system-level bugs and evaluate their root cause as using docker containers the process is easier, because the system configurations are based on the image that was used during deployment.
1
  • How could it be mentioned that it runs faster than jenkins , how do you compare jenkins to container when both are completely different? Other points are true
    – PDHide
    Commented Dec 21, 2020 at 13:50
3

It checks all the boxes:

  • Environments on demand
  • Greater consistency across many users
  • More reproducible and thus reliable environments
  • Greater security options when implemented correctly
  • Less 'it works on this machine but not that one' issues
  • Less cost due to more virtualization and less physical machines to maintain
  • Faster turnaround for changes when they are made to a master image and then distributed

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.

2

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.