Authors |
Greg Shah Constantin Asofiei |
Date |
April 11, 2013 |
Harness Version |
1.1 |
Relative Path | Purpose |
build/classes/ | Target location where compiled classes will be stored. |
build/lib/ | Target location for the generated jar file and any dependent jar files (for jsch and jta). |
build.xml | ANT build script. |
diagrams/design.odp | High level design diagrams in OpenOffice.org format. |
dist/ | Target location for generated JavaDoc. |
docs/ | Non-JavaDoc documentation. |
lib/ | Location to store dependent jar files. |
license.txt | GPL v3 license |
manifest/harness.mf | Manifest file for the harness.jar file. |
other/ |
Necessary source code patches for related projects. |
src/com/goldencode/compile/ | Dynamic (in-memory, runtime) compilation helpers. |
src/com/goldencode/harness/ | Main directory for the
Automated TTY Harness Test which includes core base classes,
interfaces, enums and the command line driver itself. |
src/com/goldencode/harness/terminal/ | Terminal module that hides the implementation and usage of the terminal emulation layer. |
src/com/goldencode/harness/test/ | Implementation of the tests and test directives. |
src/com/goldencode/harness/transport/ | Networking module that implements a generic interface as well as the SSH2 session. |
src/com/goldencode/html | HTML generation helpers. |
src/com/goldencode/io/ |
Stream and file system helper classes. |
src/com/goldencode/lang/ | Runtime language processing. |
src/com/goldencode/util | Miscellaneous utilities such as logging. |
Project | Version | Description | Compile/Use | License | Installation |
ant | 1.6.1 or later | Apache ANT build tool for Java | Needed only for compilation. | Apache License v2.0 | Normally this can be installed using a platform-specific install tool. In Ubuntu, this is found in the package management repositories under the name "ant". |
Java | 6.0 or later | Java Virtual Machine (JVM) and J2SE class libraries | A full Java Development Kit (JDK) is required for compilation. Only a Java runtime is needed for usage. | ? | Platform-specific Sun J2SE download and installer OR via package management system. In Ubuntu, this is found in the package management repositories under the name "sun-java6-jdk" (for the full Java Development Kit). |
jsch | 0.1.41 or later | Java Secure Channel (provides SSH2 and SCP protocol support) | Needed for both compilation and use. | BSD style | Download the binary distribution (a single jar file), place it in the lib/ directory and edit the manifest/harness.mf to change the file name if needed. |
jta | 2.6 with a custom patch |
Java vt220 and vt320 Terminal Support | Needed for both compilation and use. | GPL v2 or later | Download the source distribution (jta26-src.jar) and unzip it. Apply the provided patches using the following commands (where jta26/ is the directory containing the unzipped JTA source code and harness/ is the directory containing the Harness project's source code): patch jta26/de/mud/terminal/vt320.java harness/other/jta26_screen_corruption_fix_20090521.patch patch jta26/de/mud/terminal/vt320.java harness/other/jta26_screen_corruption_fix_20090717.patch Then build a patched jar file using this command: cd jta26 mkdir jar ant dist The build does not automatically create the output directory for the jars. But you only have to create it once. Copy the jta26/jar/jta26.jar into the lib/ directory and edit the manifest/harness.mf to change the file name if needed. |
Option |
Description |
-? |
display a help screen |
-b <path_list> |
specify a default set of
baseline search paths; <path_list> is a list of one or more paths
separated by the platform specific path separator character (e.g. on
UNIX orLinux this would be the colon ':') |
-e |
force separate host/port/userid/password prompts for each target system (the default is to only prompt once and to use the same responses for each of the target definitions which don't have the values defined |
-t <path_list> | specify a default set of test/include search paths; <path_list> has the same format as the -b option |
-v <var=value> | specify values for variables which otherwise would need to be read from the console |
-h <host> | specify the host to connect |
-p <port> | specify the port to connect |
-u <userid> | specify the userid used to connect |
-w <password> | specify the password used to connect. WARNING! Setting the password in the command line will expose it in the process list. Use this option with care, as it can pose security problems. |
Parameter |
Description |
test_plan_filename | specific test plan to run (this is the relative or absolute filename of the XML test plan definition) |
Name | Description | Required |
name | A text string with the case-insensitive name of the semaphore. | Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
actual | The local filename of the file to compare against the baseline.
If specified, the file is assumed to exist and to have been explicitly
copied from the target system to the specified file before this step
executes. It is the responsibility of the test developer to ensure that
the file exists. | N except that at least one (and only one) of the actual or remote attributes MUST be present |
baseline |
This specifies the absolute or
relative filename of the file that contains the expected bytes. This
file is usually pre-captured and is stored along with test definitions.
The project index "baseline" search path is a list of paths to search
for baseline files. The ProjectIndex.findBaseLine() method is used for that search. See Project Index Definition for more details. |
Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
remote |
The file name on the target system (the server) which contains the data to be compared against the contents of the baseline. This file will be downloaded at step execution via SFTP from the target system to the local system. It will be stored in the download directory of the results (output directory) which will be interrogated from the project index via ProjectIndex.getDownloadDirectory(). See Download Directory for more details. | N except that at least one (and only one) of the actual or remote attributes MUST be present |
Name | Description | Required |
column | A 0-based integer index specifying the column number to compare against. Use -1 to disable column comparisons. | N except that at least one of the row/column attributes MUST be present (defaults to -1) |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
row |
A 0-based integer index specifying the column number to compare against. Use -1 to disable column comparisons. | N except that at least one of the row/column attributes MUST be present (defaults to -1) |
Name | Description | Required |
name | A text string with the case-insensitive name of the semaphore. | Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
expected |
An integer specifying the post count which must be exceeded
for the step to pass. A negative expected value will always pass since
the post count is either 0 ("set" state) or it is some positive number
("posted" state). |
N (defaults to -1) |
Name | Description | Required |
bottom |
Part of an "explicit
coordinates" rectangle definition. The 0-based integer number of the
row that is closest to the bottom of the screen. The origin is in the
upper left of the screen so bottom is a larger number (or equal if the
rectangle only covers a single row) than top. |
N (defaults to one less than the screen height) |
column |
Part of a "relative coordinates" rectangle definition. The 0-based integer number of the leftmost column. To find the rightmost column number, add (height - 1) to the column value. | N (defaults to 0) |
filename | A
text string with the relative name of the text file that encodes the
screen capture baseline. This baseline data represents a rectangle of
screen text that can be as large as the entire terminal screen or as
small as one character of one row. This value will be used in a search of the paths using ProjectIndex.findBaseLine(). This mechanism allows a partially qualified (or unqualified) filename to be found somewhere in the "baseline search path", making it possible to encode less path-specific knowledge into the directive. To control the search paths, please see Project Index Definition. | N (except that either this or the value attribute or the line sub-elements must be present to provide the screen baseline data) |
height |
Part of a "relative coordinates" rectangle definition. The number of rows in the rectangle. |
N (defaults to the screen height) |
left |
Part of an "explicit coordinates" rectangle definition. The 0-based integer number of the leftmost column. The origin is in the upper left of the screen so left is smaller than (or equal if the rectangle only covers a single column) than right. | N (defaults to 0) |
millis |
In wait mode this is the maximum
number of milliseconds to wait for the specific screen to appear. Use
-1 to for an indefinite wait (no timeout) and use 0 to check the
current screen and immediately return. In non-wait mode, this is the number of milliseconds to wait for the first screen buffer to become available and that screen will be checked (and will immediately pass or fail on that screen's results without waiting further). Use -1 for an indefinite wait and 0 for no wait. Notice that 0 acts the same way regardless of the wait mode. |
N (defaults to 0) |
named-rectangle |
The text name of a rectangle as defined in the project index. Please see Project Index Definition. | N |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
right |
Part of an "explicit coordinates" rectangle definition. The 0-based integer number of the rightmost column. The origin is in the upper left of the screen so left is larger than (or equal if the rectangle only covers a single column) than left. | N (defaults to the one less than the screen width) |
row |
Part of a "relative coordinates" rectangle definition. The 0-based integer number of the uppermost row. To find the bottom row number, add (width - 1) to the row value. | N (defaults to 0) |
top |
Part of an "explicit coordinates" rectangle definition. The 0-based integer number of the row that is closest to the top of the screen. The origin is in the upper left of the screen so top is a smaller number (or equal if the rectangle only covers a single row) than bottom. | N (defaults to 0) |
value |
A text string that provides a simple (one row) "rectangle" of data to compare against. |
N (except that either this or the filename attribute or the line sub-elements must be present to provide the screen baseline data) |
wait |
Boolean "true" to enable wait mode and "false" to force non-wait mode. |
N (defaults to true) |
width |
Part of a "relative coordinates" rectangle definition. The number of columns in the rectangle. |
N (defaults to the screen width) |
Name | Description | Required |
name | The name of the boolean or Boolean variable to test. | Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
filename | A text string with the relative name of the test file to include. This value will be used in a search of the paths using ProjectIndex.findTest(). This mechanism allows a partial include filename to be found somewhere in the "test search path", making it possible to encode less path-specific knowledge into the directive. To control the search paths, please see Project Index Definition. | Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
millis | An integer specifying the number of milliseconds to pause. | Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
name | A text string with the case-insensitive name of the semaphore. | Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
reset |
A boolean flag. If true, then after all waiting threads are released, the semaphore will automatically reset to the "set" state. The next call to wait-event-sem would then block. |
N (defaults to false) |
Name | Description | Required |
column-variable | The variable name of a numeric variable that will be assigned the current cursor's column position when the step executes. | N (but if this is not specified, then the row-variable must be specified) |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
row-variable |
The variable name of a numeric variable that will be assigned the current cursor's row position when the step executes. | N (but if this is not specified, then the column-variable must be specified) |
Name | Description | Required |
column | The column of the first character to read. | Y |
name |
The variable name in which to
assign the text. The content of the variable will be completely
replaced. Any conversion from a string to the proper data type will be
attempted. |
Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
row |
The row from which the data will be read. |
Y |
width |
The number of characters to read. |
Y |
Name | Description | Required |
name | A text string with the case-insensitive name of the semaphore. | Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
name | A text string with the case-insensitive name of the semaphore. | Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
debug | A boolean which if true, specifies if the source code for the generated class should be output
into the result reports for debugging purposes. | N (defaults to false) |
description |
A description of what the code is suppose to do. |
N |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 times sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
minimum | In drain mode, this is the minimum number of bytes to read from the back end before the timeout occurs. | N (defaults to 0 in drain mode, ignored if not in drain mode) |
modifiers | This is a comma-separated list, including any of the following values:
Modifiers cannot be sent as a separate key (by themselves). Rather they are considered as pressed or not pressed during the processing of another key. For more details on modifiers, please see modifiers. |
N (by default no modifiers are sent) |
repeat |
A positive integer specifying
the number of sequential duplicate instances of this step to include in
the test. For example. if "5" is specified, then the step will be
executed 5 times sequentially (and each step will be treated as a
separate and independent step). If the 3rd repetition fails, then the
reports will show that the first two instances succeeded and the 3rd
failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
timeout |
Enables "drain" mode. This is a
synchronization primitive. The timeout is the maximum number of
milliseconds to wait for draining to occur. Use -1 for an indefinite
wait (it never times out). Otherwise this needs to be a positive number
large enough to safelyread the minimum number of expected bytes of output. See minimum attribute below. |
N (defaults to no draining) |
value |
One of the following symbolic names:
|
Y |
Name | Description | Required |
delay |
An integer value of milliseconds to pause after each key that is sent. Use a non-positive number to mean "no delay". |
N (defaults to 0) |
minimum | In drain mode, this is the minimum number of bytes to read from the back end before the timeout occurs. | N (defaults to 0 in drain mode, ignored if not in drain mode) |
modifiers | This is a comma-separated list, including any of the following values:
Modifiers cannot be sent as a separate key (by themselves). Rather they are considered as pressed or not pressed during the processing of another key. For more details on modifiers, please see modifiers. |
N (by default no modifiers are sent) |
repeat |
A positive integer specifying
the number of sequential duplicate instances of this step to include in
the test. For example. if "5" is specified, then the step will be
executed 5 times sequentially (and each step will be treated as a
separate and independent step). If the 3rd repetition fails, then the
reports will show that the first two instances succeeded and the 3rd
failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
special |
The symbolic name of the special
key that is sent after all other keys are sent. This can be useful for
cases like shell command lines which always need to be finished with an
ENTER key (VK_ENTER as the symbolic name). This can be used to
eliminate a separate following send-special-key step. See that directive for the valid symbolic names. Note that the same modifiers are sent with the special key are are specified for the rest of the keystrokes. |
N (defaults to no special key sent) |
timeout |
Enables "drain" mode. This is a
synchronization primitive. The timeout is the maximum number of
milliseconds to wait for draining to occur. Use -1 for an
indefinite wait (it never times out). Otherwise this needs to be a
positive number large enough to safelyread the minimum number of expected bytes of output. See minimum attribute below. |
N (defaults to no draining) |
value |
Any character string. Each character in the string (which by definition
must be some kind of printable character that can be typed on the
keyboard) will be sent to the server as a separate key. This allows any
printable key on the keyboard (any of the alpha-numeric keys,
punctuation, spaces) to be sent. The string has no limits on the number
of characters so long as there is at least 1 character in the string. For keys where there is no printable equivalent, please use the send-special-key directive. |
Y |
Name | Description | Required |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
path |
The absolute or relative path of the directory to make the current directory. |
Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
local |
Specifies the absolute or relative (to the current directory) local filename or directory name for the tranfer. If the remote file specification is a single file, this can be omitted. In that case the same file name in the current directory will be used as the local filename. If the remote file specification is multiple files, this must not be omitted. It must be a relative or absolute directory name in which the multiple files will be transferred. If the remote file specification is a directory, this can be omitted and the current directory will be used. Otherwise it should be the local directory that is the counterpart for the transferred files. In any case this is omitted, the local name will act as if it was specified as the same exact string as the remote specification. That is why when wildcards are used, the local name should be explicitly specified. |
N |
remote |
Specifies the absolute or
relative (to the current directory) filename or directory name on
the target system which should be tranferred to the local system. A single file can be specified. Wildcards can be used to make the specification target multiple files. A directory can be specified to copy the entire contents of that directory. |
Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
path |
The absolute or relative path of the directory to make the current directory. |
Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
path |
The relative or absolute directory or file name on the target system to query. Use "." to query the current directory. |
Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
path |
The relative or absolute directory path to create on the target system. |
Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
local |
Specifies
the absolute or relative (to the current directory) local filename or
directory name for the tranfer to the target system. A single file can be specified. Wildcards can be used to make the specification target multiple files. A directory can be specified to copy the entire contents of that directory. |
Y |
remote |
Specifies
the absolute or
relative (to the current directory) filename or directory name on
the local system which should be tranferred to the target system. If the local file specification is a single file, this can be omitted. In that case the same file name in the current directory will be used as the remote filename. If the local file specification is multiple files, this must not be omitted. It must be a relative or absolute directory name in which the multiple files will be transferred. If the local file specification is a directory, this can be omitted and the current directory will be used. Otherwise it should be the remote directory that is the counterpart for the transferred files. In any case this is omitted, the remote name will act as if it was specified as the same exact string as the local specification. That is why when wildcards are used, the remote name should be explicitly specified. |
N |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
new |
The new relative or absolute path/filename on the target system. |
Y |
old |
The old relative or absolute path/filename on the target system. | Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
filespec |
The
relative or absolute file specification to remove from the target
system. Wildcards can be included to target multiple files at once. |
Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
path |
The relative or absolute directory path to remove from the target system. |
Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
actual |
The relative or absolute file or directory on the target system which will be referenced by the new link. | Y |
link |
The new file system entry on the target system which will reference the actual file or directory. |
Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
actual | The local filename of the file to compare against the baseline.
If specified, the file is assumed to exist and to have been explicitly
copied from the target system to the specified file before this step
executes. It is the responsibility of the test developer to ensure that
the file exists. | N except that at least one (and only one) of the actual or remote attributes MUST be present |
baseline |
This specifies the absolute or
relative filename of the file that contains the expected characters. This
file is usually pre-captured and is stored along with test definitions.
The project index "baseline" search path is a list of paths to search
for baseline files. The ProjectIndex.findBaseLine() method is used for that search. See Project Index Definition for more details. |
Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
remote |
The file name on the target system (the server) which contains the data to be compared against the contents of the baseline. This file will be downloaded at step execution via SFTP from the target system to the local system. It will be stored in the download directory of the results (output directory) which will be interrogated from the project index via ProjectIndex.getDownloadDirectory(). See Download Directory for more details. | N except that at least one (and only one) of the actual or remote attributes MUST be present |
Name | Description | Required |
initial |
The initial value of the
variable. This string data must be formatted such that a value of the
appropriate type can be parsed from the text. For example, an int,
Integer, long or Long must all be text that specifies a valid base-10
(decimal) number. A boolean or Boolean can be specified as true or false. |
N (If not specified, the numeric data defaults to 0 and boolean data defaults to false, String data defaults to null) |
name | A text string with the name of the variable. This is matched case-insensitively in directive substitutions and case-sensitively in embedded Java source code. | Y |
prompt |
This attribute is a text string
that describes the variable in terms that can be understood by a user.
More importantly, the presence of this attribute adds the variable to
the list of variables that the main harness program should prompt the
user for a value. After the test plan is loaded, this list will be
processed. For each entry in the prompt list, the main harness program
will display the prompt (along with the variable name and the initial
value) and the user will be allowed to type in a replacement value OR
the user can just press ENTER to accept the initial value). Whatever
value is typed in, MUST be compatible with the data type of the
variable, otherwise an exception will be thrown. This facility allows dynamic selection or arbitrary user input to be specified for a given test plan. Of course, it is always best to maximize the data that can be safely hard coded OR to read data from the screen OR calculate the input, so that the interactive processing of the user is minimized. |
N |
prompt-secret |
This is the same as the prompt
attribute except that the current value is not displayed (instead the
data type is shown) AND the user's typing is not echoed on the screen.
This makes it ideal for specifying passwords or other sensitive data
that can't be hard coded and which must not be shared with others. |
N |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
type |
The data type of the variable. It may be one of the following:
|
Y |
Name | Description | Required |
name | A text string with the case-insensitive name of the semaphore. | Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
timeout |
The integer number of
milliseconds to wait for the event to be posted. Use 0 for an
indefinite wait. A negative number will be considered the same as 0. |
N (defaults to 0) |
Name | Description | Required |
millis |
Number of milliseconds to wait for the screen buffer to become available. Use -1 for an indefinite wait and 0 for no wait. In a no wait case, only the currently available screen buffer (if any) will be checked and the results will be immediately returned. | N (defaults to 0) |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this step to include in the test. For example. if "5" is specified,
then the step will be executed 5 time sequentially (and each step will
be treated as a separate and independent step). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct that is not specific to this directive. The loading process will duplicate the step in the in-memory test definition and then each step (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
value |
The text to search for in the screen buffer.
As a side-effect, this controls the mode of the directive. If not
specified, this enables ANY mode. If specified, that enables SEARCH
mode. |
N (defaults to no value which is the same as ANY mode) |
Name | Description | Required |
name | The
short name for the test plan. There are no spaces or special characters used
in this name. It will be used for filenames and HTML links. | N |
description |
The verbose description of the test plan. This can be any text that is useful for describing the plan. |
N |
Name | Description | Required |
path | The
relative or absolute path specifying the output directory (or the "root" of the directory if unique is true). | N (defaults to ".") |
unique |
When set to true, this option causes the path
attribute to be interpreted as the "root" directory of output. As such,
for each testing run, a unique subdirectory is created using the
current date and time in the following format (assumes that the path is set to a relative directory named results): ./results/YYYYMMDD_HHMMSS This is useful since it allows a record of all test runs to be easily created without extra effort to manually create a new unique directory or to manually delete the previous results. When set to false, the path attribute is the directory in which all HTML reports will be output. |
N (defaults to false) |
Name | Description | Required |
filename | This must specify the relative or absolute filename of an existing and valid XML file that contains the project index. That file will then be loaded. | Y |
Name | Description | Required |
name | The case-insensitive name of the mutex semaphore to create. | Y |
Name | Description | Required |
name | The case-insensitive name of the event semaphore to create. | Y |
set |
The initial state of the semaphore. Use true to force the "set" state and false to initialize the semaphore as "posted". |
N (defaults to true) |
Name | Description | Required |
host | The target system's hostname or IP address. | N (defaults to localhost) |
password |
The password to authenticate the given userid. |
N (defaults to null which is invalid) |
port |
The port (socket number) on the target system. |
N (defaults to 22) |
protocol |
This only supports SSH2 at this time. |
N (defaults to SSH2) |
prompt |
A list of comma separated field
names for which the user should be prompted to accept the default value
or specify a replacement. At this time it can contain any of the
following field names:
<target host="localhost" port="2222" prompt="host,port" /> |
N (defaults to no prompting) |
term-columns |
The width of the terminal in columns. |
N (defaults to 80) |
term-rows |
The height of the terminal in rows. |
N (defaults to 24) |
term-type |
The terminal type (wither vt220 or vt320). |
N (defaults to vt320) |
userid |
The userid with which to login. |
N (defaults to null which is invalid) |
Name | Description | Required |
dependency |
This allows 3 possible execution modes: PRE_CONDITION, NONE, POST_CONDITION. A test set assigned a PRE_CONDITION dependency will execute before any test sets with the NONE or POST_CONDITION dependency types. All PRE_CONDITION test sets execute first and simultaneous with each other. All must complete before test sets of other dependency types are executed. This allows any environment preparation to be completed before the core testing occurs. If any PRE_CONDITION test set fails, then no NONE or POST_CONDITION test sets will be executed. The test plan will abort when all PRE_CONDITION test sets complete. After all PRE_CONDITION test sets are executed (and before POST_CONDITION test sets) and assuming they all finish without failure, all test sets with NONE dependency type will be executed (simultaneous with each other). Once all NONE dependency type test sets are finished, the POST_CONDITION test sets will execute simultaneous with each other. This is a way to ensure that cleanup processing happens at the end of the test plan run. |
N (defaults to NONE) |
description |
The verbose description of the test plan. This can be any text that is useful for describing the plan. |
N |
name | The short name for the test plan. There are no spaces or special characters used in this name. It will be used for filenames and HTML links. | N |
threads |
The number of threads in the pool which will service the job queue for this test set. |
N (defaults to 1 thread) |
Name | Description | Required |
filename | The absolute or relative filename for the XML test definition file. This value will be used in a search of the paths using ProjectIndex.findTest(). This mechanism allows a partial test filename to be found somewhere in the "test search path", making it possible to encode less path-specific knowledge into the test set. To control the search paths, please see Project Index Definition. | Y |
repeat |
A positive integer specifying the number of sequential duplicate instances of
this test to include in the test set. For example. if "5" is specified,
then the test will be executed 5 times sequentially (and each test will
be treated as a separate and independent test). If the 3rd repetition
fails, then the reports will show that the first two instances
succeeded and the 3rd failed and the last two were not run. This is a load-time construct. The loading process will duplicate the test in the in-memory test set definition and then each test (though loaded from the same definition) will be treated separately at runtime. |
N (defaults to 1) |
Name | Description | Required |
bottom |
Part of an "explicit
coordinates" rectangle definition. The 0-based integer number of the
row that is closest to the bottom of the screen. The origin is in the
upper left of the screen so bottom is a larger number (or equal if the
rectangle only covers a single row) than top. |
N (defaults to -2 which is invalid) |
column |
Part of a "relative coordinates" rectangle definition. The 0-based integer number of the leftmost column. To find the rightmost column number, add (height - 1) to the column value. | N (defaults to 0) |
height |
Part of a "relative coordinates" rectangle definition. The number of rows in the rectangle. |
N (defaults to -1 which is invalid) |
left |
Part of an "explicit coordinates" rectangle definition. The 0-based integer number of the leftmost column. The origin is in the upper left of the screen so left is smaller than (or equal if the rectangle only covers a single column) than right. | N (defaults to 0) |
name |
The case-insensitive text name of a rectangle as it should be looked up in the project index. | Y |
right |
Part of an "explicit coordinates" rectangle definition. The 0-based integer number of the rightmost column. The origin is in the upper left of the screen so left is larger than (or equal if the rectangle only covers a single column) than left. | N (defaults to -2 which is invalid) |
row |
Part of a "relative coordinates" rectangle definition. The 0-based integer number of the uppermost row. To find the bottom row number, add (width - 1) to the row value. | N (defaults to 0) |
top |
Part of an "explicit coordinates" rectangle definition. The 0-based integer number of the row that is closest to the top of the screen. The origin is in the upper left of the screen so top is a smaller number (or equal if the rectangle only covers a single row) than bottom. | N (defaults to 0) |
width |
Part of a "relative coordinates" rectangle definition. The number of columns in the rectangle. |
N (defaults to -1 which is invalid) |
Name | Description | Required |
path | The
relative or absolute path specifying the search path to add. | N (searching is disabled if there are no paths listed) |
Name | Description | Required |
path | The
relative or absolute path specifying the search path to add. | N (searching is disabled if there are no paths listed) |