This plugin turns your Hudson cluster into a Selenium Grid cluster, so that you can utilize your heterogeneous Hudson clusters to carry out Selenium tests. This plugin is a turn-key solution — no additional installation nor configuration is necessary to make it work. The plugin installs Selenium Grid on all the slaves automatically and set up a grid on its own.
Selenium Grid deployment on Hudson cluster
This plugin sets up Selenium Grid in the following way
- On master, Selenium Grid Hub is started on port 4444. This is where all your tests should connect to.
- For each slave, necessary binaries are copied and Selenium RCs are started. The number of RC instances started are the same as the number of executors on the slave.
- RCs and the Selenium Grid Hub are hooked up together.
Modification to Selenium Grid
When you run selenium tests in stand-alone Selenium, you specify the type of the browser in the constructor.
new DefaultSelenium("hudson.mydomain", 4444, "*firefox", 'http:
As Selenium Grid describes here, this continues to work with Selenium Grid, but this doesn't really give you any control over where the test is run. It may run on your Windows slave, your Linux slave, or your Mac slave. Selenium Grid introduces a notion of environments in an attempt to fix this problem, but the design doesn't really scale well when each RC is capable of supporting multiple browsers.
Hudson Selenium Grid extends the browser selector in Selenium in a different way. You can use labels you assigned on your slaves to select slaves that will run the browser. The syntax is "LABEL[&LABEL&...]:BROWSER". For example, suppose if you have labels like "linux", "solaris", "windows", "32bit", and "64bit". The following table shows a few example of what the browser value will mean:
||Pick an available slave randomly, and run IE there. Since there's no guarantee that the randomly selected slave can actually run IE, this way of specifying a browser is unreliable unless all your slaves are Windows.
||Pick an available slave that has the 'windows' label randomly, and run IE. This gives you assurance that IE will be executable
||Run Firefox on a node that has both 'windows' and '32bit' labels
The "BROWSER" portion is passed as-is to the selenium RC. For valid values, see this and this.
Version 1.4 (upcoming)
Version 1.3 (2010 Jan 25)
- Make sure hub was started before launching RCs (issue #5370)
- Supported trustAllSSLCertificates option (issue #5372)
- Upgraded to Selenium Grid 1.0.4
- Upgraded to Selenium Server 1.0.1
- Allow nodes to be excluded from the Grid
- Specify additional Remote Control startup options (-browserSideLog, -log, -debug, -firefoxProfileTemplate)
Version 1.0 (2009/4/26)