Parallelizing Cucumber BDD test on multiple machines using Gems or Jenkins (or both) Parallelizing Cucumber BDD test on multiple machines using Gems or Jenkins (or both) jenkins jenkins

Parallelizing Cucumber BDD test on multiple machines using Gems or Jenkins (or both)


Jenkins is only a part of the solution. You can use parallel_tests to run multiple cukes concurrently (as long as your Jenkins server is not running on Windows) but you still need more.

You will need to setup a grid of servers to handle the watir tests. I strongly suggest you look at Selenium Grid 2 (http://code.google.com/p/selenium/wiki/Grid2). Setup nodes on your remote VMs and start the hub on your Jenkins server. Then parallel_tests can run the tests in parallel having them connect to the local hub which will in turn send them out to the remote servers for execution.

One note - In order for this to work well you need to have a good test data management strategy in place. Each tests needs to be able to run independently. In addition, they should each be responsible for setting up the necessary data for the test to run and then clean up that data after the test executes.


I use Jenkins to split jobs to various slave machines. When not requiring parallel tests, this also allows testing of different environments by different users (testers testing, developers troubleshooting, etc). Very easy to set up!


You can parallelize by distributing your tests into different tags, then running a different tag set on each test machine.

require 'rubygems'  require 'cucumber'  require 'cucumber/rake/task'  Cucumber::Rake::Task.new( :features) do |t|    t.cucumber_opts = "features --tags @testset_1 "end