Scripting language principles
To demonstrate the scripting language structure let's consider a simple
test
script example. This one opens the calculator application and
calculates the sum of 5+5. Be aware that this is a very simple script
which implements neither behavior verification nor reporting of test
result except saving a screen shot.
Note the minor differences between the Windows and Linux scripts -
there's really just different calculator application name and the hot
key to open the Run box. We will show you in one of the following
topics how to separate such system dependent pieces of code in order to
create cross platform test scripts.
calculator.tpr
(Windows version)
|
|
calculator.tpr
(Linux/Gnome version)
|
# Generic procedure to start
an application on Windows.
# We take advantage of the Windows+r key to open the Run box.
procedure startApp {
Press
Windows+r
wait=3s
Typeline "{1}" wait=4s
}
#
Start calculator, type "5+5" followed by Enter and take a screenshot.
startApp calc
Typeline
"5+5"
wait=2s
Screenshot
calculator_result.jpg
desc="Result
of 5+5" |
|
# Generic procedure to start
an application on Linux/GNOME.
# We take advantage of the Alt+F2 key to open the Run box.
procedure startApp {
Press
Alt+F2
wait=3s
Typeline "{1}" wait=4s
}
#
Start calculator, type "5+5" followed by Enter and take a screenshot.
startApp gnome-calculator
Typeline
"5+5"
wait=2s
Screenshot
calculator_result.jpg
desc="Result
of 5+5" |
The language is based on the following principles:
- Test scripts are plain
text files. Each line may
contain a command (Press,
Typeline, Screenshot, ...), a procedure
header (starting with the "procedure" keyword), procedure call ("startApp
<param>") or a comment
(starting with "#"). Though it is not seen in the example, the line may
also contain an if/else or for statement.
- Commands are identified by the first word (in blue) which is
usually (but not always) followed by an argument (in green) and a list of parameters (in bold black) in form
of '<param>="<value>"'.
- The language is not case
sensitive except a few cases
described explicitly in the specification. Commands and their
parameters may be specified in any combination of upper or lower case
characters. The procedure name "startApp" in our example however is case sensitive.
|