34.7 Processes

In order to enable QF-Test to communicate with the SUT, the SUT's process must be started by QF-Test. For details about how the application is started by QF-Test and which kind of node is most applicable in your case, see "Running an application from QF-Test".

The following nodes are used to start or stop processes, to wait for a connection with the SUT or to wait for the termination of a process and check its exit value. The number of concurrent processes managed by QF-Test is limited only by the underlying system, but you have to assign a unique name to each process by which other nodes will identify it.

We will refer to processes run by QF-Test as clients. QF-Test distinguishes between two types of clients: arbitrary processes that are simply started and stopped and SUT clients, the actual Java applications that QF-Test interacts with.

Standard input and output of a client is redirected to a terminal that you can open from the »Clients« menu. The client's output is also stored in the log of a test run.

34.7.1 Start process

To run an arbitrary program during a test, you can either use this node or an Execute shell command node. This node is preferable if you need to pass possibly complex arguments to the executable.

Contained in: All kinds of sequences.

Children: None

Execution: The command line for the program is built from the attributes and the process is started. Its input and output are redirected to QF-Test.

Attributes:

Start process attributes
Figure 34.38:  Start process attributes
Client

This is the identifier for the SUT client. It must remain unique as long as the process is alive. Other nodes will refer to the client by this name.

Variable: Yes

Restrictions: Must not be empty

Executable

The program to run. If the executable file is not located in a directory on the PATH you must give the full path name.

The "Select file" button [Select file] brings up a dialog in which you can select the program file interactively. You can also get to this dialog by pressing Shift⁠+⁠Return or Alt⁠+⁠Return, when the focus is in the text field.

Variable: Yes

Restrictions: Must not be empty

Directory

Here you can set the working directory for the program here. If you leave this value empty, the program will inherit QF-Test's working directory.

The "Select directory" button [Select directory] brings up a dialog in which you can select the directory interactively. You can also get to this dialog by pressing Shift⁠+⁠Return or Alt⁠+⁠Return, when the focus is in the text field.

Note This directory will become the working directory of the newly started process. It does not affect the working directory of QF-Test. As a result, a program named, say, ./startserver will be looked up relative to QF-Test's working directory and not the directory given. Only the path names referred to in the program itself will be resolved relative to the given directory.

Variable: Yes

Restrictions: Must be empty or an existing directory

Executable parameters

The command line arguments for the executable. Put each parameter on a line of its own. Special quoting of whitespace or symbols is not required.

By default, empty parameters will be ignored. In case you explicitly want to pass an empty command line argument (i.e. ''), you can deactivate the option Ignore empty argument lines when starting a client .

If the value in one a line is expanded from a variable to a List or an Array, then every element of the object is used as a separate parameter.

See "Tables" about how to work with the tables.

Variable: Yes

Restrictions: None

QF-Test ID

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 ('_').

Delay before/after

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

Comment

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 External editor 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

34.7.2 Execute shell command

This node is a convenient way to execute shell commands during a test. The shell that will execute the command can be specified with the command line arguments -shell <executable> and -shellarg <argument> for QF-Test. The default for Linux is /bin/sh, on Windows either command.com or cmd.exe is used, the value of the COMSPEC environment variable.

When the shell is started it is treated like every other process started by QF-Test, so you can kill it or wait for it to terminate and check its exit code.

Contained in: All kinds of sequences.

Children: None

Execution: A shell is started to execute the command. Its input and output are redirected to QF-Test.

Attributes:

Execute shell command attributes
Figure 34.39:  Execute shell command attributes
Client

This is the identifier for the SUT client. It must remain unique as long as the process is alive. Other nodes will refer to the client by this name.

Variable: Yes

Restrictions: Must not be empty

Shell command

The command to execute in the shell. Enter this just as you would at the command prompt.

