Just for anyone who stumbles across this question.
The solution I have integrated into my environment is the following, and its quite easy.
I have used the Build Flow plugin to create a Build Flow job.
I have created 3 Maven style jobs, each job pointing to a different XML file which contain different test classes.
In the Build Flow job I was able to add in the following code to make the 3 Maven jobs run parallel.
parallel (
// job 1, 2 and 3 will be scheduled in parallel.
{ build("job1") },
{ build("job2") },
{ build("job3") }
)
What this basically does is when you run the Build Flow job it will then initiate the job1, job2 and job3 to run and run parallel.
One problem I encountered with this was it would only run 2 jobs parallel and for the 3rd to run it would have to wait for one of the others to finish.
I found out that my Jenkins had only 2 executors specified ( I dunno if this is the started specification in Jenkins).
This basically meant that I could only run 2 jobs at a time as there was only 2 job executors.
To solve this go to Manage Jenkins > Configure System > # of executors
Here you can specify the number of executors. I changed mine to 5 so if I wanted I could have up to 5 jobs running parallel.
That is it, its quite easy to implement. What I found useful also about this method is that it gives you more control over everything that is going on since its a hierarchical structure. It enables you to have control over each stage of the test process. And also enables you to isolate problems for trouble shooting.