HomeHome
MarathonMarathon
MarathoniteMarathonite
CompanyCompany
ContactContact
WeblogWeblog
 

All things Marathon, Marathonite, Java and GUI Test automation, scripting and whatever is useful for test automation projects.

CATEGORIES

BOOKMARKS

They say a picture is worth 1000 words. What about a moving picture?

We are planning to post screencasts that demonstrate various aspects of Marathon. As part of the series, the first screencast is up on YouTube.

Creating A Project

This screencast walks you through creating a Marathon project.

We hope you enjoy it. You can discuss the screencast on marathon-testing group.

Marathon 2.0b4 Release

January 7th, 2009

At last, Marathon 2.0b4 is released today. There are extensive changes in this release. The ChangeLog is quite long - you can find it at sourceforge.

Now Marathon supports some additional features:

  1. You can create semi automatic test cases, by inserting checklists into the test scripts.
  2. There is an exploratory test mode. This mode is similar to recording, except that you can insert and fill the checklists at the same time.
  3. New assertion window. When the mouse/key trigger is pressed, the component is highlighted. While the window is open, you can click on different components and insert assertions.
  4. While we are at the assertion window, you can also insert a wait. The wait_p works just like assert_p, but waits for the value of the property to change to the expected value. This should make usage of sleep pretty rare indeed.

But the major changes are actually internal.

  1. Using dispatch thread to invoke the operations on components.
  2. Dependence on jaccess has been reduced. In a later version, I hope to remove the total dependency.
  3. Marathon doesn’t override the EventQueue any more. We use AWTEventListener to listen to mouse/keyboard triggers.

The bundled versions of JRuby and Jython are 1.5 and 2.2.1 respectively. If you want to use a different version, you can set the home directory in the project settings.

The command line invocation format changed. I hope the new one is simpler and straight forward. Use marathon -help to look at the options.

Thanks Santhosh for patiently testing this version over the last two weeks. He has been using jgnash as the test application.

Lastly, the users guide has been updated, though not as extensively as I hoped. Still, tomorrow is always there for the updates.

Post your feedback to marathontesting google group.

Marathon and JavaFX

January 5th, 2009

This came somewhat as an anti-climax.

Suitably impressed (and also inspired) by Using FEST-Swing to discover (via testing) what’s under the hood of JavaFX - I decided to give JavaFX a try with Marathon. This is the way I went about it:


Read the rest of this entry »

Posted in Marathon | No Comments »

Working on assert_content implementation for JRuby. And straight-away headed into a road block. The call to assert_content looks like this:

assert_content('component', [['R1C1', 'R1C2', 'R1C3'], ['R2C1', 'R2C2', 'R2C3']])

This function from ruby should call a java function:

assertContent(String componentName, String[][] content);

Now it is easy enough in JRuby to convert an array of strings to java array of strings:

['hello'].to_java :String #=> String[]

But converting a array of array of strings is not that straight forward. After a bit of hacking, I found this way.

[['r1c1', 'r1c2'], ['r2c1', 'r2c2']].to_java([].to_java(:String).class) #=> String[][]

Is there any better way of doing this?

This post is about two features that are yet to be released for Marathon. We are working on these features and hope to release soon. I am publishing these details in the hope of getting feedback.

Checklists

Checklists are everywhere. The GTD crowd lives by them. A checklist is a tool in testers arsenal when used well makes mundane tasks easy to handle, complex tasks more structured and overall provides systematic way of handling testing.

Read the rest of this entry »

Posted in Marathon | No Comments »