WindowsOn Windows systems, quoting of arguments with blanks can be a little tricky. If you're using the standard Windows shell, simply use double quotes as always, for example dir "C:\Program Files". If you're using a Linux shell on Windows by specifying the -shell <executable> command line argument, use single quotes instead, i.e. ls 'C:/Program Files'.

Variable: Yes

Restrictions: Must not be empty

Directory

Here you can set the working directory for the shell. If you leave this value empty, the shell will inherit QF-Test's working directory.

The "Select directory" button [Select directory] brings up a dialog in which you can select the directory interactively. You can also get to this dialog by pressing Shift⁠+⁠Return or Alt⁠+⁠Return, when the focus is in the text field.

Variable: Yes

Restrictions: Must be empty or an existing directory

QF-Test ID

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 ('_').

Delay before/after

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

Comment

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 External editor 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

Android34.7.3 Launch Android emulator

Use the node to start an Android emulator and connect to it. Quickstart your application helps you to set up a sequence for launching the emulator and starting an app along with the appropriate waiter nodes.

Please have a look at "Android application testing" for detailed information on testing of Android apps.

Attributes:

Android emulator starter attributes
Figure 34.40:  Launch Android emulator attributes
Client

This is the identifier for the SUT client. It must remain unique as long as the process is alive. Other nodes will refer to the client by this name.

Variable: Yes

Restrictions: Must not be empty

Name of the Android emulator to use

The name of the emulator to be used, as shown, for example, in the Android Virtual Device Manager in the column 'Name' (see Android studio screen showing available AVDs). Using the variable deviceName you do not need to hardcode it here.

Note In case you want to use an emulator created after you started QF-Test it may not be showing in the drop down list. Then, just type the name in the text field.

Variable: Yes

Restrictions: Must not be empty

Executable parameters

QF-Test communicates with the emulator via a Java program started additionally to the emulator, running in the background. Here, you can specify parameters for that Java program. Put each parameter on a line of its own. Special quoting of whitespace or symbols is not required. Sample: -Xmx1G to assign 1 GB memory to the Java program.

By default, empty parameters will be ignored. In case you explicitly want to pass an empty command line argument (i.e. ''), you can deactivate the option Ignore empty argument lines when starting a client .

If the value in one a line is expanded from a variable to a List or an Array, then every element of the object is used as a separate parameter.

See "Tables" about how to work with the tables.

Variable: Yes

Restrictions: None

Emulator arguments

The command line arguments for the emulator to be launched, for example -no-snapshot-save. Put each parameter on a line of its own. Special quoting of whitespace or symbols is not required.

By default, empty arguments will be ignored. In case you explicitly want to pass an empty command line argument (i.e. ''), you can deactivate the option Ignore empty argument lines when starting a client .

If the value in one a line is expanded from a variable to a List or an Array, then every element of the object is used as a separate parameter.

See "Tables" about how to work with the tables.

Variable: Yes

Restrictions: None

QF-Test ID

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 ('_').

Delay before/after

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

Comment

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 External editor 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

Android34.7.4 Connect to Android device

The node connects to a running Android emulator or a real device. Quickstart your application helps you to set up a sequence for connecting to an Android device, either emulator or real, and starting an app along with the appropriate waiter nodes.

Please have a look at "Android application testing" for detailed information on testing of Android apps.

Attributes:

Connect to Android device Attributes
Figure 34.41:  Connect to Android device Attributes
Client

This is the identifier for the SUT client. It must remain unique as long as the process is alive. Other nodes will refer to the client by this name.

Variable: Yes

Restrictions: Must not be empty

Name of the Android device to use

The name of a real Android device attached to the computer or the emulator. The available names are shown in the drop down list. Alternatively, you will find them via the menu item »Running Android Devices« in the menu »Extras«.

You do not need to hardcode the name if you use the variable deviceName instead.

Note In case you want to use a real Android device attached to the computer after you started QF-Test it may not be showing in the drop down list. Then, just type the name in the text field. The same applies to an emulator you created after you started QF-Test.

Variable: Yes

