Marathon
HomeHome.html
MarathoniteMarathonite.html
CompanyCompany.html
ContactContact.html
Webloghttp://blog.marathontesting.com
 

Marathon is simple, flexible testing tool for exercising Java GUI applications developed using Swing. Marathon consists of a recorder, player and an editor. Marathon scripts are Jython scripts. The whole power of Jython is at the disposable of the testing engineers who automate application functional testing.


Marathon is used mainly for automation of functional tests (also called as acceptance tests, end user tests or customer tests). Marathon itself adds only a few well defined constructs to Jython library. It is conceivable that Marathon can be used to develop tests even before an application is available.

Built for flexibility

Marathon has been designed and developed to be the most flexible Java GUI Testing tool.

Using Jython as the scripting language allows you to inspect and act on almost any aspect of the Java application under test. Use Marathon’s simple scripting elements to access the components available on the current screen. Use the control structures and conditional statements provided by Jython to automate any and all actions of your java application.
 

Simple design

Built by people who are experts and interested in agile methodologies, Marathon embodies the value of simplicity. One of the primary goals of Marathon is the ability to write test cases even before the application under test is built. Marathon, itself, adds only a handful of well defined scripting elements to the Jython library.
 

Cross platform

Marathon supports any platform where a JDK 1.2+ is available. You can optionally choose to fire an appropriate command key code (Command on Mac and Control on Others) even when the script is recorded with Control or Command key depending on the recording platform.
 

Configurable desktop

Use the docking features of Marathon to configure your testing environment the way you want it.

Syntax aware editor

Marathon uses jedit-syntax (an older version of syntax package from JEdit) for editing functionalities. Over and above the regular editing facilities, this package provides color coding of the test cases for easy readability. Ofcourse, the fonts used can be changed in the Marathon preferences.
 

Color coded output pane

All output from the application under test is captured in an dockable output pane. The output is color coded to distinguish between standard error and standard output streams. The output pane can be optionally hidden.
 

Batch running of tests

You can execute Marathon test cases through the UI by using the JUnit panel. Marathon’s JUnit panel displays the tests in a hierarchical view. Options are available to select a set of test cases and execute them as a single test suite or executing individual test cases. A command line option provides the facility to execute the tests as a batch.
 

Integrate testrunner into the build system

With some little effort, Marathon can be integrated into your current build system. Whichever tool you use - ant, maven, cruise control - it is trivial to integrate Marathon into your build system.
 

Test reports

Marathon can create test reports in multiple formats - text, XML or HTML. Provide an option while running tests in batch mode, come back and check the report for errors. From the JUnit panel, select the test report option and Marathon will display a cleanly formatted report in your browser for the test run. Options are available for requesting Marathon to automatically generate screen shots whenever a test case fails. This will aid in diagnosing the problem and also for filing a bug report.

Reusable modules

Marathon supports the concept of Modules, ability to create a library of snippets from the recorded scripts. These snippets can be used while recording new test cases and can be shared across test cases. You can use any Jython function in the snippets (and for that matter in the test scripts).

Creating of testing environment

A reproducible test case requires setting up proper environment. Marathon uses the concept of Fixtures borrowed from the xUnit family. Use fixtures to setup the initial environment for a test (like copying a file, setting up a database etc.). A fixture can be shared among multiple test cases. Marathon provides an easy mechanism for selecting an appropriate fixture when the recording is started.

Support for custom components

You can extend Marathon to support custom components by developing component resolvers. Samples of component resolvers are provided in Marathon source distribution. Use them as a starting point.

DOCUMENTATION

LINKS

Demo SetupDemo_Setup.html
Package DetailsPackage_Details.html
LicenseLicense.html
Support ForumsSupport_Forums.html
HistoryHistory.html
ScreenshotsScreenshots.html

Features

Features
User Guide Marathon_files/MarathonUG.pdf
Developer Guide Marathon_files/MarathonDG.pdf
Jython Tutorial
 (Part - 1)Marathon_files/j-jython1-ltr.pdf
Jython Tutorial
(Part - 2)Marathon_files/j-jython2-ltr.pdf