tags:

views:

319

answers:

9

I'm looking for a java gui testing tool in which tests can be created by recording my gui actions (buttons pressed, windows closed, etc.)

A scripting mechanism for writing tests is not required.

It could be free or commercial, but cheap and great is better than expensive and great.

My application is a rich-client app written in Java SE 6.

Yoav

+4  A: 

If it's a Swing app you could take a look at Marathon.

R. Kettelerij
Do you any experience with it?
Yoav Schwartz
A: 

I have been impressed with Quick Test Pro. It is pay software from HP, but it has been able to get at some software that most tools can't work with. It has some data features so that tests can be run multiple times with varying data inputs. It is scriptable through VB so most Tester/Developer people will be able to work with it. I have been using it lately to execute tests on many machines for use in performance testing.

A: 

Try QEngine will do the record and play back. Has scripting options also

Rajasankar
A: 

I used Jemmy some years ago. Now I'm mostly doing webapps, so my experience in this field may be somewhat old. :-)

Mnementh
A: 

jameleon is very useful for testing web based applications. It combines a number of frameworks providing great flexability to your approach contained in a single launch framework.

+1  A: 

A scripting mechanism for writing tests is not required.

Yes, it is. Pure capture/replay simply does not work in practice, you always have to edit the resulting scripts. And you often end up spending so much time doing that in an inadequate environment that you save no time over a pure scripting solution tailored for efficient script writing.

Michael Borgwardt
A: 

There is no capture for jameleon I think you may be confusing this with selenium capture and record. Jameleon is a pure scripting framework.

A: 

You also have IBM's Rational Functional Tester:

http://www-01.ibm.com/software/awdtools/tester/functional/

I used an older version to test .NET forms applications (it also works with java apps, windows native apps, web pages). It failed a lot of times, and the integration with .NET was not so great. I don't quite recommend it for that purpose.

However, it is known to work a better with Java apps (RFT itself is made in java, and Java apps were the original target I think), specially in its most recent versions.

It's a very expensive application though. Personally I wouldn't use it again, unless I didn't have another choice.

ptdev
+1  A: 

I concur with Kettelerij, Marathon's the way to go.

  • It's easy to integrate into external systems like Subversion & CruiseControl, becasue all the scripts are human readable (Jython) and not locked into some proprietary format that requires an export (like most of the commercial tools).

  • It is able to record scripts in your choice of Jython or JRuby, which are essentially python and ruby that give you access to Java API. Very easy to understand.

  • For advanced testers, you are able to identify which GUI component you want to select using not just their names, but instead a a unique subset of their properties, for example

    click('{Text: OK Enabled: true}')

... finds a component whose getText() is "OK" and isEnabled() is "true". This makes the scripts highly dynamic and easier to maintain.

bojangle