Restrictions: Must not be empty

Executable parameters

QF-Test communicates with the real device, respectively the emulator, via a Java program started additionally to the emulator, running in the background. Here, you can specify parameters for that Java program. Put each parameter on a line of its own. Special quoting of whitespace or symbols is not required. Sample: -Xmx1G to assign 1 GB memory to the Java program.

By default, empty parameters will be ignored. In case you explicitly want to pass an empty command line argument (i.e. ''), you can deactivate the option Ignore empty argument lines when starting a client .

If the value in one a line is expanded from a variable to a List or an Array, then every element of the object is used as a separate parameter.

See "Tables" about how to work with the tables.

Variable: Yes

Restrictions: None

QF-Test ID

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 ('_').

Delay before/after

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

Comment

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 External editor 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

iOS34.7.5 Connect to iOS device

The node attaches QF-Test to a physically connected or a simulated iOS device. If required, the Simulator is started as well. Quickstart your application helps you to set up a sequence for checking the iOS test sysstem requirements, connecting to an iOS device and starting an app, along with the appropriate waiter nodes.

Please have a look at "iOS application testing" for detailed information on testing of iOS apps.

Attributes:

'Connect to iOS device' attributes'
Figure 34.42:  Connect to iOS device Attributes
Client

This is the identifier for the SUT client. It must remain unique as long as the process is alive. Other nodes will refer to the client by this name.

Variable: Yes

Restrictions: Must not be empty

Name of (simulated) iOS device

The name of a real iOS device attached to the computer or a simulated iOS device. QF-Test will try to find the best match for the given name with the available devices, so to run with any (simulated) iPhone, it is enough to simply put the string iPhone here.

You do not need to hardcode the name if you use the variable deviceName instead.

Variable: Yes

Restrictions: Must not be empty

Executable parameters

QF-Test communicates with the iOS device using a Java-based controller application. Here, you can specify parameters for that Java program. Put each parameter on a line of its own. Special quoting of whitespace or symbols is not required. Sample: -Xmx1G to assign 1 GB memory to the Java program.

By default, empty parameters will be ignored. In case you explicitly want to pass an empty command line argument (i.e. ''), you can deactivate the option Ignore empty argument lines when starting a client .

If the value in one a line is expanded from a variable to a List or an Array, then every element of the object is used as a separate parameter.

See "Tables" about how to work with the tables.

Variable: Yes

Restrictions: None

QF-Test ID

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 ('_').

Delay before/after

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

Comment

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 External editor 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

34.7.6 Wait for client to connect

This node is used to make sure that the connection to a client is established. If after a configurable timeout the client is still not connected, a ClientNotConnectedException is thrown. You can also use the Variable for result attribute to store the result into a variable and the Throw exception on failure attribute to suppress the exception.

Contained in: All kinds of sequences.

Children: None

Execution: QF-Test waits until either the connection to the Java client is established or the timeout is up.

Attributes:

Wait for client to connect attributes
Figure 34.43:  Wait for client to connect attributes
Client

The name of the Java client to wait for.

Variable: Yes

Restrictions: Must not be empty

Timeout

Time limit in milliseconds.

Variable: Yes

Restrictions: >= 0

GUI engine

The GUI engine to wait for. Only relevant for SUTs with more than one GUI engine as described in "GUI engines".

Variable: Yes

Restrictions: See "GUI engines"

Variable for result

This optional attribute determines the name for the result variable of the action. If set, the respective variable will be set to 'true' for a successful check or wait and to 'false' in case of failure.

Note If this attribute is set, the attribute Error level of message is ignored and no error is reported. The attribute Throw exception on failure always remains effective, so it is possible to set a result variable and still throw an exception.

Variable: Yes

Restrictions: None

Local variable

