Selenium Grid adoption is accelerating and I am excited to announce a new release! Based on your helpful user feedback, I fixed a few bugs, improved documentation, provided better examples and ensured seamless integration with the upcoming release of Selenium Remote Control.
Main highlights for this 1.0 release include:
Amazon EC2 Integration and Automation
Selenium Grid now comes with out-of-the-box support for EC2. There is an official EC2 image which bundles all the tools you need to establish a Selenium Grid cluster on Amazon Elastic Compute Cloud (including a VNC server). Selenium Grid 1.0 also comes with Capistrano tasks to automate deployment and management of the Selenium Grid on EC2 (in the examples/ec2 directory). Check out the Selenium Grid Website for more details on the EC2 instrumentation and how to run Selenium Grid Demo on EC2.
A new example demonstrating how to run in parallel Selenium tests written in Ruby (RSpec)
See the examples/rspec directory. The current solution (spawning multiple processes) is basic but works great and is used daily on professional projects. The plan is to evolve the current solution to an actual RSpec test runner based on Rinda/DRb, Memcache or a flavor a MapReduce. Of course contributions are welcome. Make sure that you also have a look in the reports directory after running the tests: You will see some nice test reports including screenshots of the application under test. The screenshot formatter used in Selenium Grid Ruby example is based on Spec::UI code by Aslak, just tweaked a little bit to make it work with RSpec 1.1.3.
TestNG provides the best and the more scalable solution to run tests in parallel for Selenium tests written in Java. The demo now demonstrates best practices in the field. Feel free to use it as a starting point when instrumenting your Selenium test suite for Selenium Grid.
Additional parameters can be passed to Selenium remote controls at startup
Just set the seleniumArgs Java property when launching the remote control. For instance, to start a remote control in multi window and debug mode you would use:
ant -DseleniumArgs="-multiWindow -debug" launch-remote-control
Selenium Grid now works with 0.9.3 Remote Controls
Just replace the lib/selenium-server-0.9.2.jar library packaged in Selenium Grid distribution with a 0.9.3 snapshot of Selenium Remote Control if you want to try it out. Selenium Remote Control 0.9.3 branch changed the way the session IDs are set and is now using GUIDs.
Better handling of massive text field values
Selenium Grid was choking when testing fields with big chunks of text. Selenium Grid now uses HTTP POST to relay Selenese commands to the remote controls and everything works like a charm.
Support for web pages including international characters
Selenium Grid was also misbehaving for web pages with international characters. Not anymore! Selenium Grid now speaks whatever language you speak. Since Selenium Remote Control does not explicitly set the charset in HTTP request headers, we changed our HttpClient wrapper to assume UTF-8.
Thanks to Vinay Tota, Maria Elisa Sanchez, Sam Chen, Miles, Shiang Luong, Daniel Stironek, Adrian Gan, Mattias, Sem Adou, Joel and David Burns for reporting bugs, suggesting interesting new features or helping me improve the documentation in the Selenium Grid Forums. Thank you also to Clint Bishop who helped convert some test to JRuby, and to Patrick Lightbody who is always here to help me with OpenQA infrastructure.