Search code examples
rubyseleniumcucumberwatirselenium-grid

how do I tell a ruby/cucumber test suite to run in parallel on a selenium grid


Here is the setup:

Local Machine - Hosting the code
Remote Machine - Hosting Jenkins & selenium hub
Remote Machine2 - Running selenium stand-alone in node mode

I have the code setup to hit the hub, and the hub does detect the node, and the code executes on the node just fine. The problem with this is that the tests are still run in serial. How do I setup the code so that each cucumber scenario runs in parallel? (I imagine a queue that when one node opens up that meets the requirement, the next in line gets it) Here is what I currently have

profile = Selenium::WebDriver::Chrome::Profile.new
caps = WebDriver::Remote::Capabilities.new(:browser_name => 'chrome', :profile => profile)

@browser = Watir::Browser.new(:remote, :url => "http://#{ENV['TEST_MACHINE']}/wd/hub", :desired_capabilities => caps)

Solution

  • Take a look at parallel_tests Ruby gem.