Selenium/Webdriver: What, where, why and how
Click here to watch 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.
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
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.