It gives us pleasure to announce the public availability of Marathon
3.0. This is a major release. Marathon 3.0 at this time supports
only JRuby scripting.
Major functionality available with Marathon 3.0 are:
1. Data driven testing
This is a major one. Marathon 3.0 supports data driven testing by
reading data from a CSV file and each of the tests will be executed in their
own VM. For those cases, where we need to run a loop by reading data from
CSV files, that is also be supported.
2. Naming Strategy with support for ObjectMap
One problem with Marathon 2.0 is that the objects are identified by
their names that are generated by Marathon runtime. There is no mapping
between the names and the object properties. We are experimenting with a new
naming strategy that saves the Object Property - Name map. The map is saved
in a text file (mostly we shall use YAML for this purpose - I am biased
against XML) and can be edited when the application changes without changing
3. New editor control and better UI ;-)
We are switching from JEdit's StandAloneTextArea to RSyntaxTextArea.
RSyntaxTextArea is lightweight and provides most of the functionality we
need (like gutter icons, highlighting etc.)
Currently parts of Marathon are GPLed (basically for using JEdit's text
control) and other parts of LGPLed. We shall be moving to a single license
across - mostly Apache license.
You can download the user guide in PDF or read it online at http://www.marathontesting.com.
Marathon is a testing framework for GUI applications developed using
Java/Swing. Marathon composes of recorder, player, debugger and an
editor. The test scripts are composed of python or ruby code that can
be selected at the project creation time.
Marathon focuses on end-user testing. One need not know Java or Swing
to record test scripts using Marathon. Marathon is kept intentionally
simple. The aim to produce test scripts that are readable by everyone
on the project. This includes the developers, testers and the
Marathon is flexible and provides facilities to extend the
functionality available through python/ruby scripting or through
writing ones own component resolvers.
Log in to post a comment.