1

I have test a suite for 5 different stores (UK,US,FR,IN,PT) of a web application. and there are around 250 test cases. After deployment i need execute the test suite for all these store and it takes around 6 hrs for one store. I have to initiate execution in sequence.

I'm planning to execute them parallel. I have a separate desktop and I've configured Jenkins on that, I tried, triggering 2 job at a time, unfortunately my system get crashed.

Is there any efficient way to do this either using Jenkins or other (I've heard about docker container) ?

1
  • 1
    This depends on what is the test framework you're using. Jenkins cannot run the tests itself. It likely uses some frameworks like TestNg or JUnit. It also matters how you invoke your tests on your build agents. Whether you are using maven or not, etc.
    – Alexey R.
    Jan 28, 2019 at 11:19

2 Answers 2

2

First of all, I am new to the testing environment. My client wants the same solution. He wants to reduce the testing time which is currently 4 hours.

I am in the learning phase. Here is the detail of how I achieved that.

  1. I asked testers to divide the test cases into 5 subsets. It means 5 different pom files & test cases for each.
  2. I used the selenium docker image having chrome and other dependencies installed.
  3. I created a shell script which will pull the code from the branches which are changed recently. This script will run at the starting of the docker container.
  4. I also created docker-compose.yml which will run 5 containers having one test cases each. Test cases directories get mounted inside the container at the time of starting.
  5. When the containers get ready I execute the test cases inside each container as an ENTRYPOINT.
  6. These tasks are integrated into Jenkins and triggered with webhook of my repo.
  7. Finally, after finishing test cases, their reports will be sent via email using email plugin of Jenkins.

I hope this will give you a basic idea. You should know shell scripting for that.

1
  • This won't work if your pipeline , such as with Azure, won't do docker-compose. Maybe there is a way to fork and collect in a bash script?
    – djangofan
    Aug 3, 2021 at 21:02
-1

AFAIK, Jenkins is not the right tool for parallelizing tests and we have TestNG or similar Test Orchestration tools for parallelizing Tests. If you have the machines available locally, you may also try Selenium Grid as an option.

You can group the Test Cases for different stores in separate Test Suites/Classes and run them in parallel using TestNG. However, we would need more information about the organization of your Test Cases(how they are grouped) in order to specify a good approach.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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