Discovering Automated Site Testing with Selenium

It’s been a few years since I had the urge to find automated testing tools, but my increasing workload has made me realize that with automated testing tools I could hand off some of the post implementation site verification duties my team performs to other parties. The last automated testing tool I used was WebInject, a Perl based scriptable testing tool. While WebInject worked, I found it difficult to configure, and it had difficulties with the complex nature of my company’s web site. Ultimately, time didn’t allow for continued configuration of the tool, and the team abandoned it for a better written Word document with steps used for verification of our various web portals.

Recently, I spoke to some members of my department which are tasked with automated testing, and found out they us a tool by HP, called QTP. Doing some preliminary research, it appears to be pretty powerful, and cost the company a small fortune. Unfortunately, it would take the developers two weeks at the earliest to configure the tool for our test cases. Being the impatient type, I wandered around Google and stumbled across something called Selenium (http://seleniumhq.org), and was immediately taken aback by the ease of use demonstrated in their two minute video. Selenium offers a variety of products, but the Selenium IDE is what caught my eye.

Selenium IDE runs as a Firefox plugin, and runs as a separate application window. Within the application’s window, there is a record function, which will record your interactions with the browser. The base operations, such as clicking on a link and filling in a form are all recorded and displayed in a simple list of commands. More commands can be added to what was recorded to customize web site interactions. and there are quite a number of commands. For the complex nature of my company’s site, I had to put in a few waitForFrameToLoad and waitForTextToAppear commands to have Selenium wait until some iframe pages loaded before attempting to click at options that don’t exist or have it validate for expected page results. All these interactions were done without touching any code, and the IDE gracefully generates test scripts in various languages when done. Overall, I was very impressed with the tool. The only drawback is that the testing is limited to Firefox, and as all good web developers know, you can’t just rely on a single browser and expect universal acceptance. Selenium also offers a product they call Selenium RC (Remote Control); which according to the description will act as a proxy and run test scripts in various browsers. I’ve not had the chance to try RC out, but I’m hoping it will be the solution I need to get my automated testing done, without weeks of development time, or the cost of a luxury sedan.