Watir Day, WatirGrid and the GRIDinit.iative!

The last few days have been busy for me as I had the privilege to present WatirGrid at the Watirday conference in San Francisco. You can catch the slide deck here in case you couldn’t make it. WatirGrid lets you test Watir in parallel, why not give it a shot yourself?

<sudo> gem install watirgrid

I’m also attending the Selenium Conference which is giving me lots of great ideas and inspiration in the performance & automation space. It’s great to see a greater shift to open source testing tools and some may argue that QTP and the like perhaps could die a graceful death. It’s also been fun meeting the god-father of Selenium and confirming that his choice of product-name really was intended as an antidote to Mercury!

Recently I decided to lighten the load with my commercial contract work and contribute / commit more to the open source space. Part of that effort involves further strengthening and stabilising the WatirGrid project, which I’ll definitely keep open source. I’d also like to get more into watir-webdriver as I see this as the future for the Watir project.

The other part (half?) of my time involves getting my own startup GRIDinit.com up and running. The GRID is a commercial implementation of WatirGrid, which simplifies management of a GRID network across different cloud providers. Basically it’s a RESTful API for WatirGrid. I’m presently running a private alpha on EC2 with 50 instances but I hope to open the doors for a public beta with both International (US, EU, Tokyo and Singapore) and Domestic (Australia) cloud providers in May/June! If you’d like to participate send an email to support@gridinit.com

Having a commercial implementation will help pay the bills and let me channel necessary improvements back into WatirGrid itself. If you’re keen you can keep track of the pre-release gems via:

<sudo> gem install watirgrid --pre

A recent improvement is the addition of a GRID control method, to take the somewhat confusing (for first timers) Thread calls out of the picture. For example:

1. Start a controller (from a command line)


2. Start your providers (from a command line) on remote machines (typically same LAN as the controller). It supports all major browsers/platforms including webdriver. I hope to add Opera soon as well.

provider -b webdriver|safari|ie|firefox

3. Control your GRID from your code (the pre-release let’s us contact our controller direct via the controller_uri, no need to broadcast via UDP anymore)

  :controller_uri => 'druby://'}) do |browser, id|
  3.times do |iteration| # because we love to iterate right!?
    browser.goto "http://your.awesome.test.environment"
    sleep 2
DRb server started on : druby://
Controller found on   : druby://
Found 2 tuples.
Grid size                         : 2
Grid rampup                       : 0.5 secs
Browser 1#2171119800 start         : Tue Apr 05 01:39:03 -0700 2011
Browser 1#2171119800 architecture  : universal-darwin10.0
Browser 1#2171119800 type          : webdriver
Browser 1#2171119800 hostname      : air.local
Browser 2#2172047580 start         : Tue Apr 05 01:39:04 -0700 2011
Browser 2#2172047580 architecture  : universal-darwin10.0
Browser 2#2172047580 type          : webdriver
Browser 2#2172047580 hostname      : air.local
Browser 1#2171119800 stop          : Tue Apr 05 01:39:18 -0700 2011
Browser 1#2171119800 elapsed       : 15 secs
Browser 2#2172047580 stop          : Tue Apr 05 01:39:20 -0700 2011
Browser 2#2172047580 elapsed       : 16 secs

In other words, I’ll be abstracting a lot of the WatirGrid’isms and making it easier for you to wrap in your own test frameworks be they rspec, cukes, plain old ruby or whatever. This is my philosophy when designing GRIDinit. I won’t be dictating how you should run your tests or what you should monitor, I’ll leave that to your control with as few lines as possible required from GRIDinit. Good times ahead!

Still a couple more days left at Selenium Conference, so if you’d like to catch up send us a hoy on Twitter @90kts.