Introduction to Selenium Test Suite
by Paul Perrin
Immediate Data strongly recommend the provision of a Selenium Test Suite with every site they build, to give you full confidence that your site is up, running, taking orders and taking payment every day. And, if you do get changes made elsewhere you can ensure that nothing else is accidently broken!
Selenium is an open source product that allows scripted testing of web applications. There are a number of ways of running Selenium; it can be run interactively from the desktop, or from the domain (/server) that hosts the web application being tested, or called from bespoke test applications.
Selenium Core
Selenium Core is a javascript application and library that can load test suites and scripts written in its own scripting language and execute them within any JavaScript enabled web browser. Browser ‘cross domain scripting’ security, means that Core must run either as a local application (HTA), or must appear to be from the same internet domain as the application under test (AUT).
Selenium Remote Control
Selenium Remote Control is an add-on to Selenium Core that allows Selenium Core to be controlled by an external application. It consists of a Java broker application that runs on the same machine as Selenium Core, and libraries that allow communication with the broker application from a number of programming languages. Selenium Remote Control controls the launch, execution and tear down of Selenium Core instances. It is understood that up to around 6 simultaneous Selenium Core instances can reasonably be managed on a single machine.
Selenium Grid
Selenium Grid is an add-on to Selenium Remote Control. Selenium Grid is a Java application that sits between the application executing the tests, and Selenium Remote Control instances. Just as Selenium Remote Control manages a number of Selenium Core instances, so Selenium Grid manages a number of Selenium Remote Control instances.
Selenium Grid is called using the same Selenium Remote Control libraries, so is relatively transparent to applications executing tests. Selenium Grid brokers request between the application executing the tests and Selenium Remote Control instances (and so Selenium Core instances).
Amazon Elastic Compute Cloud (EC2)
Selenium grid is available as an Amazon Elastic Compute Cloud image.
Selenium Native Scripting Language (Selenese)
Selenium’s native scripting capability is based on simple HTML tables. A Selenium Test Case is a table consisting of a number of table rows, each containing a command and parameters. A Selenium Test Suite is a table consisting of a number of table rows each containing a link to a Test Case.
Selenium Core includes a user interface for selecting and running Selenese scripts directly.
Selenium IDE (integrated development environment)
Selenium IDE is a plug-in for the Firefox web browser. Selenium IDE allows keystrokes and other user actions to be interactively captured into a Selenium script it also allows scripts to be edited interactively. Selenium IDE also allows natively captured scripts to be converted in to a number of programming languages, suitable for submission through Selenium Remote Control.