7

I'm using the Robot Framework Maven plugin to execute my Robot Framework scripts. I'm using this plugin because some of my keywords are implemented in Java and packaged inside an external library.

I want to be able to run those scripts in parallel through Maven/Jenkins/Selenium Hub.

I think that the RF plugin Maven "out of the box" does not offer this possibility... unless I'm mistaken.

I also looked at the possibility of using Pabot, but I could not achieve to call Pabot from Maven.

Does anyone have an idea to get to run the tests in parallel?

2 Answers 2

1

You are right that pabot is the way to do this unless you want to hack robot internals, you just have to find a way to have it run outside maven.

I would do this by configuring Jenkins to preserve the artifacts from the maven build and then trigger another job that runs pabot against those artifacts. Another benefit of this approach is that you can easily re-run the tests on the same build without re-triggering the build. If you create your pabot job as parameterized then you could have a selection of builds to test against.

Parallel testing is tricky and you need to be very careful to keep it realistic to your products use cases especially if your motivation here is reducing test run time.

2
  • Can you please explain this in detail? What kind of artifact do I need? Commented Jan 19, 2019 at 10:17
  • 1
    Artifacts are files produced by the build that you want to preserve, typically an executable, test results or debug symbols. If you configure Jenkins to recognise your test run output it will be able to keep track of any test failures
    – Amias
    Commented Jan 19, 2019 at 15:11
0

Can you please specify Robot and Pabot version you are planning to use.

First point: If you read the GitHub readme page, in the "Things you should know", it states:

Pabot will split test execution from suite files and not from individual test level. See more in Pabot ReadMe.

So there is nothing to do on test level, except if you help develop the tool so it becomes possible to launch testcases in parallel.

Second point: Use rebot. You can merge multiple test execution reports by using the command:

rebot --merge output1.xml output2.xml

This will generate only html report. To obtain a merged output.xml file, just add an -o output.xml in the arguments, like this:

rebot -o output.xml --merge output1.xml output2.xml

I find this link helpful for the setup: Parallel Testing With Robot Framework.

since you have asked Jenkins selenium grid setup refer below: Selenium Grid Tutorial: Hub & Node (with Example).

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.