This flag determines whether to create a local or global variable binding. If unset, the variable is bound in the global variables. If set, the topmost current binding for the variable is replaced with the new value, provided this binding is within the context of the currently executing Procedure, Dependency or Test case node. If no such binding exists, a new binding is created in the currently executing Procedure, Dependency or Test case node or, if there is no such node in the topmost node on the variables stack, falling back to the global bindings if necessary. See "Variables" for a detailed explanation of variable binding and lookup.

In order to predefine the option use Enable 'Local variable' attribute by default.

Variable: No

Restrictions: None

Error level of message

This attribute determines the error level of the message that is logged in case of failure. Possible choices are message, warning and error.

Note If the attribute Throw exception on failure is set, this attribute is irrelevant and if Variable for result is set this attribute is ignored.

Variable: No

Restrictions: None

Throw exception on failure

Throw an exception in case of failure. For 'Check...' nodes a CheckFailedException is thrown, for 'Wait for...' nodes the respective specific exception.

Variable: No

Restrictions: None

QF-Test ID

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 ('_').

Delay before/after

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

Comment

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 External editor 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

34.7.7 Wait for mobile device

This node is used to make sure that the connection to a virtual or real Android device has been established. If after a configurable timeout, the Android device still has not been connected a ClientNotConnectedException is thrown. If QF-Test detects before the end of the timeout that a connection cannot be established it will throw a ConnectionFailureException.

Contained in: All kinds of sequences.

Children: None

Execution: QF-Test waits until either the connection to the emulator or the real device has been established or the timeout is up.

Attributes:

Wait for mobile client attributes
Figure 34.44:  Wait for mobile device Attributes
Client

The name of the Android or iOS client to wait for.

Variable: Yes

Restrictions: Must not be empty

Timeout

Time limit in milliseconds.

Variable: Yes

Restrictions: >= 0

QF-Test ID

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 ('_').

Delay before/after

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

Comment

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 External editor 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

34.7.8 Launch a mobile app

Use the node to install and start a mobile app. Quickstart your application helps you to set up a sequence for launching the emulator/simulator - or attaching to a real Android or iOS device or running emulator/simulator - and starting an app along with the appropriate waiter nodes.

Please have a look at "Android application testing" for detailed information on testing of mobile apps.

Attributes:

Mobile application starter attributes
Figure 34.45:  Launch a mobile app attributes
Client

This is the identifier for the SUT client. It must remain unique as long as the process is alive. Other nodes will refer to the client by this name.

Variable: Yes

Restrictions: Must not be empty

APK/APP/IPA file path

The path of the mobile app to use. If you want to specify the path relative to the test suite, use the variable ${qftest:suite.dir} (cf. "Special groups"). Sample: ${qftest:suite.dir}/apps/myapp.apk.

In case the app has been preinstalled and the .apk/.app/.ipa file is not available you can start the app via the attributes Package / Bundle ID und Activity (only for Android).

Variable: Yes

Restrictions: Must not be empty

Force app reinstallation

Select the attribute to install the app in any case, irrespective of an existing installation of the app on the Android emulator, the iOS simulator or real device.

Note Whether the reinstallation will delete existing settings and data of the app depends on the place where they have been saved.

Variable: No

Restrictions: None

Launch app

Select the attribute to start the app.

Variable: No

Restrictions: None

Package / Bundle ID

The package name of the Android app or the bundle id of the iOS app to be launched. Only required in case the .apk/.app/.ipa file cannot be specified with the attribute APK/APP/IPA file path. You also need to specify the attribute Activity (only for Android). You can either use the Android Debug Bridge to get the package name or launch or attach to an Android emulator or real device, start the app manually and record a component. The package name will then be recorded in the top level node of the component hierarchy.

Variable: Yes

Restrictions: None

Activity (only for Android)

The activity name of the Android app to be launched. Only required in case the .apk file cannot be specified with the attribute APK/APP/IPA file path. You also need to specify the attribute Package / Bundle ID. You can use the Android Debug Bridge to get the activity name.

Variable: Yes

Restrictions: No

QF-Test ID

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 ('_').

Delay before/after

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

