APPX_TST_DIR
APPX_SCRIPT_IN
APPX_SCRIPT_OUT
The scripting feature recognizes scripts of the following form:
(This script will enter application design, traverse to input process definition, muck around a little, then exit.)
!
! APPX MENU
#USER 2
! APPLICATION DESIGN
TST10
#RETURN
#USER 2
! PROCESS MANAGEMENT
#USER 3
! PROCESS (INPUT)
#CURSOR DOWN
#CURSOR DOWN
#CURSOR RIGHT
#CURSOR RIGHT
#DELETE PREV CHARACTER
#DELETE PREV CHARACTER
# RETURN
! FRAME (INPUT)
#END
! PROCESS (INPUT)
#END
Blank lines and lines beginning with an exclamation point (!) are treated as comments (and ignored). Lines beginning with a pound sign (#) are considered to be the names of Appx options. Any other lines are considered literal text which is provided to Appx as if the user had entered the characters at the keyboard.
You can substitute environment variables into a script using "#$name" where "name" is the name of an environment variable. You can use this as a way to automate repetitive tasks such as data file management. For example, given the following script:
! Filename: restruct.apx
!
! Restructure a database/application
! set $ap to the name of the application
! set $db to the name of the database
!
#USER 4
#$db
#$ap
#RETURN
#USER 4
#END
#END
#END
You could restructure a database/application with the following Unix command line:
$ APPX_SCRIPT_IN=restruct.apx ap=TAR db=MDB appx
Of course the easiest way to build this script would be to record the keystrokes and then edit in the environment variables for the text you want to replace.
NOTE: Because comments start with a "!" and options start with a "#", you will NOT be able to record/playback any strings which start with either of those characters. If the playback facility finds an option line which is doesn't understand (such as #NONSENSE), it will play back a #CANCEL instead. If you must record a string that begins with a "#" or a "!", begin the string with a junk character and then go back
and delete the character.
If the APPX_SCRIPT_OUT environment variable is defined, Appx will use the file named by that variable to record keymap independent keystrokes. As each option is entered by the user, Appx records the option name in the output script file. Non-option keystrokes are echoed to the script file. Appx will also record the current process name so that script files are (reasonably well) documented and more easily maintained.
If the APPX_SCRIPT_IN environment variable is defined, Appx will use the file named by that environment variable as the source of input. Appx options and literal text will be read from the input script file. If the input script file becomes exhausted, Appx will
begin reading from stdin.
If the APPX_TST_DIR environment variable is defined, Appx will record screen dumps into files in that directory. Appx will create two subdirectories called:
$APPX_TST_DIR/expect
$APPX_TST_DIR/actual
If Appx is recording a script (because the APPX_SCRIPT_OUT environment variable is set), Appx will record screen dumps into the $APPX_TST_DIR/expect directory, otherwise, Appx will record screen dumps into the $APPX_TST_DIR/actual directory. The screen dumps are editable ascii files whose names are of the form screen001, screen002, etc.. Appx will record screen dumps each time an interceptable Appx
option is recorded (or played back).
Also, if APPX_TST_DIR is defined, the normal time/date display is suppressed so that screen dumps will not be time sensitive.
The APPX_SCRIPT_IN, APPX_SCRIPT_OUT, and APPX_TST_DIR environment variable can be used in any combination.
APPX Script In | APPX Script Out | APPX TST DIR | |
SET | Playback, no screen dumps | ||
SET | Record, no screen dumps | ||
SET | Input comes from keyboard,dump screens | ||
SET | SET | Playback & record (annotates script w/proc names) | |
SET | SET | Playback & dump screens (Regression test) | |
SET | SET | Record and dump screens (record a test) | |
SET | SET | SET | Playback, record, dumps screens (why bother?) |
The most useful combinations are the "record a test" and the "regression test" cases. A regression test is built by record the script and screen dumps (into $APPX_TST_DIR/expect) to establish the baseline screens.
A regression scenario is tested by playing back the script, capturing the screen dumps (into $APPX_TST_DIR/actual), then "diff"ing the expect and actual directories. The 'diff' command can take two directories as arguments in which case it compares each file in the two directories, therefore the command "diff expect actual" can be used to verify a run of a regression test.