- It's built fully in Groovy and takes advantage of DSLs, closures and other syntax sugar, while letting you code in java if you prefer.
- It supports JUnit and TestNG unit testing frameworks
- Instead of relying on xpath to describe the UI, it uses a UI mapping DSL
- Comes with a firefox plugin for generating UI modules called TrUMP
In this simple script we will click around the Tellurium project page. This is the Selenium version:
And now, the same test in Tellurium. Tellurium uses UI modules to describe the UI in a class that is separate from the test. Here is the UI module DSL:
And this is the Tellurium TestNG test case that uses the above module:
As you can see, the code looks very different. You will notice that the Selenium test is much shorter, but does not re-use UI elements like the Tellurium test does. Tellurium's UI mapping maps UI elements to very short element ids, which support hierarchical nesting, which can greatly simplify large tests.
Another big and obvious advantage to UI mapping is that if your underlying html changes, you would only need to modify the UI mapping DSL, and not need to worry about the actual tests. This is where Tellurium really shines for me.
Modifing the UI maps is really simple using the TrUMP Firefox plugin. TrUMP lets you point and click on the page, and builds out the nested UI module DSL for you.
What you will need in order to use Tellurium for your project
- Tellurium 0.5.0 jar from the project downloads page
- Groovy 1.6
- Java 1.5
- TestNG or jUnit
- A read through the Tellurium Tutorial
- Install the Trump firefox plugin
The best place to go to find support is the tellurium user group. Questions are answered very fast, and it is the main reason I was able to integrate Tellurium into my functional testing strategy at work.
Also, the Tellurium team has created two videos to help you get started with the project:
Tellurium Demo Video Part I: Tellurium project and TrUMP IDE
Tellurium Demo Video Part II: Create Tellurium Test cases