The actual data sent to the terminal and the output stream interpretation logic are defined in a script file. The script file is created according to VRT-script language rules.

The script can be either written manually or "compiled" from a real user session log using VRT-compiler. The compiled script will include commands that submit precisely the same input as was submitted during the original session. A variety of output verification commands are generated by the compiler to ensure that the application responds in the same manner as in the original recording.

The VRT-script file is interpreted by a VRT-exec executor utility that actually drives pseudo terminals. (VRT software running under VMS is also capable of driving regular physical terminals. This feature has been obsoleted in the AIX version of software for the lack of necessity).

VRT-script language was designed specifically for the purpose of application automation and testing. Its syntax is very readable and comprehensible. At the same time, some commands and functions perform very complex internal actions that would require many lines of code written in a common language such as C.

The input sequences submitted to the pseudo terminal can be constructed at run-time. Fixed data are defined as string constants, and run-time data are stored in VRT-script variables. All variables are string variables.

The language supports interpretation of the terminal output based on straight data stream or emulation of a terminal screen. A portion of the terminal output buffer or the screen can be extracted and assigned to a script variable. The screen may also be examined for presence of a particular string pattern.


VRT-script language includes a variety of commands that provide communication with the host operating system by means of files and subprocesses. This last feature greatly extends the functionality of the VRT-script allowing it to launch external shell scripts and even generate them on the fly.

VRT-plus software can simultaneously drive multiple terminal sessions. VRT-script includes a simple command interface that facilitates synchronization among different processes. As a result, the the script interpreter can be directed to execute commands from different scripts in a predefined order. Such functionality is important for testing purposes since it allows to recreate complex multi-user testing scenario down to a keystroke.