DrupalCon Prague 2013: SELENIUM/WEBDRIVER: WHAT, WHERE, WHY AND HOW

Selenium has been talked about in the Drupal circles for sometime now. It offers great promise in that it is a way to ensure all features of a site work across browsers and a way to hedge against regressions.

OVERVIEW

Like any great powerful tool though, sometimes it helps to know "Where do I start?" and "How are others using it?". At The Economist, we use Selenium in our Continuous Integration environment. We have had our fair share ( more than I would like to admit :) ) of headaches with Selenium. I personally have worked with Selenium in both PHP and Java environments. I also used Selenium against Drupal sites and websites in general, so I hope to cover this topic not only specifically from a PHP/Drupal perspective, but also from a general framework and programming perspective also.

Further, although I hope to cover Selenium mostly in this talk, some of the talk, for example scaling out your testing environment, can be applied to your testing framework of choice ( e.g. Windmill, etc. ).

WHAT WILL WE LEARN/COVER?

What is and is NOT Selenium?
What is Webdriver and should I use it?
Making an API to help your Selenium framework ( e.g. testdata module )
Why are my tests unstable ( how to write better Selenium tests, patterns, Page Objects, etc. )
Great, I have tests, but I have hundreds of them and it takes 2+ hours to run, how do I scale? ( Selenium Grid, and creating a webapp copy/cloud servers )
What are some 3rd party sites and tools to help me?
If time permits, we may go over migrating from SeleniumRC to Webdriver
TARGET AUDIENCE

I hope to start basic, but I will go into some advanced topics such as Virtual Servers ( Xen/VMWare), VM tasks such as snapshots-backups, Puppet [briefly], Selenium Grid, and fully integrating into a CI. One should have knowledge of a CI and perhaps have worked in one and one should have a basic understanding of Selenium and Selenium Grid. I will try and briefly summarize each tool however during the talk.

Drupal is a registered trademark of Dries Buytaert.