From Apache OpenOffice Wiki
< VCLTesttool
Revision as of 12:14, 10 October 2012 by Hdu (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This page is archived for historical reasons only. It is no longer maintained and information may not be current.

[[{{{PrevPage}}}|< Previous Page


Next Page >

Tool for Automated Testing of

About the TestTool

The TestTool is a program that is used for the automated testing of The TestTool communicates with the TCP/IP-Interface of and can test each installation of on a PC. The current TestTool can be used on 3.0 and higher. However, as there can be some incompatible changes in future builds you may need to use a newer version of the TestTool.

The TestTool communicates with using SlotIDs, UniqueIDs, and HelpIDs that are associated with each menu item, window, dialog, and window or dialog control in The IDs are automatically generated during the build-process or are assigned by developers.

SlotIDs: Each menu item has a SlotID that is used, for example, to open a dialog or perform an action.
HelpIDs: Each control, window, or dialog automatically receives a HelpID for the internal Help-System. The TestTool uses HelpIDs to identify specific controls, windows, or dialogs.
UniqueIDs: A developer can assign a UniqueID to a control that does not have a HelpID so that the TestTool can identify the control.

You can create test scripts for the TestTool in the programing language StarBasic (like VisualBasic). Several commands are available for the TestTool, for example, to get or put information into controls. For a complete list of the available commands, see: Internal Commands, Methods and Functions for TestTool.You can simulate most mouse or keyboard actions with the TestTool as well as gather information from controls or change the default settings in In other words, the TestTool lets you simulate an user.

Location of the TestTool

The TestTool Environment can be checked out via Mercurial on, and will be found in the directory: testautomation; Or it is available as a seperate package at:

The TestTool application is available at ; On other platforms in the installation set (see setup). Just use the binary from the .../{officepath}/program-directory. Start the program testtool.bin respectively testtool.exe. Just for Mac OS X: Copy the script soffice to testtool and run it.

Installing the TestTool

To install the TestTool, extract the contents of the downloaded TestTool archive to your local disk. If more than one user will use the TestTool, copy the contents of the extracted archive to a network drive.

When you run the TestTool executable file, the testtool.ini and .testtoolrc control files are created on Win32 and UNIX, respectively.

If you place a TestTool control file in the directory that contains the TestTool executable file, the control file is automatically copied to the profile directory on Win32, and the user's home directory on UNIX.

Linux only: If you get a message similar to "Couldn't bootstrap uno servicemanager for reason : Couldn't create registry file for writing", ensure that you are using 'nfslock'. For example, on Linux run /etc/init.d/nfslock status. If it is not running, switch to root and run '/etc/init.d/nfslock start' and 'chkconfig nfslock on'. This is necessary for the TurboLinux and the SuSe 8.1 Linux distributions.

Setting up the TestTool

Choose Extra - Settings - Profile.

  1. Profile: Enter a name for your profile.
  2. Log base directory: Enter the path where you want to save the test results.For example: /opt/qa/qatesttool/errorlog/mymachine or d:\qa\qatesttool\errorlog\mymachine
  3. Base directory: Enter the root path for the TestTool Environment (without a slash at the end!)For example: /opt/qa/qatesttool or d:\qa\qatesttool
  4. Default HID directory: Mark the checkbox.

If you want, you can also edit these settings in the .testtoolrc / testtool.ini files.







Automated Crashreports

Choose Extra - Settings - Crashreport.

  1. Use Proxy: Check if you need to use a proxy to access the internet.
  2. Host: Address of the proy.For example:
  3. Port: Enter the port number of the proxy.For example: 8080
  4. Allow Contact: Mark the checkbox if you want to get an Email regarding your crashreport.
  5. Email: Your Email address.For example:

If you want, you can also edit these settings in the .testtoolrc / testtool.ini files.

Selecting the Installation

There are two choices:

Choose Extra - Settings - Misc.

  1. OOo Program Dir: Select the installation to test.For example: /Volumes/

If you want, you can also edit these settings in the .testtoolrc / testtool.ini files.





TestTool Editor

The TestTool uses syntax highlighting for all BASIC, StarBasic, and internal TestTool commands (For more information, see: Internal Commands, Methods and Functions for TestTool). Highlighting can increase the load time for large files.

Starting a TestTool Script

Start local installations using the TestTool command line parameter -enableautomation. In the TestTool Environment, executable scripts use the *.bas extension. To run a script, load a *.bas-file, and then run the script from the menu or with a shortcut.

Tt run.jpg
F5 Start
Starts the script, opens a new or old result file, and inserts the result of the test in the file.

F8 Single stepping

Runs the script by single steps.

F10 Single step over procedures

Runs the script one sub routine at a time.

F9 Set / Select a break point

Creates a breakpoint (red circle) in the script on the blue border on the left side.
Shift+F5 Cancel
Cancels a running script.

Ctrl+F5 Interrupt

Interrupts a running script.

Shift+F8 Next Error

Jumps to the next error after a syntax error in a script.

Shift+F7 Previous Error

Jumps to the previous error in a script.

Result File

The TestTool automatically saves a result file during a test script is run. The name of the result file is the name of the script *.bas-file that generated the result, but with the *.res extension (For example: first.bas - first.res). To set the path for saving the result file, choose Extra - Settings - Profile and enter the path in the Log Base directory box.

If a result file already exists, the file is opened and the new result is added at the beginning of the file.

The results are presented as a hierarchical tree list where you can click plus sign (+) or minus sign (-) to expand or collapse the outputs.

Tt result.png

  • The first output is Reading the files. Expand this entry to see the declaration files. If the entry is orange, the declaration files (*.win / *.sid) contain errors. The sum of the errors is displayed at the end of a test as Warnings occurred during initialization.
  • The next output is a short entry that is generated automatically by the start up routines. The entry displays information about the TestTool version, the paths where is installed, and where the application was started. The office- and the system language is also displayed.
  • Each entry that has a [+] in front of it is a testcase. If the testcase entry is a color other than black, the test contains errors.
  • An orange testcase indicates that one or more warnings are present. To see where the error occurred, expand the entry and examine the warnlogs, which are the outputs from the developer of the test script. To jump directly to the place in the test script where a warning occurred, double-click the warning.
  • A light green testcase indicates a QAErrorLog entry that was inserted by the developer of the testcase to give the tester some information (for example, about an existing bug or workaround)
  • A light blue testcase indicates an Assertion that gives selectable informatoins when testing a debug build of
  • A red testcase indicates that one or more errors are present. The tree is expanded to display the error(s). In the example result file, the error occurred when the TestTool did not find the slot. That is because there is a typo in it ‚Äì it should be ToolsOptions.
  • When you expand a red entry by clicking the plus sign (+) in front of the entry, a level by level (sub main - testcase ... - subroutine ... - .....) view of the error is displayed. You can also see what the TestTool did to return to a defined base state so that the TestTool can run the next testcase without any open windows or dialogs.For example:
    • the WORKINGWINDOW "Untitled2 - Writer" is closed (geschlossen = closed)
    • Explanation:
    • the working document is closed
    • The TestTool then started the next testcase at the base state of (that is, with one open document and no open dialog).
  • At the end of a test, the number of errors and warnings is displayed

Starting a Test Script From the Command Line

To start a test-script from the command line, use the following syntax:

testtool.exe [/port=xxx /host=xxx] startprogram /run [/result xxx] [/printlog]
The com port on the machine that the TestTool uses to communicate with If you do not include this parameter, the TestTool looks for relevant information in the .testtoolrc or testtool.ini files.
The hostname of the machine that contains the installation that you want to test. If the installation is on the same machine as the TestTool, enter localhost. If you do not include this parameter, the TestTool looks for relevant information in the .testtoolrc or testtool.ini files.(only localhost is supported)
The *.bas-file that contains the main-routine.
Runs the test script, writes the result to the result file, and exits the TestTool at the end of the test.
Limits the number of testruns to xxx excluding the current one in the resultfile (0,1,2,...). The action gets executed on running the testcase.
write the information written to logs on stdout ***** UNIX only ! *****
Example: testtool.exe /port=12481 /host=localhost /opt/qatesttool/writer/update/w_update.bas /run
The TestTool runs the w_update.bas-test on the local machine through port 12481, and exits the TestTool when the test is done.

Run a Batch with Testcases

There are examples for Win32 and Unix at

Testing a Non-Product Version

  • Define the files where you want to store the debug-settings for by inserting the following section into the win.ini file (If you don't have access to the file, you may use environment variables.):
  • On Linux/Unix/Win32 Platforms you have to set an environment variable to control where the debug-settings are stored:
  • In, press Shift+Ctrl+Alt+D, and then select TestTool in the Error list box.
  • In the TestTool, assertions are indicated by light blue. To manually reproduce an assertion, select MessageBox in the Error list box.

The TestTool Environment

The TestTool Environment contains the start scripts, the test scripts, and the libraries (include files) that are required to automatically test The TestTool Environment is modular, so that a module exits for each application or area that you want to test in To test a single application, such as Writer, you only need the application module and the global module.

module name / path name Description

application modules

dbaccess Database / Data source functionality in
spreadsheet Calc (spreadsheet)
chart2 Chart, the functionality of charts in a spreadsheet
graphics Impress (presentation application) and Draw (drawing application)
math Math (formula)
extensions Extensions functionalities
writer Writer (text document, HTML document, master document)
xml XML file format for all of the applications

general modules

framework General functionality for all applications (for example, galleries and extras)
global All general routines (for example, startup, tooling, declaration files)
tools Useful standalone applications (hid.lst perl script)

The following subcategories are defined for the TestTool Environment modules:

module name / path name Description
required Resource test: Activates all menu items and opens all dialogs of the tested application.
optional Performs a general functionality test for each feature in the tested application, including each menu item.
tools Includes libraries that contain the general subroutines that are required by all test scripts in the module or application.

These are only the defined name, you can also find other subcategories in the paths. Mostly the named of the directory mirror the tested area.

If you find a *.bas-file in one of these directories you are in a test-module. Those module should include the following directories/files:

module name / path name Description
*.bas Indicates executable test scripts. To run the script, open the *.bas file in TestTool, and then press F5 or choose Program - Start.
inc Includes the libraries and any associated files that are required for a test (included by use-method in the *.bas-file)
input Inputs the files that are required for the test.
tools Includes libraries that have general subroutines that are required by test scripts (*.bas). The libraries must be in the same directory as the test script.


The global-directory is required for each test. The directory contains the main routines for running a test script, including the hid.lst, the declaration files that identify menu items, dialogs and controls in, and general tooling routines.

directory name description
hid Contains the hid.lst file.
input Contains common files that are required by the TestTool.
  • translated, office language dependent default filter names for each application (filters-directory)
  • translated, office language dependent OLE-object names (olenames-dir)
  • files for each graphic format that can read (graf_inp-dir)

sid Includes all SlotID declarations.
system Contains the routines to start a test script in these inc-files.
tools Contains general tooling routines in these inc-files (for example, declare.bas).
update Contains general resource-test routines in these files (options-dialog and autopilots)
win Contains all HelpID declarations.

Configuration file entries

The configuration file (UNIX: .testtoolrc, Win32: testtool.ini) contains several sections.The section name is surounded by '[', ']' and contains several entries like: EntryName=Value.

GUI Platform

Current= depends on the Platform.

UNIX Win32
Subsystem Current Subsystem Current
Solaris SPARC 01 Win 95 100
SCO UNIX 02 Win 98 395
Linux 03 Win NT 3 351
AIX 04 Win NT 4 400
Solaris x86 05 Win SE 410
Irix 06 Win ME 490
HP 07 Win 2000 500
FreeBSD 08 Win XP 501
Mac OS X 12 Win Server 2003 502
Linux PPC 13
NetBSD 14
Linux 64 bit 15
Linux SPARC 16
eComStation 17
Personal tools
In other languages