Comment

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 External editor 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

34.7.9 Stop client

This node forcibly terminates a client process started by QF-Test. If the process has already terminated, nothing is changed. Otherwise, if the client is an SUT client, QF-Test first tries to call the Java method System.exit(-1) in the SUT to achieve a clean shutdown. If the client is not an SUT client or the process is still alive after the exit call, the process is killed and its exit code is set to -1.

WindowsNote: On Windows child processes started by a process are not terminated when the parent process is killed. As explained in "Running an application from QF-Test", the java program for the SUT is not started directly by QF-Test, but through an intermediate program. This means that when the System.exit(-1) call fails to terminate the SUT for some reason, the process for the SUT's Java VM will be left hanging around.

Contained in: All kinds of sequences.

Children: None

Execution: Terminates the last process that was started under the given name.

Attributes:

Stop client attributes
Figure 34.46:  Stop client attributes
Client

The client name of the process that is to be killed.

Variable: Yes

Restrictions: Must not be empty

QF-Test ID

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 ('_').

Delay before/after

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

Comment

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 External editor 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

34.7.10 Wait for process to terminate

This node waits until a process that was started by QF-Test terminates. If a given time limit is exceeded and the process is still alive. Per default a ClientNotTerminatedException is thrown. Otherwise the client's exit code is read and tested against a given value. You can also use the Variable for result attribute to store the result into a variable and the Throw exception on failure attribute to suppress the exception.

Contained in: All kinds of sequences.

Children: None

Execution: Waits for the end of a process and checks its exit value unless the timeout is exceeded.

Attributes:

Wait for process to terminate attributes
Figure 34.47:  Wait for process to terminate attributes
Client

The client name of the process to wait for.

Variable: Yes

Restrictions: Must not be empty

Timeout

Time limit in milliseconds.

Variable: Yes

Restrictions: >= 0

Expected exit code

If this attribute is set it is used to validate the exit code of the process. The type of the comparison is defined by prepending one of the four operators ==, !=, < and >. Just a number without preceding operation test for equality. If the test fails, an UnexpectedExitCodeException is thrown. The exception won't be thrown, if the attribute Throw exception on failure is not set.

Examples: If this attribute is set to 0, every exit code that is not 0 causes an exception. This is the same as for ==0. A value of >0 causes an exception for every exit code equal to or less than 0. This exception can be suppressed by un-checking the attribute Throw exception on failure.

Variable: Yes

Restrictions: See above

Variable for result

This optional attribute determines the name for the result variable of the action. If set, the respective variable will be set to 'true' for a successful check or wait and to 'false' in case of failure.

Note If this attribute is set, the attribute Error level of message is ignored and no error is reported. The attribute Throw exception on failure always remains effective, so it is possible to set a result variable and still throw an exception.

Variable: Yes

Restrictions: None

Local variable

This flag determines whether to create a local or global variable binding. If unset, the variable is bound in the global variables. If set, the topmost current binding for the variable is replaced with the new value, provided this binding is within the context of the currently executing Procedure, Dependency or Test case node. If no such binding exists, a new binding is created in the currently executing Procedure, Dependency or Test case node or, if there is no such node in the topmost node on the variables stack, falling back to the global bindings if necessary. See "Variables" for a detailed explanation of variable binding and lookup.

In order to predefine the option use Enable 'Local variable' attribute by default.

Variable: No

Restrictions: None

Error level of message

This attribute determines the error level of the message that is logged in case of failure. Possible choices are message, warning and error.

Note If the attribute Throw exception on failure is set, this attribute is irrelevant and if Variable for result is set this attribute is ignored.

Variable: No

Restrictions: None

Throw exception on failure

Throw an exception in case of failure. For 'Check...' nodes a CheckFailedException is thrown, for 'Wait for...' nodes the respective specific exception.

Variable: No

Restrictions: None

QF-Test ID

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 ('_').

Delay before/after

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

Comment

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 External editor 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