Version 8.0.2 |
Besides the standard sequence types QF-Test has a set of special control structures. Conditional processing is handled via 'If', 'Elseif' and 'Else' nodes. 'Loops' and 'While' nodes can be aborted with a 'Break' node. Exceptions are handled by 'Try', 'Catch' and 'Finally' nodes.
Beyond that, full scripting is available for the Jython language (formerly called JPython), Groovy and JavaScript as documented in chapter 11.
This node is basically the same as a 'Sequence' except that its children can be executed more than once. This is useful in two ways. For one thing, a test sequence that executes OK a hundred times is more trustworthy than a sequence that only runs once. The other use is to run a number of similar jobs with slight variations. To that end, the count of the current iteration is bound as a variable during execution. Special 'Loops' with varying increments can be achieved by changing the value of the 'Iteration counter' during execution. Execution of a 'Loop' can be terminated prematurely with the help of a 'Break' node. An optional 'Else' node may be placed at the end of the 'Loop'. It is executed if all iterations of the 'Loop' are run through completely without hitting a 'Break'. |
Contained in: All kinds of sequences.
Children: Any
Execution: The 'Variable definitions' of the 'Loop' are bound. The 'Iteration counter' is initialized to 0 and the child nodes are executed one by one. For each iteration the 'Iteration counter' is increased by one and the children are executed again. After the final execution of the last child is complete, the 'Iteration counter' and the 'Variable definitions' are unbound again.
Attributes:
Figure 41.25: 'Loop' attributes |
The name of a sequence is a kind of short description. It is displayed in the tree view, so it should be concise and say something about the function of the sequence.
Variable: No
Restrictions: None
The number of iterations of the loop.
Variable: Yes
Restrictions: > 0
The name of the variable that will hold the iteration count during the execution. Make sure to use different 'Iteration counter' names for nested loops.
Variable: Yes
Restrictions: None
This is where you define the values of the variables that remain bound during the execution of the sequence's child nodes (see chapter 6). See subsection 2.2.5 about how to work with the table.
Variable: Variable names no, values yes
Restrictions: None
When a warning, error or exception occurs during a test run, the state of the corresponding node of the run log is set accordingly. This state is normally propagated to the parent node in a way that ensures that the error state of a run log node represents the worst of its child nodes' states. Using this attribute, the maximum error state that the run log node for a sequence will propagate, can be limited.
Note This value has no effect on the way exceptions
are handled. It only affects the error states of the run log nodes and
by that the exit code of QF-Test when run in batch mode
(see. section 1.7). It also has no effect on the
creation of compact run logs (see command line argument
-compact
). The node for a sequence in which a warning, error
or exception occurs is never removed from a compact log, even if the
error is not propagated due to the setting of this attribute.
Variable: No
Restrictions: None
The 'QF-Test ID' of the 'Loop' node can be used in a 'Break' node to terminate an outer loop explicitly when loops are nested.
Variable: No
Restrictions: Must not contain any of the characters '\', '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
This is a sequence that is executed repeatedly as long as a condition is fulfilled. The loop can be terminated prematurely with the help of a 'Break' node. |
Contained in: All kinds of sequences.
Children: Any
Execution: The 'Variable definitions' of the 'While' node are bound. If the condition evaluates to true, the child nodes are executed one by one. This is repeated until the condition evaluates to false or the loop is terminated through a 'Break' node or an Exception. Finally the 'Variable definitions' are unbound again.
Attributes:
Figure 41.26: 'While' attributes |
A condition is an expression that evaluates to either true or false. QF-Test discriminates between simple expression that it evaluates itself and complex expressions that are passed to the Jython script language to evaluate.
An empty string or the string false
(regardless of case)
is interpreted as false, the string true
as true. Whole
numbers are true if and only if they are non-zero.
Evaluating expressions in Jython opens the way for powerful
expression handling. Jython supports the standard operators
==
, !=
, >
,
>=
, <
and <=
. You can
combine expressions with and
and or
and
define their priority with braces.
Note Accessing QF-Test variables in a condition follows
the same rules as in Jython scripts (see subsection 11.2.3). You can use the standard QF-Test syntax
$(...)
and ${...:...}
for numeric or boolean
values. String values should be accessed with
rc.lookup(...)
.
Important: Im you want to compare strings (as opposed to numbers) you need to excape them by single or double inverted commas for Jython. Else Jython would interpret the string as a Jython variable, which, of course would not be defined, and thus lead to a syntax error.
Some examples:
| |||||||||||||||||||||||||||||
Table 41.13: Condition examples |
Variable: Yes
Restrictions: Valid syntax
This attribute determines the interpreter in which to run the script, or in other words, the scripting language to use. Possible values are "Jython", "Groovy" and "JavaScript".
Variable: No
Restrictions: None
The name of a sequence is a kind of short description. It is displayed in the tree view, so it should be concise and say something about the function of the sequence.
Variable: No
Restrictions: None
This is where you define the values of the variables that remain bound during the execution of the sequence's child nodes (see chapter 6). See subsection 2.2.5 about how to work with the table.
Variable: Variable names no, values yes
Restrictions: None
When a warning, error or exception occurs during a test run, the state of the corresponding node of the run log is set accordingly. This state is normally propagated to the parent node in a way that ensures that the error state of a run log node represents the worst of its child nodes' states. Using this attribute, the maximum error state that the run log node for a sequence will propagate, can be limited.
Note This value has no effect on the way exceptions
are handled. It only affects the error states of the run log nodes and
by that the exit code of QF-Test when run in batch mode
(see. section 1.7). It also has no effect on the
creation of compact run logs (see command line argument
-compact
). The node for a sequence in which a warning, error
or exception occurs is never removed from a compact log, even if the
error is not propagated due to the setting of this attribute.
Variable: No
Restrictions: None
The 'QF-Test ID' of the 'While' node can be used in a 'Break' node to terminate an outer loop explicitly when loops are nested.
Variable: No
Restrictions: Must not be empty, contain any of the characters '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
This node is used to terminate a 'Loops' or a 'While' node prematurely. |
Contained in: All kinds of sequences.
Children: None
Execution:
A BreakException
is thrown. If it is caught by a
matching loop, the loop is terminated, otherwise it will lead to an
error.
Attributes:
Figure 41.27: 'Break' attributes |
For nested loops you can specify the loop to terminate by specifying the 'QF-Test ID' of a 'Loop' node and refer to it here. It works with 'QF-Test ID' for a 'While' node respectively. In case this field is empty the innermost loop is terminated. In case you want to break an iteration raised by a 'Data driver' node, you should specify the value of the 'Name' attribute of the respective 'Data driver' node.
Variable: Yes
Restrictions: None
At the moment the 'QF-Test ID' attribute has no meaning for this type of node.
Variable: No
Restrictions: Must not contain any of the characters '\', '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
Like in Java the child nodes of this node are executed only if a condition evaluates to true. However QF-Test differs from common programming languages in the way alternative branches are arranged. |
Contained in: All kinds of sequences.
Children: Any executable node, followed by an arbitrary number of 'Elseif' nodes with an optional 'Else' at the end.
Execution: The 'Variable definitions' of the 'If' node are bound. If the condition evaluates to true, the normal child nodes are executed one by one. Otherwise the conditions of the 'Elseif' nodes are evaluated and the first 'Elseif' node whose condition evaluates to true is executed. If none of the conditions are true of no 'Elseif' nodes exist, the 'Else' node is executed, if one exists. Finally the 'Variable definitions' are unbound again.
Attributes:
Figure 41.28: 'If' attributes |
A condition is an expression that evaluates to either true or false. QF-Test discriminates between simple expression that it evaluates itself and complex expressions that are passed to the Jython script language to evaluate.
An empty string or the string false
(regardless of case)
is interpreted as false, the string true
as true. Whole
numbers are true if and only if they are non-zero.
Evaluating expressions in Jython opens the way for powerful
expression handling. Jython supports the standard operators
==
, !=
, >
,
>=
, <
and <=
. You can
combine expressions with and
and or
and
define their priority with braces.
Note Accessing QF-Test variables in a condition follows
the same rules as in Jython scripts (see subsection 11.2.3). You can use the standard QF-Test syntax
$(...)
and ${...:...}
for numeric or boolean
values. String values should be accessed with
rc.lookup(...)
.
Important: Im you want to compare strings (as opposed to numbers) you need to excape them by single or double inverted commas for Jython. Else Jython would interpret the string as a Jython variable, which, of course would not be defined, and thus lead to a syntax error.
Some examples:
| |||||||||||||||||||||||||||||
Table 41.14: Condition examples |
Variable: Yes
Restrictions: Valid syntax
This attribute determines the interpreter in which to run the script, or in other words, the scripting language to use. Possible values are "Jython", "Groovy" and "JavaScript".
Variable: No
Restrictions: None
The name of a sequence is a kind of short description. It is displayed in the tree view, so it should be concise and say something about the function of the sequence.
Variable: No
Restrictions: None
This is where you define the values of the variables that remain bound during the execution of the sequence's child nodes (see chapter 6). See subsection 2.2.5 about how to work with the table.
Variable: Variable names no, values yes
Restrictions: None
When a warning, error or exception occurs during a test run, the state of the corresponding node of the run log is set accordingly. This state is normally propagated to the parent node in a way that ensures that the error state of a run log node represents the worst of its child nodes' states. Using this attribute, the maximum error state that the run log node for a sequence will propagate, can be limited.
Note This value has no effect on the way exceptions
are handled. It only affects the error states of the run log nodes and
by that the exit code of QF-Test when run in batch mode
(see. section 1.7). It also has no effect on the
creation of compact run logs (see command line argument
-compact
). The node for a sequence in which a warning, error
or exception occurs is never removed from a compact log, even if the
error is not propagated due to the setting of this attribute.
Variable: No
Restrictions: None
At the moment the 'QF-Test ID' attribute has no meaning for this type of node.
Variable: No
Restrictions: Must not contain any of the characters '\', '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
This node is an alternative branch in an 'If' node. If the condition of the 'If' node evaluates to false, the first 'Elseif' node whose condition is true is executed. |
Contained in:'If'
Children: Any
Execution: The 'Variable definitions' of the 'Elseif' are bound and its child nodes executed one by one. After the execution of the last child is complete, the variables are unbound again.
Attributes:
Figure 41.29: 'Elseif' attributes |
A condition is an expression that evaluates to either true or false. QF-Test discriminates between simple expression that it evaluates itself and complex expressions that are passed to the Jython script language to evaluate.
An empty string or the string false
(regardless of case)
is interpreted as false, the string true
as true. Whole
numbers are true if and only if they are non-zero.
Evaluating expressions in Jython opens the way for powerful
expression handling. Jython supports the standard operators
==
, !=
, >
,
>=
, <
and <=
. You can
combine expressions with and
and or
and
define their priority with braces.
Note Accessing QF-Test variables in a condition follows
the same rules as in Jython scripts (see subsection 11.2.3). You can use the standard QF-Test syntax
$(...)
and ${...:...}
for numeric or boolean
values. String values should be accessed with
rc.lookup(...)
.
Important: Im you want to compare strings (as opposed to numbers) you need to excape them by single or double inverted commas for Jython. Else Jython would interpret the string as a Jython variable, which, of course would not be defined, and thus lead to a syntax error.
Some examples:
| |||||||||||||||||||||||||||||
Table 41.15: Condition examples |
Variable: Yes
Restrictions: Valid syntax
This attribute determines the interpreter in which to run the script, or in other words, the scripting language to use. Possible values are "Jython", "Groovy" and "JavaScript".
Variable: No
Restrictions: None
The name of a sequence is a kind of short description. It is displayed in the tree view, so it should be concise and say something about the function of the sequence.
Variable: No
Restrictions: None
This is where you define the values of the variables that remain bound during the execution of the sequence's child nodes (see chapter 6). See subsection 2.2.5 about how to work with the table.
Variable: Variable names no, values yes
Restrictions: None
When a warning, error or exception occurs during a test run, the state of the corresponding node of the run log is set accordingly. This state is normally propagated to the parent node in a way that ensures that the error state of a run log node represents the worst of its child nodes' states. Using this attribute, the maximum error state that the run log node for a sequence will propagate, can be limited.
Note This value has no effect on the way exceptions
are handled. It only affects the error states of the run log nodes and
by that the exit code of QF-Test when run in batch mode
(see. section 1.7). It also has no effect on the
creation of compact run logs (see command line argument
-compact
). The node for a sequence in which a warning, error
or exception occurs is never removed from a compact log, even if the
error is not propagated due to the setting of this attribute.
Variable: No
Restrictions: None
At the moment the 'QF-Test ID' attribute has no meaning for this type of node.
Variable: No
Restrictions: Must not contain any of the characters '\', '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
An 'Else' node is executed if neither the condition of its 'If' parent, nor the condition of its 'Elseif' siblings evaluate to true. |
Contained in:'If', 'Loop', 'Try'
Children: Any
Execution: The 'Variable definitions' of the 'Else' are bound and its child nodes executed one by one. After the execution of the last child is complete, the variables are unbound again.
Attributes:
Figure 41.30: 'Else' attributes |
The name of a sequence is a kind of short description. It is displayed in the tree view, so it should be concise and say something about the function of the sequence.
Variable: No
Restrictions: None
This is where you define the values of the variables that remain bound during the execution of the sequence's child nodes (see chapter 6). See subsection 2.2.5 about how to work with the table.
Variable: Variable names no, values yes
Restrictions: None
When a warning, error or exception occurs during a test run, the state of the corresponding node of the run log is set accordingly. This state is normally propagated to the parent node in a way that ensures that the error state of a run log node represents the worst of its child nodes' states. Using this attribute, the maximum error state that the run log node for a sequence will propagate, can be limited.
Note This value has no effect on the way exceptions
are handled. It only affects the error states of the run log nodes and
by that the exit code of QF-Test when run in batch mode
(see. section 1.7). It also has no effect on the
creation of compact run logs (see command line argument
-compact
). The node for a sequence in which a warning, error
or exception occurs is never removed from a compact log, even if the
error is not propagated due to the setting of this attribute.
Variable: No
Restrictions: None
At the moment the 'QF-Test ID' attribute has no meaning for this type of node.
Variable: No
Restrictions: Must not contain any of the characters '\', '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
A 'Try' is a special sequence whose semantic equates the
Java If an exception is thrown during the execution of one of the normal child nodes, the 'Catch' nodes are tested for whether they are able to catch that exception. The first one found is executed and the 'Try' will be exited normally afterwards without continuing with the execution of the normal child nodes and without passing the exception on. If no matching 'Catch' is found, the exception will terminate the 'Try' immediately (almost, see below) and be passed onto the 'Try's' parent. A possible 'Else' child node at the end of a try node will be executed, if and only if no 'Catch' nodes had been executed. This means, it is executed, when no exception in the try block was thrown. If the 'Try' has a 'Finally' child node, this node will be executed just before the 'Try' finishes, no matter whether an exception is thrown and whether it is handled or not. |
Contained in: All kinds of sequences.
Children: Any executable node, followed by an arbitrary number of 'Catch' nodes with an optional 'Else' node and/or an optional 'Finally' node at the end.
Execution: The 'Variable definitions' of the 'Try' are bound and its normal child nodes executed one by one. If an exception is thrown, execution of the normal children is terminated. If a 'Catch' node with a matching 'Exception class' is found it is executed. Before exiting the 'Try' its 'Finally' node is executed unconditionally. After unbinding the 'Variable definitions', the 'Try' is either exited cleanly if no exception was thrown or the exception was caught, or it passes on the uncaught exception.
Attributes:
Figure 41.31: 'Try' attributes |
The name of a sequence is a kind of short description. It is displayed in the tree view, so it should be concise and say something about the function of the sequence.
Variable: No
Restrictions: None
This is where you define the values of the variables that remain bound during the execution of the sequence's child nodes (see chapter 6). See subsection 2.2.5 about how to work with the table.
Variable: Variable names no, values yes
Restrictions: None
When a warning, error or exception occurs during a test run, the state of the corresponding node of the run log is set accordingly. This state is normally propagated to the parent node in a way that ensures that the error state of a run log node represents the worst of its child nodes' states. Using this attribute, the maximum error state that the run log node for a sequence will propagate, can be limited.
Note This value has no effect on the way exceptions
are handled. It only affects the error states of the run log nodes and
by that the exit code of QF-Test when run in batch mode
(see. section 1.7). It also has no effect on the
creation of compact run logs (see command line argument
-compact
). The node for a sequence in which a warning, error
or exception occurs is never removed from a compact log, even if the
error is not propagated due to the setting of this attribute.
For a 'Try' node, the error state of the run log is additionally affected by the 'Maximum error level' of the 'Catch' node that handles an exception.
Variable: No
Restrictions: None
At the moment the 'QF-Test ID' attribute has no meaning for this type of node.
Variable: No
Restrictions: Must not contain any of the characters '\', '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
A 'Catch' is a special 'Sequence' that can only be placed inside a 'Try' node or a 'Dependency'. Its job is to catch exceptions that may arise during the execution of a 'Try's' or a 'Test case' with a 'Dependency'. A 'Catch' can handle an exception if the class of the exception is the same as the 'Catch' node's 'Exception class' attribute or a derived class thereof, just as in Java. |
Contained in:'Try', 'Dependency'
Children: Any
Execution: The 'Variable definitions' of the 'Catch' are bound and its child nodes executed one by one. After the execution of the last child is complete, the variables are unbound again.
Attributes:
Figure 41.32: 'Catch' attributes |
This ComboBox lets you select the class of the exception
that is to be caught. All QF-Test exceptions are derived from
the class TestException
. For details about the possible
exceptions see chapter 42.
Variable: No
Restrictions: None
You can further qualify the exception to catch by specifying a message to look for.
If this attribute is empty, all exceptions of the specified class are caught.
Otherwise it is compared to exception.getMessage()
and the exception is
caught only in case of a match.
Variable: Yes
Restrictions: Valid regexp if required.
If this attribute is set, the exception message is matched against a regexp (see section 48.3) instead of comparing plain strings.
Variable: Yes
Restrictions: None
Most exceptions have two kinds of error message: The raw message is typically some short English text whereas the localized message contains more details and is either English or German, depending on the current language settings of QF-Test. Both are shown in the run log. If this attribute is set, the localized exception message is used for comparison, otherwise the raw message. The latter is usually preferable as it doesn't depend on language settings so no regexp is needed in order to ensure the correct handling of the different languages.
Variable: Yes
Restrictions: None
The name of a sequence is a kind of short description. It is displayed in the tree view, so it should be concise and say something about the function of the sequence.
Variable: No
Restrictions: None
This is where you define the values of the variables that remain bound during the execution of the sequence's child nodes (see chapter 6). See subsection 2.2.5 about how to work with the table.
Variable: Variable names no, values yes
Restrictions: None
In contrast to the 'Maximum error level' of other sequences, this attribute does not determine the error state propagated by the run log node for the 'Catch' node itself, but for the log of its parent 'Try' node, provided that the 'Catch' is executed in order to handle an exception.
The error state for any warnings, errors or exceptions that happen during the execution of the 'Catch' node are not limited by the setting of this attribute. Otherwise problems occurring during exception handling might accidentally go unnoticed.
Variable: No
Restrictions: None
At the moment the 'QF-Test ID' attribute has no meaning for this type of node.
Variable: No
Restrictions: Must not contain any of the characters '\', '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
A 'Finally' node, which can only be placed at the end of a 'Try' node, will always be executed as the last thing just before exiting the 'Try', no matter what happened there. This is used primarily to ensure that cleanup code like removing a temporary file or terminating a process is executed under any conditions. |
Contained in:'Try'
Children: Any
Execution: The 'Variable definitions' of the 'Finally' are bound and its child nodes executed one by one. After the execution of the last child is complete, the variables are unbound again.
Attributes:
Figure 41.33: 'Finally' attributes |
The name of a sequence is a kind of short description. It is displayed in the tree view, so it should be concise and say something about the function of the sequence.
Variable: No
Restrictions: None
This is where you define the values of the variables that remain bound during the execution of the sequence's child nodes (see chapter 6). See subsection 2.2.5 about how to work with the table.
Variable: Variable names no, values yes
Restrictions: None
When a warning, error or exception occurs during a test run, the state of the corresponding node of the run log is set accordingly. This state is normally propagated to the parent node in a way that ensures that the error state of a run log node represents the worst of its child nodes' states. Using this attribute, the maximum error state that the run log node for a sequence will propagate, can be limited.
Note This value has no effect on the way exceptions
are handled. It only affects the error states of the run log nodes and
by that the exit code of QF-Test when run in batch mode
(see. section 1.7). It also has no effect on the
creation of compact run logs (see command line argument
-compact
). The node for a sequence in which a warning, error
or exception occurs is never removed from a compact log, even if the
error is not propagated due to the setting of this attribute.
Variable: No
Restrictions: None
At the moment the 'QF-Test ID' attribute has no meaning for this type of node.
Variable: No
Restrictions: Must not contain any of the characters '\', '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
If you need to handle an exceptional situation, you can use this node to throw an explicit Exception. |
Contained in: All kinds of sequences.
Children: None
Execution:
A UserException
is thrown, its message taken from the
'Exception message' attribute.
Attributes:
Figure 41.34: 'Throw' attributes |
An arbitrary message for the UserException
to throw.
Variable: Yes
Restrictions: Must not be empty.
At the moment the 'QF-Test ID' attribute has no meaning for this type of node.
Variable: No
Restrictions: Must not contain any of the characters '\', '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
An exception that was caught by a 'Catch' node can be
thrown again with the help of a 'Rethrow' node. This is
especially useful if you need to catch all kinds of exceptions
except one. To handle that case, create a 'Try' node with
a 'Catch' for the special exception followed by a
'Catch' for a |
Contained in: All kinds of sequences. The 'Rethrow' node doesn't have to be placed directly below a 'Catch' node.
Children: None
Execution:
The last exception caught by a 'Catch' node is thrown
again. If no such exception exists, a CannotRethrowException
is thrown.
Attributes:
Figure 41.35: 'Rethrow' attributes |
At the moment the 'QF-Test ID' attribute has no meaning for this type of node.
Variable: No
Restrictions: Must not contain any of the characters '\', '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
Server side scripts are executed by an interpreter (Jython, Groovy or JavaScript) embedded into QF-Test. Scripting is explained in chapter 11 and chapter 49. As server side scripts run embedded to QF-Test those scripts cannot interact with the SUT. It is recommended that Server side scripts be used for cases that work without the SUT or time consuming operations like accessing databases or files. |
Contained in: All kinds of sequences.
Children: None
Execution: The script is executed by an embedded interpreter.
Attributes:
Figure 41.36: 'Server script' attributes |
The script to execute.
Note You may use QF-Test variables of the syntax $(var) or ${group:name}
in Jython scripts. They will be expanded before the script is passed
to the Jython interpreter. This can lead to unexpected behavior.
rc.lookup(...)
is the
preferred method in this case (see subsection 11.2.3.1 for
details).
Note In spite of syntax highlighting and automatical indentation this attribute might not be the right place to write complex scripts. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which scripts can be edited conveniently by pressing [Alt-Return] or by clicking the button. Complex scripts can also be written as separate modules which can then be imported for use in this attribute. See chapter 49 for details.
Variable: Yes
Restrictions: Valid syntax
This dropdown menu contains a list of useful template scripts. The available templates will differ depending on the chosen script type and interpreter.
When you choose one of these templates, the current contents of your script will be replaced.
You can add your own templates to this menu by choosing "Open user templates directory" and placing your template files there. The following file types are valid:
This attribute determines the interpreter in which to run the script, or in other words, the scripting language to use. Possible values are "Jython", "Groovy" and "JavaScript".
Variable: No
Restrictions: None
The name of a script is a kind of short description. It is displayed in the tree view, so it should be concise and say something about the function of the script.
Variable: No
Restrictions: None
At the moment the 'QF-Test ID' attribute has no meaning for this type of node.
Variable: No
Restrictions: Must not contain any of the characters '\', '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
Client side scripts are executed by an interpreter (Jython, Groovy or JavaScript) that QF-Test embeds into the SUT. Scripting is explained in chapter 11 and chapter 49. As client side scripts run in the SUT you should use them to access the components and properties of the SUT. |
Contained in: All kinds of sequences.
Children: None
Execution: The script is executed inside the SUT by an embedded interpreter.
Attributes:
Figure 41.37: 'SUT script' attributes |
The name of the SUT client process in which to execute the script.
Variable: Yes
Restrictions: Must not be empty.
The script to execute.
Note You may use QF-Test variables of the syntax $(var) or ${group:name}
in Jython scripts. They will be expanded before the script is passed
to the Jython interpreter. This can lead to unexpected behavior.
rc.lookup(...)
is the
preferred method in this case (see subsection 11.2.3.1 for
details).
Note In spite of syntax highlighting and automatical indentation this attribute might not be the right place to write complex scripts. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which scripts can be edited conveniently by pressing [Alt-Return] or by clicking the button. Complex scripts can also be written as separate modules which can then be imported for use in this attribute. See chapter 49 for details.
Variable: Yes
Restrictions: Valid syntax
This dropdown menu contains a list of useful template scripts. The available templates will differ depending on the chosen script type and interpreter.
When you choose one of these templates, the current contents of your script will be replaced.
You can add your own templates to this menu by choosing "Open user templates directory" and placing your template files there. The following file types are valid:
This attribute determines the interpreter in which to run the script, or in other words, the scripting language to use. Possible values are "Jython", "Groovy" and "JavaScript".
Variable: No
Restrictions: None
The GUI engine in which to execute the script. Only relevant for SUTs with more than one GUI engine as described in chapter 44.
Variable: Yes
Restrictions: See chapter 44
The name of a script is a kind of short description. It is displayed in the tree view, so it should be concise and say something about the function of the script.
Variable: No
Restrictions: None
At the moment the 'QF-Test ID' attribute has no meaning for this type of node.
Variable: No
Restrictions: Must not contain any of the characters '\', '#', '$', '@', '&', or '%' or start with an underscore ('_').
These attributes cause a delay before or after the execution of the node. If a value is empty, the Default delay from the global options is used.
Variable: Yes
Restrictions: Valid number >= 0
Here you can enter a comment that explains the purpose of this node. This is the preferred way of documenting the test suite.
Note For detailed documentation, especially for 'Test set', 'Test case' or 'Procedure' nodes, this text area might not be the right place. There are many excellent editors that are much better suited to this task. The option External editor command lets you define an external editor in which comments can be edited conveniently by pressing [Alt-Return] or by clicking the button.
You can trigger special behaviors of some nodes using doctags, please see Doctags.
If you enter text in the comment field of a 'Component' node, the node will be considered as 'used' when you want to mark or delete unused components.
Variable: Yes
Restrictions: None
Last update: 12/4/2024 Copyright © 1999-2024 Quality First Software GmbH |