Is there a way to run parallel test suites for the robot platform?

I have 5 test suites that are independent of each other. I have to run it in the same environment. Most of my test suites consist of API calls. Tests inside the apartment must be performed sequentially, as they depend on each other.

Is it possible to somehow run all test packages in parallel using the pybot command?

+7
python testing robotframework
source share
4 answers

There is no built-in processing of parallel test executions in the Robot Framework. There is Pabot, a parallel performer for the Russian Federation . Pabot allows you to distribute the test suite and compiles a combined report and log.

+9
source share

We also at Workshare made our decision on this issue (at a time when we did not know about Mikko's work), and we recently opened it received it. Now this is the production level, because we use it to run our tests in parallel on our CI (jenkins). It can generate a complete final report, it can run failed tests again, it has a global install / break mechanism, it generates xunit result files for compatibility, and also works on Windows :) (although Linux is the best option!)

You will find it at: https://github.com/workshare/parallel_pybot

+3
source share

When the tests are completely autonomous and can run completely in parallel, I had some success by simply executing a script that iterates over all the IP addresses of the units on which I would like to run the test in parallel and then calling the test with that IP address as an argument . I also say that it only creates output.xml files, naming them based on the host name or IP address, and then the script performs post-processing using a repot, which creates an aggregated report with all units.

0
source share

A simple solution is to use Jekins:

  • You can install Jeknins with the robotframework plugin. You may have two jobs running in parallel by default without a slave node.
  • Or you have several subordinate nodes, and then use the tag in the robot and the node label to distribute the job.

Just set the parameter in the Jenkins job creation section, for example:

  • pybot - enable tag1 test.robot for job1
  • then set pybot -include tag2 test.robot for job2.

Then start the uplink job. You will run them in parallel.

But still, you need to make sure that the file you are connecting is locked by one of the test tasks.

0
source share

All Articles