Hello,
The problem of Robot Framework (RF) test execution distribution to multiple RF runs seems to come up in many places.
We have been discussing with the RF core team that it would be great to have a generic solution or at least a cookbook style guide for distributing test execution.
At this point I would be interested in hearing about existing solutions - How you have distributed your test execution and what kind of challenges did you encounter?
There are several things to consider and I'm more or less sure that there isn't an optimal solution that would suite all the situations.
Here are some notes about the problem (comments are welcome):
Situations that should be considered and most likely have there own specific problems:
1. multiple machines and all executions having there own system under test
- how to communicate with other machines? .. many solutions exists
2. multiple machines and only one shared system under test
- how to control that tests that can affect each other are not executed at the same time? -- or how to modify these tests so that they won't affect each other..
3. one machine but tests are executed in multiple pybot processes and all executions having there own system under test
- where are the limits of the machine and how to control that parallelisation doesn't make things go even slower?
4. one machine but tests are executed in multiple pybot processes and only one shared system under test
..
The basic process:
1. Test execution is started from a CI-server
2. Tests/Suites are distributed between worker nodes (this needs some kind of a load balancer so that distribution is done evenly)
3. Worker nodes run the tests
4. Outputs from worker nodes are gathered to common place
5. rebot generates logs and reports from the outputs and they are published
6. CI execution passes / fails based on the result of this execution