Fork me on GitHub

Xebium

Combine the power of Selenium and FitNesse and get more out of both!

Integration testing becomes easier and more fun with Xebium. Selenium is a great tool for regression testing, and FitNesse is great for maintainable acceptance testing. Combining them gives you the ease of FitNesse and the power of Selenium, in a non-intrusive way: record your Selenium tests with the SeleniumIDE like you're used to, translate them automatically and run them from FitNesse!

You can also clone the project with Git by running:

$ git clone git://github.com/xebia/Xebium
Xebium

SeleniumIDE table

Two way translation

With use of the Xebium Format a script recorded in Selenium IDE is automatically translated into wiki syntax and can be pasted into FitNesse. And reverse: Wiki syntax can be copied back to Selenium IDE and can run as a selenium script. Very useful for debugging

SeleniumIDE source

Power of FitNesse

You can execute any custom build fixture code around the execution of the selenium test and use the default Setup and Teardown mechanism. This is great for bringing the system under test into the right state, setting up pre-conditions and cleaning up before running a test.

Improved maintainability

Because the tests are part of the FitNesse wiki you can create pages and test suites. These can be grouped in a tree structure, just like normal FitNesse tests. With FitNesse scenario table fixtures you can easily reduce duplication by making reusable components. Finally the documentation can be added right with the tests in the wiki. All this makes the tests much more maintainable.

Data driven testing

FitNesse's variable substitution makes tests less dependent on hard-coded values.
Use scenario tables to out-of-the-box create new methods enabling data-driven testing.

Reduced development costs

Xebium empowers you to use FitNesse without any development support, no coding is required to get you started.

Installation

The Xebium setup can be roughly divided into two separate parts:

  1. Checking out and installing FitNesse and the Xebium project
  2. Setting up Firefox and the Selenium IDE plug-in with the Xebium formatter

[IMPORTANT]
Please be aware that Xebium has fixed dependencies on specific versions of Selenium and FitNesse. The current stable version Xebium 0.10 depends on Selenium 2.29.0 which functions with Firefox versions upto 18.0.x.
In the meantime development on Xebium continues, which leads to new features and broader browser (version) support. Be aware; using these newer development versions might introduce unexpected behavior and stability issues.

Step 1: Checking out and installing FitNesse and the Xebium Project

Step 2: Setting up Firefox and Selenium IDE with the Xebium formatter

Getting Started

The Following sections describe how to create a new test page in FitNesse and how to record and add a simple Selenium script.

Be aware that using the record-&-play functionality from Selenium does not always result in very reliable tests, use the recorded scripts as the basis for your test but keep in mind that these scripts often need adjustments in order to make them reliable and robust

In the ExampleSuite of the Xebium project many ways are shown how to improve your tests; FitNesse Scenario Tables allow you to create readable and reusable components from your recorded scripts. With XPath and CSS you can improve object recognition.

Create a Test in FitNesse

Recording a Selenium IDE Script

Connect it all together

Further reading

There is a Xebium support group on Google Xebium User Forum

You can find out more about Xebium on the Xebia blog site

  1. Introduction to Xebium
  2. Get your webtests in FitNesse with Xebium

Find out how to correctly setup your environment to run against IE, Chrome and Safari Setting Up IE, Chrome and Safari drivers

Xebium is a powerful instrument, but please don't take test automation lightly! The following blog by Gojko Adzic might give you some helpful guidelines: UI Testing Explained

Authors

Xebium is written by a group of passionate java developers from Xebia in the Xebia App incubator project

Screencast

A screencast will come soon...

disclaimer:

The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement of third party rights. In no event shall the copyright holder or holders included in this notice be liable for any claim, or any special indirect or consequential damages, or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of this software.