Eclipse Zone is brought to you in partnership with:

Joachim Hofer is a long-time senior consultant and lead developer on the Java platform who has recently become a fan of Scala. He regularly contributes to Open Source community projects and shares his experience in his blog and talks. Joachim is a DZone MVB and is not an employee of DZone and has posted 12 posts at DZone. You can read more from them at their website. View Full User Profile

UI Testing with Eclipse Jubula: Preparing the Test Object

  • submit to reddit

Recently, Bredex created an interesting product at the Eclipse Foundation: namely, Jubula, a tool for UI testing Eclipse RCP, SWT, Swing and web applications. Basically, I guess this will become the “community edition” of GUIDancer, which is good enough for me, considering the dire need for any free UI testing tool for RCP, SWT or Swing at all.

I won’t go into comparisons with other tools in this post, but in short, imho, though there may be better tools for web testing, though there may be alternatives for Swing testing, though there may be better commercial tools for testing RCP and SWT, when you’re looking for free tools for testing RCP/SWT, I think you should start with Jubula.

Unfortunately, working with Jubula turns out to be a bit unwieldy at first. – So I’ll try to give a detailed step-by-step guide to your first GUI test automation with Jubula here, using a simple Eclipse RCP sample project as the test object.

So, let’s start with setting up the test object first: Open up Eclipse and create a new plug-in project (File/New/Project…/Plug-in Development/Plug-in Project):New Plug-in Project Wizard, Page 1

Next, tell Eclipse that it’s a rich client application:New Plug-in Project Wizard, Page 2

And finally, choose the “RCP Mail” template:New Plug-in Project Wizard, Page 3

Now, let’s see what we’ve got in our workspace:The Mail RCP project, with warnings!

Hey, wait, what’s that, warnings about raw types? – We can’t tolerate that. I’ll quickly fix these by turning the List into a List<TreeObject>:Fixing the warnings

That was easy. Actually, why do they have these warnings in their sample code at all? – Anyway, what’s next? Right, let’s try if it works:Ok, it runs

Looking good. This should be simple enough for our first steps, yet complex enough to play around a bit. – However, for exporting the application, we’re missing a product configuration (File/New/Product Configuration):Creating a product configuration

Alright, now we’re set for exporting the RCP application as Eclipse product (File/Export…/Eclipse product):Exporting the RCP product

Finally, we’re done with preparing our test object. Or are we?

Actually, we’re not, unfortunately. The reason for this is that sadly, the Eclipse JFace/SWT libraries haven’t got any easy way to access/instrument them for automation on the fly (unlike Swing).

So, Jubula has to somehow hook itself into our RCP application, and we have to help with that: Look for the archive in your Jubula installation directory and extract it into your product directory. This will add a Jubula instrumentation plugin to your product.

However, that’s not all. You’ve still got to activate that plugin, and you can do that by editing the configuration/config.ini file in your product directory. There’s a long line in that file listing the osgi.bundles, and you have to add the Jubula plugin at the end:Configuring the OSGi bundles

Phew. Now we’re really really done with preparing the test object. Of course, for real projects, you’ll probably want to automate all these preparations in your build.

Let’s start up Jubula and do some testing! – Or wait, actually, let’s do that in my next blog post. :)



Published at DZone with permission of Joachim Hofer, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Sirikant Noori replied on Sat, 2012/03/31 - 2:44pm

Thanks for your article!

I have a question. You state “imho, though there may be better tools for web testing”. Although you don’t want to get into comparisons, I wonder what tools you would suggest. Selenium seems to be the most widely used, but I miss parameterized test cases and reuse of test cases in other tests. Do you know of a functional web testing tool that provides these kind of things?


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.