Abbot framework for automated testing of Java GUI
components and programs
All materials Copyright © 2002-2011 Timothy
Wall, All Rights Reserved
This version 1.2.0
If you haven't done so yet, download the abbot package [tgz] [zip] (which includes source). Simply unpack and
refer to the Quick Start information below.
the script editor.
java -jar lib/costello.jar
NOTE: Under some 1.3 VMs
using X11, the splash screen may trigger a VM bug. If this is the case, invoke
-cp lib/costello.jar abbot.editor.ScriptEditor" instead.
Create a new script.
Select File->New Script from the menu bar to get a new script with
default launch and terminate steps (you will first
be prompted for a file to save it in). Launch defines a class and
method to invoke to launch your GUI. Terminate disposes of all
GUI components generated by the launch step.
Launch the GUI.
Edit the launch line to launch some sample code. For example, to invoke the
method in class
with no arguments, you would edit the launch step to look like this:
In the interest of keeping scripts self-contained,
it is recommended that you specify the classpath in the script rather than
depending on the VM classpath argument or the environment classpath. See the Launch step for usage details. Now
you can use Test->Launch to display the GUI under test. The example
code will display a frame with a variety of sample components.
Record some user actions.
Select Capture->All Actions (or
shift+F2), and perform some user
actions in the GUI. If you haven't already launched the GUI, the editor will
launch it for you. The editor will detect as many high-level semantic events as
it can and insert raw mouse motion and button events for what it doesn't
recognize. When you get the GUI to a point that you want to make some tests of
its state, press
or activate the editor window to suspend recording. The recording so far will
be inserted into the script as a sequence of steps.
Add some assertions.
Move the mouse over the component in your GUI for which you'd like to add a
test and press
That component will be selected in the component browser tree in the bottom
half of the script editor. The hierarchy view presents the full hierarchy of
components that have been created. Once you've selected a component, its
associated properties will appear in the pane to the right. Select a property
("Text" on a JButton, for instance), then click the Assert equals
button to insert an assertion into the test. Repeat as necessary for other
components, or press
to continue recording actions. Note that if a component you'd like to test is
within a modal dialog, you'll need to explicitly add a reference with
and add the assertion after the dialog has been dismissed.
Run the script.
The script editor also allows you to run the script, recording any test
failures or errors. Each step will be highlighted as it is played back, with
failures and errors highlighed in red.
you've generated several tests and want to incorporate them into a JUnit suite,
you will want to derive from ScriptFixture to
provide a custom ScriptTestSuite
which will identify which scripts belong in the suite. ScriptFixture is a
simple JUnit test case wrapper around an Abbot test script. The only thing you
really need to do is return an inner ScriptTestSuite instance in the static
See the Costello user's guide for more