2017 October Release

How to Record a Test using the Control TreePermanent link for this heading

In the control tree that is displayed in the "Editor Area" view of Fabasoft app.test you can record statements. The following statements can be recorded:

  • Execution
  • Set statement
  • Validation

The control tree contains all elements/controls displayed in the Fabasoft app.test Client Adaptor that has opened when starting the Fabasoft app.test Recorder. The elements of the control tree are described in chapter “Location Syntax”.

All tabs shown in this view are useful for recording statements.

  • On the "Recorder" tab the control tree is shown where you can record statement.
  • On the "Source" tab you can view the source code (XML) of the test file.
  • On the "Test Parameters" tab you can see all parameters that have been set within the test (by using set statements).
  • On the "System Parameters" tab all parameters set by the system are listed.
  • On the "Translation Table" tab the language key/value pairs currently loaded are listed.

You can find detailed information about these tabs in chapter “Views in Fabasoft app.test”.

Execution StatementPermanent link for this heading

An execution statement carries out a step within the Fabasoft Folio client, Mindbreeze Enterprise Search client or Liferay Portal, such as clicking a button or entering a value into an input field.
An execution can be added in the following elements:

  • Sequence
  • Use Case
  • Context

The position of the newly created execution in the test file depends on what element is selected in the "Outline" view (see chapter “Position of Newly Inserted Elements in the "Outline" View”).

To create an execution for a control, open the context menu of the control in the control tree and click "Execution".

Input FieldsPermanent link for this heading

A dialog box opens where you can enter the properties for the execution to be carried out.
Set the necessary input fields and click "OK" for carrying out the statement and adding the execution to the test file.

Field Name

Description

if

In the if field you can enter a condition. The execution is only carried out if the condition returns true.

action

In the action field you can select the action that should be carried out. Only these actions are offered that can be carried out within the selected control (except the "Delay" and the "Screenshot" action which are not executed on a control).

location

This field contains the path to the control where the action should be executed. This field is set per default to the control that has been selected in the control tree. The field remains empty if no action can be carried out on the control.
You can also use wild cards in locations (see chapter “How to Use Wild Cards”).

value

If a control should be set to a specific value (e.g. an input field) this value is entered into the value field.
The first field can be used for entering single-line values, in the second one multi-line values can be entered.

filename

If you import a file into Fabasoft app.test by entering the path to this file into the "File" control of the web browser (see chapter "File" Control of the Web Browser”), you have to enter the path into the filename field.

options

In this field additional options can be entered e.g. if a key should be pressed additionally. The possible options can also be found in the context menu of this field.

ok

In the ok field you can specify if an error (see chapter “Modifier Key Options”) should occur on the web server if the execution is carried out.

After clicking "OK" the execution is carried out and the statement is added to the test file. You can see the newly added statement in the "Outline" view.

Execution in the "Properties" viewPermanent link for this heading

An execution can be edited after adding it to the test in the "Properties" view. Therefore, select the execution statement in the "Outline" view. Its properties are shown in the "Properties" view. You can change the execution by changing the values in the Value field next to the corresponding Property field.

Quick Recording of an ExecutionPermanent link for this heading

You can also record executions (where no value or options are needed) more quickly by opening the context menu of the corresponding control and clicking the desired action. If additional information is needed, the dialog box with the input fields is opened. Otherwise, the execution is carried out and added immediately.

Note: If you want to carry out an action on a row (or a cell), all ways for identifying the controls are shown (call the row per index, per entry in a cell or "LAST" if it is the last row of the list).

Possible Actions in an Execution StatementPermanent link for this heading

These actions can possibly be executed in Fabasoft app.test test files:

  • Delay
  • Screenshot
  • Click
  • Doubleclick
  • Contextmenu
  • Set
  • Import
  • Quicksearch
  • Close
  • Keypress

"Delay" ActionPermanent link for this heading

The "Delay" action offers the possibility to insert a delay (in milliseconds) between two executions. To do this, select the "Delay" action in the Action field and enter the number of milliseconds into the Value field.

Please note that the delay is carried out immediately (when adding the execution) so you have to wait the defined time until you can continue recording statements.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Delay" value="3000" />

"Screenshot" ActionPermanent link for this heading

By using the "Screenshot" action you can save a screenshot of the currently shown user interface in the Fabasoft app.test Client Adaptor. The path and the name of the file that should be saved are entered into the Value field. A screenshot is saved as a PNG-file. You can either create a screenshot of the browser window or of the whole desktop. This is specified by entering "Window" or "Desktop" into the Options field.

Within each project a folder "Screenshots" is offered where you can save the screenshots you created within your test. The path to this folder is saved in the system parameter screenshots, which can be referenced by using {~screenshots~}. The advantage of using the "Screenshots" folder is that it exists in each project. If the project is used by another person at another computer, the folder exists, too.

If you do not specify an absolute path respectively using the {~screenshots~} system parameter the screenshot will be stored into the current report directory.

If a screenshot file already exists, a new file with an increased index will be created.

Note that in several cases like the browser renders a PDF document inside and taking a screenshot with the option “Window” (default), the screenshot may remain black or white. Screenshotting hardware accelerated parts of a window is not supported by Fabasoft app.test. Use the option “Desktop” instead.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Screenshot" value="{~screenshots~}DesktopScreenshot" options="Desktop" />

The system parameter {~screenshots~} can be set via the attribute screenshotpath in the configuration element Reporting (Console player: "-Reporting.screenshotpath:<path>")

"Click" ActionPermanent link for this heading

The "Click" action is used for clicking on a control which means for the following executions:

Change the Portal PagePermanent link for this heading

If you want to change the portal page, you have to click on it.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Click" location="HEADER.PORTALS.Desktop" />

Click a ButtonPermanent link for this heading

You can of course click a button.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Click" location="PAGES.Explore.Object List.BUTTONBAR.New" />

Export a FilePermanent link for this heading

If you click the "Export" button in the "Tools" menu, you can export files.

This export can also be recorded (and executed) in Fabasoft app.test. Therefore, you have to define where the file should be exported to as well as the button that should be clicked in the "File Download" dialog.

Enter the path the file should be exported to into the Value field. In the system parameter exportdocs (see chapter “List of All System Parameters”) the path to the "ExportDocs" folder of the project is saved. Exported files should always be exported to the "ExportDocs" folder because if the project is transfered to another computer, folders outside of the project might not exist which might lead to errors. The "ExportDocs" folder exists in each project.

In the Options field you can define which button should be clicked in the "File Download" dialog. These buttons are available:

  • Open (only Microsoft Internet Explorer)
  • Save
  • Cancel

These options can also be found in the context menu of the Options field.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Click" location="MENU.Export" value="{~exportdocs~}Fabasoft app.test.docx" options="Save" />

Open a MenuPermanent link for this heading

For opening a menu you have to click it.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Click" location="PAGES.Explore.Object List.MENUBAR.Object" />

Change the TabPermanent link for this heading

Click on a tab for switching to it.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Click" location="PAGES[0].TABS.Address" />

Select an Option of a Drop-Down BoxPermanent link for this heading

You can set a drop-down box to a specific value by selecting the option with a click.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Click" location="PAGES.Explore.Sex[0].Female" />

Select a RowPermanent link for this heading

If you want to select a row (or a cell) in a list, you also click it.
You have several options for selecting a row (or a cell) which can be selected in the Location field. You can select a row

  • by the entry in a cell (Syntax <list name>["<column name>"=="<text in the cell>"]).
  • by its index (Syntax <list name>[<index>]).
  • by using LAST for selecting the last row of the list (Syntax <list name>[LAST]).

This is the statement in the source code of a test file (XML):

Example

<Execution action="Click" location="PAGES.Explore.Object List[LAST]" />

Select a Node in the TreePermanent link for this heading

A node in a tree can be opened on the "Explore" page by clicking it.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Click" location="PAGES.Navigation Pane.TREE[0].MyFolder.Black Joe" />

"Doubleclick" ActionPermanent link for this heading

You click twice on objects by using the "Doubleclick" action. You can use this for objects in lists, in trees as well as in object pointer properties.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Doubleclick" location="PAGES.Explore.Object List[0]" />

"Contextmenu" ActionPermanent link for this heading

For simulating a right-click on a control (opening a context menu) the "Contextmenu" action is available.

Contextmenu of ObjectsPermanent link for this heading

You can open the context menu of an object which means:

  • Row in an object list
  • Object pointer property

This is the statement in the source code of a test file (XML):

Example

<Execution action="Contextmenu" location="PAGES.Explore.Created by" />

Contextmenu of a ColumnPermanent link for this heading

Furthermore, you can open the context menu of a column for sorting and/or grouping the elements in a list.

Note: The menu is shown at the end of the control tree in the MENU element.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Contextmenu" location="PAGES.Explore.Object List.COMLUMNS.Name" />

"Set" ActionPermanent link for this heading

The "Set" action is used for setting a control to a defined value. This action is supported on the following controls:

  • Single-line input fields
  • Multi-line input fields
  • Check boxes
  • Drop-down menus (see chapter “SELECT”)
  • Set the "File" control of the web browser for importing a file

Therefore, enter the value, the control should be set to, into the Value field.

Single-Line Input FieldPermanent link for this heading

For entering a single-line value you can use the single-line Value field.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Set" location="PAGES[0].First Name" value="Anthony" />

Multi-Line Input FieldPermanent link for this heading

For entering a multi-line value the multi-line Value field is available.
Note: If you try entering multi-line values into single-line fields, the line breaks are converted into spaces.

This is the statement in the source code of a test file (XML) - &#13;&#10; represents a line break:

Example

<Execution action="Set" location="PAGES[0].Enter Remark" value="Please remember:&#13;&#10;* Inform David Porter about the outcome&#13;&#10;* Send notification mal so Stephan Leiner" />

Check BoxPermanent link for this heading

You can also set the value of a check box by using the "Set" action. You can either enter the label texts into the Value field ("Yes", "No", "Undefined") or Boolean values ("true" or "false") - both is supported.

Note: If no label texts are offered, the check box can only be set to true and false.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Set" location="PAGES[0].Is Template" value="false" />

Drop-Down MenuPermanent link for this heading

As mentioned above you can use the "Click" action for selecting an option of a drop-down menu (by clicking the option itself).

But you can also set a drop-down menu to an option by using the "Set" action. Therefore, execute this action on the drop-down menu itself.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Set" location="PAGES[0].Address.Topic" value="Business" />

"File" Control of the Web BrowserPermanent link for this heading

In Fabasoft Folio you can import a file by selecting the path to the file in the "File" control of the web browser. This can be simulated in a Fabasoft app.test test by using the set action and setting the field to the path. Therefore, enter the path into the Filename field.

Note: You can also enter a path by opening the context menu of the Filename field and selecting "Open File".

This is the statement in the source code of a test file (XML):

Example

<Execution action="Set" location="PAGES.Explore.File" filename="{~importdocs~}Fabasoft app.test.docx" />

"Import" ActionPermanent link for this heading

Simulating the import of objects is also possible in Fabasoft app.test. You can import an object by simulating the drag-and-drop of a document onto the drag-into field (select-tool) of an object list. Therefore, the "Import" action is available.

Enter the path of the file to be imported into the Value field.

Within each project the folder "ImportDocs" is available. All files that are imported within a test should be located in this folder. If you hand the project over to another person, he/she can execute the test because all import documents are located within the project. The path to this folder (relative to the project) is saved in the system parameter importdocs. So the path to the import file is usually {~importdocs~}<filename>.
You can also select a file by opening the context menu of the Value field and clicking "Open File".

This is the statement in the source code of a test file (XML):

Example

<Execution action="Import" location="PAGES.Explore.Object List.BUTTONBAR.SelectTool" value="{~importdocs~}An Introduction to Fabasoft app.test.pdf" />

Note: If you want to import several documents at once you can also enter multiple files into the Value field (seperatey by a |).

Example

Note: The "Import" action simulates the drag-and-drop-import onto the drag-into field of an object list. If you want to import a file by entering the path into the "File" control of the web browser, you have to use a "Set" action (see chapter "Set" Action“).

This is the statement in the source code of a test file (XML):

Example

<Execution action="Import" location="PAGES.Explore.Object List.BUTTONBAR.SelectTool" value="{~importdocs~}An Introduction to Fabasoft app.test.pdf|{~importdocs~}Image.jpg|{~importdocs~}Fabasoft Folio.pdf" />

"Quicksearch" ActionPermanent link for this heading

A quick search can be performed in the drag-into field of an object list and within an object pointer property.

Note: After performing the quick search you can select a result by using either the "Set" or the "Click" action.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Quicksearch" location="PAGES.Explore.Category" value="App*" />

"Close" ActionPermanent link for this heading

The "Close" action is used for closing a window - either in the Fabasoft app.test Client Adaptor (if multiple windows are opened - the last browser window cannot be closed) or a third party product (if the context has been switched to the document that has been opened).

This is the statement in the source code of a test file (XML):

Example

<Execution action="Close" location="WINDOWS[LAST]" />

"Keypress" ActionPermanent link for this heading

The "Keypress" action is used to imitate pressing a key on the keyboard. Therefore, enter the key code (you can find a list of the key codes in chapter “Action: Keypress - List of All Keys) into the Value field. If you want to press another key at the same time, enter the code of the second key into the Options field.

The "Keypress" action can be used to

  • Imitate pressing the Return key onto an input field.

    This is the statement in the source code of a test file (XML):

Example

<Execution action="Keypress" location="PAGES.Explore.Object List.BUTTONBAR[0]" value="ReturnKey" />

  • Test the default branches of a page.


    This is the statement in the source code of a test file (XML):

Example

<Execution action="Keypress" location="PAGES.Explore" value="Escapekey" />

  • Fire key press events on the window.

    This is the statement in the source code of a test file (XML):

Example

<Execution action="Keypress" location="WINDOWS[LAST]" value="F2Key" />

Note: If two keys should be pressed at once, you have to enter the main key into the Value field and the key that is pressed additionally into the Options field (If you enter two keys into the Options field, they must be seperated by a comma, e.g. "CtrlKey, AltKey").

Example Opening the "Object" menu in Fabasoft Folio has the shortcut Alt+O. O opens the menu and the Alt key is the additional key that must be pressed. Therefore, enter OKey into the Value field and AltKey into the Options field.

This is the statement in the source code of a test file (XML):

Example

<Execution action="Keypress" location="WINDOWS[LAST]" value="OKey" options="AltKey" />

Action: Keypress - List of All KeysPermanent link for this heading

Here you can find a list of all key codes for imitating key presses in Fabasoft app.test by using the "Keypress" action.

Some keys depend on the keyboard you use (e.g. German keyboard vs. English keyboard). Here you will find "depends" in the "Key" column (e.g. the OEM4KEY is the question mark on a German keyboard).

Key Code (Text)

Key

Apple OS X Key

BACKKEY

back

back

TABKEY

Tabulator

Tabulator

RETURNKEY

Return/Enter

Return/Enter

SHIFTKEY

Shift

-

CONTROLKEY

Ctrl

-

PAUSEKEY

Pause

-

CAPITALKEY

Capital

-

ESCAPEKEY

Esc

Esc

SPACEKEY

Space

Space

PRIORKEY

Page Up

Page Up

NEXTKEY

Page Down

Page Down

ENDKEY

End

End

HOMEKEY

Pos 1

Home

LEFTKEY

left arrow

left arrow

UPKEY

up arrow

up arrow

RIGHTKEY

right arrow

right arrow

DOWNKEY

down arrow

down arrow

INSERTKEY

Ins

-

DELETEKEY

Del

-

0KEY

0

0

1KEY

1

1

2KEY

2

2

3KEY

3

3

4KEY

4

4

5KEY

5

5

6KEY

6

6

7KEY

7

7

8KEY

8

8

9KEY

9

9

AKEY

A

A

BKEY

B

B

CKEY

C

C

DKEY

D

D

EKEY

E

E

FKEY

F

F

GKEY

G

G

HKEY

H

H

IKEY

I

I

JKEY

J

J

KKEY

K

K

LKEY

L

L

MKEY

M

M

NKEY

N

N

OKEY

O

O

PKEY

P

P

QKEY

Q

Q

RKEY

R

R

SKEY

S

S

TKEY

T

T

UKEY

U

U

VKEY

V

V

WKEY

W

W

XKEY

X

X

YKEY

Y

Y

ZKEY

Z

Z

LWINKEY

left Windows key

-

RWINKEY

right Windows key

-

NUMPAD0KEY

Numbers pad: 0

Numbers pad: 0

NUMPAD1KEY

Numbers pad: 1

Numbers pad: 1

NUMPAD2KEY

Numbers pad: 2

Numbers pad: 2

NUMPAD3KEY

Numbers pad: 3

Numbers pad: 3

NUMPAD4KEY

Numbers pad: 4

Numbers pad: 4

NUMPAD5KEY

Numbers pad: 5

Numbers pad: 5

NUMPAD6KEY

Numbers pad: 6

Numbers pad: 6

NUMPAD7KEY

Numbers pad: 7

Numbers pad: 7

NUMPAD8KEY

Numbers pad: 8

Numbers pad: 8

NUMPAD9KEY

Numbers pad: 9

Numbers pad: 9

MULTIPLYKEY

Numbers pad: x

-

ADDKEY

Numbers pad: +

-

SUBTRACTKEY

Numbers pad: -

-

DECIMALKEY

Numbers pad: ,

-

DIVIDEKEY

Numbers pad: /

-

F1KEY

F1

F1

F2KEY

F2

F2

F3KEY

F3

F3

F4KEY

F4

F4

F5KEY

F5

F5

F6KEY

F6

F6

F7KEY

F7

F7

F8KEY

F8

F8

F9KEY

F9

F9

F10KEY

F10

F10

F11KEY

F11

F11

F12KEY

F12

F12

F13KEY

-

F13

F14KEY

-

F14

F15KEY

-

F15

F16KEY

-

F16

F17KEY

-

F17

F18KEY

-

F18

F19KEY

-

F19

F20KEY

-

F20

NUMLOCKKEY

Lock the number pad

-

LSHIFTKEY

left Shift key

-

RSHIFTKEY

right Shift key

-

LCONTROLKEY

left Ctrl key

-

RCONTROLKEY

right Ctrl key

-

OEM1KEY

depends

-

OEM2KEY

depends

-

OEM3KEY

depends

-

OEM4KEY

depends

-

OEM5KEY

depends

-

OEM6KEY

depends

-

OEM7KEY

depends

-

OEM8KEY

depends

-

OEMPLUS

depends

-

OEMCOMMA

depends

-

OEMMINUS

depends

-

OEMPERIOD

depends

-

Modifier Key OptionsPermanent link for this heading

Following actions support modifier key options:

  • Click
  • Keypress
  • In the Options field you can define which modidfier keys should be pressed while performing the action.
    These options are available:

Option

Meaning

CTRLKEY

Control key is pressed
(Windows, Linux and Mac)

ALTKEY

Alt key is pressed
(Windows, Linux and Mac)

SHIFTKEY

Shift key is pressed
(Windows, Linux and Mac)

CMDKEY

Command key is pressed
(Apple OS X only)

METAKEY

Folio Version >= 11.2:
Control key is pressed (Windows, Linux)
Command key is pressed (Mac)

Folio Version < 11.2:
Control key is pressed
(Windows, Linux and Mac)

How to Check if an Error OccursPermanent link for this heading

For testing corner cases you can also check if errors occur in situations where they ought to occur (e.g. if you do not have the rights to delete an object). You can therefore enter Error into the Ok field.

If you want to check if a specific error message occurs, you can type Error("<error message>") into the Ok field. In that case the execution only returns okay if the defined error message occurs. You can also use wild cards when checking error messages.

Note: If quotation marks or periods occur within the error message, they have to be escaped by putting a backslash in front of this character.

Note: If you execute the click on the "Next" button without entering anything into the Ok field the error message is displayed in the Message field of the input fields (or of the Fabasoft app.test Recorder if you execute the action without using the input fields see chapter “Quick Recording of an Execution”). If you want to check the exact error message, you can copy this message from this field and paste it into the Ok field (but do not forget the escaping of quotation marks).

If you type Always into the Ok field, the execution is okay no matter if an error occurs or not.

You can also use Warning in the Ok field to check if a warning occurs.

Note: Again you can check the warning message by using Warning("<warning message>").

All these options can be selected in the context menu of the Ok field.

How to Use Wild CardsPermanent link for this heading

In Fabasoft app.test it is possible to use wild cards (? for one character and * for any number of characters). Wild cards can be used

  • In locations of executions and set statements.
  • When checking error messages.

How to Use Wild Cards in LocationsPermanent link for this heading

In executions and set statements you can use wild cards in locations. Here you have to differ if you use wild cards for identifying controls or for selecting a row or a cell in a list (when selecting it by its text in a cell).

How to Use Wild Cards in Locations of ControlsPermanent link for this heading

In locations of executions you can use wild cards if you do not know the exact location name (e.g. if it might change from test run to test run). If you use a wild card in a location, you have to use [?] or [*].

How to Use Wild Cards when Selecting RowsPermanent link for this heading

If you want to use wild cards when selecting a row by its name, you have to use the keyword LIKE. This is the syntax for using wild cards when selecting a row:

<list name>["<column name>" LIKE "<value>"]

If you use the LIKE operator, use * or ? (instead of [*] and [?]).

Using wild cards for selecting a row is for example useful if you created a business object in your test. For naming business objects ascending numbers are used quite often. If you do not know the exact number, you can use wild cards for selecting them.

How to Use Wild Cards in Error MessagesPermanent link for this heading

Furthermore, you can use wild cards when checking error messages. You can compare the error text, which is saved in the system parameter errortext, with a defined error message including wild cards by using the keyword LIKE. You can again use ? for one character and * for any number of characters.

This is the syntax for checking an error message including wild cards (entered into the Ok field):

"{~errortext~}" LIKE "<error message including wild cards>"

Set StatementPermanent link for this heading

A set statement is used for setting a test parameter. You have four possibilities how you can set a parameter:

  • Set a parameter to a fixed value
  • Set a parameter to the value of a control
  • Set a parameter by using expressions (calculation, string manipulation etc.)
  • Set a parameter by using Fabasoft app.ducx expressions

Once you have set a parameter you can reference it any time in executions, validations etc.

You can create a new set statement by opening the context menu within the control tree on the "Recorder" tab and selecting "Set Statement".

How to Use ParametersPermanent link for this heading

Once a parameter has been set it can be used later on throughout the whole test by referencing it with {~<parametername>~}. You can use parameters to set an input field to a predefined value, for example.

Note: All parameters that are currently available can be referenced by opening the context menu of the field where you want to insert a reference to a parameter and selecting the parameter you want to insert (test parameters as well as system parameters see chapter “"System Parameters" Tab”) - this is possible in each input field when adding a statement. Any options available within the field can also be selected from the context menu of the corresponding field.

How to Set Parameters to Predefined ValuesPermanent link for this heading

If a parameter should be set to a predefined value, the Location field must be empty. Enter the parameter name in the Parameter field and the value, the parameter is to be set to, in the Value field. You can save a single-line or a multi-line value into the parameter.

This is the statement in the source code of a test file (XML):

Example

<Set parameter="OrgName" value="IT Miller" />

Each parameter set within the test can be found on the "Test Parameters" tab.

Note: Setting parameters to fixed values is also possible within a parameter table which contains a list of parameters that are set when starting to run a test.

How to Set Parameters to the Value of a ControlPermanent link for this heading

You can also save the value of a control in a parameter. To do this, open the context menu of the control of which the value should be saved in a parameter, and select "Set Statement".

The Location field is set to the path of the control which has been selected. If the Location field is empty, it is not possible to set a parameter to the selected control (e.g. it does not make sense to use the BUTTONBAR element for setting a parameter). Enter the name of the parameter into the Parameter field. If you click "OK", the value of the location is saved in the parameter (e.g. the name of an object).

This is the statement in the source code of a test file (XML):

Example

<Set parameter="Orgname" location="PAGES.Explore.CONTROLS.Object List.ROWS[LAST]" />

ExistsPermanent link for this heading

You can also check if a control exists and save the result as a Boolean value in a parameter. This can for example be used for checking if an object has been created, if a specific input field is shown of if a branch exists. The result can be checked afterwards in a validation or be used within a condition (e.g. if the object does not exist yet, it is created).

For saving the existence of a control in a parameter, enter "Exists" into the Eval field.

This is the statement in the source code of a test file (XML):

Example

<Set parameter="OrgExists" location='PAGES.Explore.CONTROLS.Object List.ROWS["Name"=="{~OrgName~}"]' eval="Exists" />

EnabledPermanent link for this heading

If you want to check if the selected control, e.g. a button, is currently enabled, enter "Enabled" into the Eval field. The result is saved as a Boolean value in the parameter and can be used later on in conditions (e.g. if the button is enabled, it should be clicked) or validations.

This is the statement in the source code of a test file (XML):

Example

<Set parameter="Destroy_Enabled" location="MENU.Destroy" eval="Enabled" />

CountPermanent link for this heading

Another possibility that is offered by Fabasoft app.test is to count elements. Therefore, enter "Count" into the Eval field. The number is saved in the parameter specified at the Parameter field. Please note that this option is only possible if the location contains a valid object, compound property or drop-down list. This statement is for example useful for checking if the expected amount of rows exists in a compound property list.

This is the statement in the source code of a test file (XML):

Example

<Set parameter="ObjNr" location="PAGES.Explore.CONTROLS.Object List" eval="Count" />

This is a list, which elements are counted, if eval=count is used:

Category/Element

Counted Elements

LIST

amount of rows of the list is returned (which means the ROW elements within the ROWS element of the LIST)

COLUMNS

amount of columns (COLUMN elements)

ROWS

amount of rows of the list is returned (which means the ROW elements)

CONTROL

if the element contains a SELECT element: Elements in this element are counted (options)
otherwise: number of elements with the category CONTROL

SELECT

OPTION elements are counted

CONTROL SelectTool

if the element contains a SELECT element: options are counted
otherwise: Invalid HTML error

all other elements

amount of all child controls is returned

Note: You can also just count specific elements, by using the following Syntax eval='count("<control name>")'.

You can also specify several control types by seperating them with a space: eval='count("<control1> <control2>")'.

Example

<Set parameter="Buttons" location="PAGES.Explore.Object List.BUTTONBAR" eval="Count("BUTTON")' /> <!-- all BUTTON elements contained in the BUTTONBAR are counted -->

<Set parameter="ButtonsAndControls" location="PAGES.Explore.Object List.BUTTONBAR" eval="Count("BUTTON CONTROL")' /> <!-- all BUTTON and CONTROL elements are counted -->

ContainsPermanent link for this heading

Within a drop-down list you can check if a specific option exists. Enter 'Contains("<option>")' into the Eval field in order to check if the specified option exists within the selected property. The result is saved as a Boolean value and can be used afterwards for example in a condition (if the drop-down list contains the option, it should be selected). The Location field must therefore contain a valid property.

This is the statement in the source code of a test file (XML):

Syntax

<Set parameter="Topic_Private" location="PAGES[0].CONTROLS.Address.ROWS[0].Topic" eval='Contains("Private")' />

SelectedPermanent link for this heading

Within a list you can check whether a row or a cell is selected. Therefore, enter "Selected" into the Eval field. The result (if the row/cell is selected) is saved as a Boolean value in the parameter. You can only use this option for a row or a cell. Make sure that the location contains a valid row or cell. This can be used for checking if selecting a row has really been carried out (e.g. if the row is selected when the first cell of the row is clicked).

This is the statement in the source code of a test file (XML):

Syntax

<Set parameter="Row_Selected" location="PAGES[0].CONTROLS.Address.ROWS[0]" eval="Selected" />

AddressPermanent link for this heading

Another option that is offered when saving the value of a control in a parameter is to save the COO-address of an object. Enter "Address" into the Eval field and the address of the object in the control is saved. Please note that the location must contain a valid object (pointer). The COO-address can be used later on for example for carrying out Fabasoft app.ducx expressions.

This is the statement in the source code of a test file (XML):

Syntax

<Set parameter="ObjAddress" location='PAGES.Explore.CONTROLS.Object List.ROWS["Name"=="Fabasoft app.test"]' eval="Address" />

Readonly / ChangeablePermanent link for this heading

You can check if a control is currently editable or if it is read-only. Therefore, the option Readonly (and the converse option Changeable) is offered. If you execute this on the following controls, false (Changeable: true) is returned:

  • CHECKBOX
  • RADIO
  • INPUT
  • FILE
  • SELECT (including the control SelectTool of an object list)

In this evaluation is carried out on a READONLY control, true (Changeable: false) is returned. For all other controls, this evaluation is not defined.

This is the statement in the source code of a test file (XML):

Syntax

<Set parameter="SurnameReadonly" location="PAGES[0].CONTROLS.Surname" eval="Readonly" />

MustbedefPermanent link for this heading

You can check if a control must be defined. Therefore, the option Mustbedef is offered. If you execute this on a CONTROL, true is returned if the control is a “must be defined” control, otherwise false.

This is the statement in the source code of a test file (XML):

Syntax

<Set parameter="CategoryMustbedef" location="PAGES.Create Record.CONTROLS.Category" eval="Mustbedef" />


Note: The options mentioned above can also be chosen if you open the context menu of the Eval field (if you select "Value" it means the same as if the Eval field would be empty - the value of the control is saved in the parameter).

How to Set Parameters by Resolving ExpressionsPermanent link for this heading

You can also set a parameter by resolving expressions, which means you can calculate integers or dates manipulate strings or compare values.

CalculationPermanent link for this heading

You can calculate values (integer or date values) by using the following calculation operators:

  • Addition: + (integers or add days to date values resp. seconds to time values)
  • Subtraction: - (integers or subtract days from date values resp. seconds from time values)
  • Multiplication: * (integers)
  • Division: / (integers)
  • Modulo: % (integers)
  • Exponential: ^ (integers)

For calculating a value and saving the result into a parameter enter the name of the parameter into the Parameter field and the calculation into the Eval field.

   

These are the statements in the source code of a test file (XML):

Syntax

<Set parameter="OneYearLater" eval="{~datenow~}+365" />
<Set parameter="Calculation" eval="(20*4/8)^2-53" />

String ManipulationPermanent link for this heading

For manipulating strings following functions are offered:

  • Splitleft("<string>","<seperator>")
    This string function returns the left part of the <string> from the beginning till the <separator>.
    Example Splitleft("Anthony.Brown",".") returns the string "Anthony".
  • Splitright("<string>","<seperator>")
    This string function returns the right part of the <string> beginning from <separator> till the end of the defined string.
    Example Splitright("David.Porter",".") returns the string "Porter"
  • Substr("<string>",<begin index>,<character number>)
    This string function returns a substring from the defined string <string>. <character number> characters are returned beginning at <begin index> (the index is zero-based).
    Example Substr("Fabasoft app.test Agent", 9, 8) returns the string "app.test".
    Note: If you do not enter a number of characters, the string is returned from the defined index till the end of the string, e.g Substr("app.test", 4) returns the string "test".
  • StrReplace("<string>","<target>","<replacement>")
    This string function replaces each substring of the <string> that matches the literal <target> sequence with the specified literal <replacement> sequence.
    Example StrReplace("abab","b","c")returns the string "acac".
  • StrLen("<string>")
    This string function returns the length of the <string>.
    Example StrLen("Brown")returns "5".
  • StrTrim("<string>")
    This string function returns a copy of the <string>, with leading and trailing whitespace omitted.
    Example StrTrim(" Brown ")returns "Brown".
  • IndexOf("<string>","<substring>")
    This string function returns the index within the <string> of the first occurrence of the specified <substring>. If the <substring> does not occur as a substring, -1 is returned.
    Example Indexof("David","Dav")returns "0".
  • Contains("<string>","<substring>")
    This string function returns true if and only if the <string> contains the specified <substring>.
    Example Contains("David","vi")returns "true".
  • Lower("<string>")
    This string function converts all of the characters in the <string> to lower case.
    Example Lower("David")returns "david".
  • Upper("<string>")
    This string function converts all of the characters in the <string> to upper case.
    Example Upper("David")returns "DAVID".

For manipulating a string and saving the result into a parameter enter the string function into the Eval field.

If the login name of the user has the syntax <firstname>.<lastname>, the string function returns the first name of the user.

This is the statement in the source code of a test file (XML):

Syntax

<Set parameter="UserFirstName" eval='Splitleft("{~Sequence.username~}",".")' />

All string functions are also available in the context menu of the Eval field.

ComparisonPermanent link for this heading

You can also compare integers or date values and save the result into a parameter. The following comparison operators are available:

  • Equal: ==
  • Not equal: !=
  • Bigger than: >
  • Bigger than or equal: >=
  • Smaller than: <
  • Smaller than or equal: <=

If you want to compare two values (either two integers or two date values) and save the result into a parameter, enter the comparison into the Eval field.

This is the statement in the source code of a test file (XML):

Syntax

<Set parameter="Comparison" eval="{~datenow~}<=31.12.2009" />

Note: You can also compare strings by using "==" and "!=", e.g. "{~OrgName~}"=="IT Miller GmbH".

How to Set Parameters by Executing Fabasoft app.ducx ExpressionsPermanent link for this heading

You can also execute a Fabasoft app.ducx expression and save its result in a parameter. This is only possible if a Fabasoft Folio domain is tested.

The following prerequisites have to be fulfilled:

Within the Fabasoft Folio domain the access type "Execute Script" must be enabled in the "ACL for Expression Evaluation" (it is not enabled per default because of security issues). This ACL is part of the software component "Fabasoft app.test" (FSCDUCXTEST@1.1001).

Within the Fabasoft Folio domain the action FSCDUCXTEST@1.1001:SOAPEvaluateExpression must be protected with an ACL where the access type "See in Web" must be activated for the user that is used for testing.

If you want to execute a Fabasoft app.ducx expression and save the result to a parameter, you have to open the context menu within the control tree of the Fabasoft app.test Recorder and select "Set Statement". Enter the name of the parameter into the Parameter field. The Fabasoft app.ducx expression, which should be resolved, is entered into the Expression field. Additionally, you have to delete the entry in the Location field, if an entry exists. Two fields are offered for entering a Fabasoft app.ducx expression. You can either enter single-line value or multi-line Fabasoft app.ducx expressions. Once you have finished editing the fields, click "OK" to set the parameter.

The parameter is set and the statement is added. You can view the statement in the "Outline" view of the Fabasoft app.test Studio. The parameter and its value can be found on the "Test Parameters" tab.

This is the statement in the source code of a test file (XML):

Syntax

<Set parameter="ObjectCreatedBy" expression="coort.getObject({~Org_Address~}).COOSYSTEM@1.1:objectcreatedby.name" />

Replacement of parameters while recording a testPermanent link for this heading

You can define a parameter to be automatically replaced by default in all recorded locations, values and options when using the click recorder or get a proposal when recording a statement in the test editor. Therefore you have to add the option AutoReplace to the set statement.

Syntax

<Set parameter="TestFolderName" value="TestFolder {~timestamp~}" options="AutoReplace" />

Recording Sample:

Note: The replacement (also includes replacing the {~scope~} paramter) takes place in following order:

  1. Longest parameter value (character count)
  2. Lexically prior parameter value

Validation StatementPermanent link for this heading

A validation statement is used for validating controls or values. You have many possibilities how you can validate values or conditions.

  • Check a control for existence
  • Check the value of a control
  • Validate Boolean values
  • Validate integer and date values
  • Compare string values
  • Check several conditions at once

A validation returns OK if the condition returns true.

For adding validations to a test open the context menu within the control tree and select "Validation".

Check control for existencePermanent link for this heading

Open the context menu of the control that should be checked for existence and select "Validation".

The Location field is set to the path of the selected control. Enter "Exists" into the Eval field.

This is the statement in the source code of a test file (XML):

Syntax

<Validation location='PAGES.Explore.CONTROLS.Object List.ROWS["Name"=="{~OrgName~}"]' eval="Exists" />

Check the value of a controlPermanent link for this heading

Open the context menu of the control and select "Validation".

The Location field is set to the path of the selected control. Enter the value which should be compared to the control value, into the Value field. You can use a single-line or a multi-line value.

This is the statement in the source code of a test file (XML):

Syntax

<Validation location='PAGES.Main.CONTROLS.Surname' value="Miller" />

System Parameter VALIDATIONPermanent link for this heading

You can use the system parameter VALIDATION within the Ok field to perform enhanced validations.

The system parameter VALIDATION is set as the result of executing an implicit set statement specified by the Location field and/or the Eval field.

The system parameter VALIDATION is only available within the validation statement.

This is the statement in the source code of a test file (XML):

Syntax

<Validation location='PAGES.Main.CONTROLS.Object List' eval="Count"ok="{~VALIDATION~}<=2" />

Boolean ValuesPermanent link for this heading

You can use Boolean values in the Ok field of a condition. For negating a Boolean value the operator ! is offered.

This is the statement in the source code of a test file (XML):

Syntax

<Validation ok="!{~OrgExists~}" />

Integer and Date ValuesPermanent link for this heading

You can also compare integer and date values. Therefore, these comparison operators are offered:

  • Equal: ==
  • Not equal: !=
  • Bigger than: >
  • Bigger than or equal: >=
  • Smaller than: <
  • Smaller than or equal: <=

If you compare integer values you can not only compare them. You can also calculate and compare values in one step.

This is the statement in the source code of a test file (XML):

Example

<Validation ok="27/(3*3)&lt;2^2" />

Note: Characters like <, > or " are escaped it the XML file (&lt;, &gt;, &quot;).

Furthermore you can compare date values. Again you can calculate a date (add or subtract days) and compare the value in one step.

This is the statement in the source code of a test file (XML):

Example

<Validation ok="{~datenow~}+3&lt;=01.05.2010" />

StringsPermanent link for this heading

When comparing strings you have to remember one thing: All strings in Fabasoft app.test must be put between double quotation marks, even parameter references!

You can use two comparison operators for comparing strings:

  • Equal: ==
  • Not equal: !=

This is the statement in the source code of a test file (XML):

Example

<Validation ok='"{~Sequence.username~}"=="david.porter"' />

Combine ConditionsPermanent link for this heading

You can also combine conditions and so check several values within one single validation statement.

These operators are therefore available:

  • AND: &&
  • OR: ||

This is the statement in the source code of a test file (XML):

Syntax

<Validation ok='"{~Sequence.username~}"=="david.porter"&amp;&amp;!{~OrgExists~}||{~datenow~}&lt;=31.12.2009"' />

Note: Beside a validation statement you can also insert an assertion which allows you checking a condition, too. The difference between an assert statement and a validation statement is that the test (or the sequence) is canceled if the condition returns false.

If the test or only the current sequence should be canceled is defined in the onerror attribute of the Assert statement:

  • CANCEL_SEQUENCE - in that case the sequence is canceled and the test run continues with the next sequence of the test.
  • CANCEL - in that case the whole test run is canceled. This is the default value which means if you do not define the onerror attribute, the whole test is canceled if an assertion returns false.

This is the syntax of an assertion (can only be defined directly in the source code of a test file):

Syntax

<Assert ok="<condition>" if="<condition>" onerror="CANCEL_SEQUENCE|CANCEL" />

Example

<Assert ok={~OrgExists~} onerror="CANCEL_SEQUENCE" />   <!-- The sequence is canceled, if the parameter OrgExists is false -->

Assert StatementPermanent link for this heading

The Assert statement allows you to ensure that requirements for continuing a test are fulfilled. In case an assertion fails (i.e. returns NOK) the current test or sequence (depending on the onerror value) is considered to be inoperative and therefore aborted.

The syntax for the assertion statement is identical to Validation Statements (see chapter ) but allows one additional attribute.

Field Name

Description

onerror

By specifying onerror you specify if the complete test or the current sequence should be canceled.

  • CANCEL - (Default) - in this case the whole test run is canceled.
  • CANCEL_SEQUENCE - the current sequence is canceled and the test run continues with the next sequence of the test.

message

  • If the assertion failed, this message will be additionally written into the reported error message.

This is the syntax of an assertion statement (can only be defined in the source view of a test):

Syntax

<Assert ok="<condition>" if="<condition>" onerror="CANCEL|CANCEL_SEQUENCE" />

Example

<Assert ok="{~OrgExists~}" onerror="CANCEL_SEQUENCE" />   <!-- The sequence is canceled, if the parameter OrgExists is false -->

Repeat StatementPermanent link for this heading

The repeat statement allows you to execute statements repeatedly within a loop. As break conditions “until” and “while” are supported.

Field Name

Description

until

Defines the condition until the loop should be executed. The loop will be iterated as long as this expression returns false and the maximum number of iterations is not exceeded.

Note: This condition is evaluated at the end of the loop; the statements inside the repeat statement are executed at least once.

while

Defines the condition while the loop should be executed. The loop will be iterated as long as this expression returns false and the maximum number of iterations is not exceeded.

Note: This condition is evaluated at the beginning of the loop; the statements inside the repeat statement may be never executed.

maxiterations

Defines the maximum number of loop iterations. If until still returns false and the maximum number of executions would be exceeded a warning is generated and the loop will be aborted.

Note: If you are using parameters within maxiterations, they are only resolved once when the repeat loop is entered. Changing the affected parameters in the loop body has no effect on maxiterations.

Default is 60.

loopinterval

Defines the time in milliseconds between loop iterations.
The delay will be performed after the evaluation of until returns false and the maximum number of executions will not be exceeded.

Note: If you are using parameters within loopinterval, they are only resolved once when the repeat loop is entered. Changing the affected parameters in the loop body has no effect on loopinterval.

Default is 500.

Example: Import a document and wait until upload dialog hides

<Execution action='Import' location='PAGES.Main.Object List'
          
value='{~importdocs~}ImportDocument.docx'/>

<Execution action='Click' location='PAGES.Fabasoft Folio Import.BUTTONBAR.Yes'/>

<Repeat until='!{~uploadpage_exists~}'>

  <Set parameter='uploadpage_exists' location='PAGES.Uploading[*]'
      
eval='exists'/>

</Repeat>

How to Switch to Another ContextPermanent link for this heading

If you record a test which should represent the behavior of a user you need to open and close documents. This is possible in Fabasoft app.test by using the so-called context switch. With a context switch you can switch to the context of a third party product or to another web browser. These client types are available:

  • Notepad
  • Adobe Reader
  • WinZip
  • Microsoft Outlook
  • Mozilla Thunderbird (supported only on Ubuntu Linux workstations)
  • Office (Microsoft Office Word, Microsoft Office Excel, LibreOffice)
  • Microsoft Word
  • Microsoft Excel
  • LibreOffice
  • iWork Pages
  • iWork Numbers
  • iWork Keynote
  • AutoCAD
  • AutoCAD Project

A context switch can be inserted within a use case or a sequence. For adding the context switch to the file select the element after (or in) which you want to insert it in the "Outline" view and click the "Insert Context" button.

A dialog box opens where you can define the properties of the context Fabasoft app.test should switch to. You have two possibilities for specifying the new context:

  • Define the properties manually
    You can fill the input fields for defining the context to be switched to.
    • If - In this field you can enter a condition (see chapter “How to Use If Conditions”) when the context switch should be carried out.
    • Client Type - In this field you can select the client type the context should be switched to.
    • Location - In this field you enter the location it should be switched to. This is either the name of the document that has been opened or a web address (if you switch to the context of a web browser).
    • Options - If the object is locked by the Fabasoft Folio Client - which means the object is opened in editing mode - you can enter "Locked" into this field. If the object is opened in reading mode, leave this field empty. When "Locked" is used for specifying that a document is opened in editing mode, Fabasoft app.test waits after closing the context switch till it is finally unlocked and then continues with the next execution. This can prevent mistakes.
      This option can also be found in the context menu of the Options field.

After filling the input fields click "OK" for carrying out the context switch (which means the Fabasoft app.test Recorder changes the context).

  • Select a context from the list
    All currently opened contexts can also be found in the list below the input fields. If you select a row of the list, the input fields are set to this context. Of course you can change the values afterwards. If you are satisfied, click "OK" for switching the context.

Note: If you try changing to a context that does not exist (e.g. if you have a tying mistake in the location) an error is shown that the context cannot be switched.

If a locked window cannot be found the error No lock registration for "<document>" is displayed.

If an unlocked window cannot be found the error No unlocked window matches sufficiently for "<document>" is displayed.

The control tree of the new context is displayed in the Fabasoft app.test Recorder. Above the control tree you can find the information in which context the Fabasoft app.test Recorder is currently situated.

The number at the beginning of the line indicates how many contexts are currently open. If the Fabasoft app.test Recorder is running, at least one context is open: the context of the web browser where all executions are carried out.

The client type of the context is shown after the number of the currently opened contexts. This might be a web browser or a third party product.

The location of the context is displayed after the client type. This might either be the address of a web server or the name of the object that is opened in the third party product. The last information in the line is the user that is currently used for recording statements.

Now you can record executions in the new context. If you have switched to the context of a third party product, you can close the opened file by executing a "Close" action on the WINDOW element.

Note: If you close a Microsoft Word or Microsoft Excel document, you can also handle the "Save" dialog (for example if fields in the document are updated when opening it, a dialog box is displayed if the file should be saved or not). Therefore, enter "Save" into the Options field (or select it in the context menu of this field).

After closing the document you have to close the context separately (because it might be that you want to record further statements after closing the window (set and validation statements)).

For closing the context, click the "Close current context" button above the control tree.

Note: If you switch the context to a Microsoft Outlook mail (e.g. when sending a copy to a mail recipient), you can enter the recipient ("To" and "Cc") as well as the subject of the e-mail and the mail text. Therefore, input fields are available in the control tree of a Microsoft Outlook mail object. Finally, you can send the mail by clicking the "Send" button.

These are examples for executions in the "Outline" view for writing and sending an e-mail:

Note: Setting a text into the "Message" field in Microsoft Outlook is only possible if you use Microsoft Outlook 2003. In Microsoft Outlook 2007 the "Message" field is not an input field (because it is based on Microsoft Word and that cannot be handled by Fabasoft app.test) but it is shown in the control tree as DOCUMENT "Message" (because it is a Microsoft Word document).

Note: If you use Microsoft Outlook 2003, you have to set the following properties for switching the context to Microsoft Outlook:

Open the "Tools" menu and select "Options". Go to the "Mail Format" tab and clear these checkboxes: Use Microsoft Word 2003 to edit e-mail messages and Use Microsoft Word 2003 to edit Rich Text e-mail messages. After clearing these two check boxes, click "OK" to save the settings. This must be set because otherwise the e-mails opened cannot be handled by Fabasoft app.test.

How to Use If ConditionsPermanent link for this heading

You can use conditions for checking if a statement should be carried out or not. You can use if conditions with the following elements:

Use case

Execution

Set statement

Validation

Context switch

The element is carried out only if the condition returns true. If the element contains sub elements (in case of a use case or a context switch) all sub elements are not carried out - which means they are skipped.

If an element is not executed because of an if condition, Fabasoft app.test returns NX (Not Executed).

A condition can be defined in the If field when adding an element.

Furthermore, you can add a condition when selecting the element in the "Outline" view and entering the condition into the If field in the "Properties" view.

If ConditionsPermanent link for this heading

Into the If field you can enter the same conditions as in the Ok field of a validation which means you can check Boolean values, strings, integer and date values. Furthermore, you can combine several conditions with AND (&&) and OR (||).

Control PropertiesPermanent link for this heading

Furthermore, you can check the properties of a control when carrying out an execution or a set statement. This means, you can use the following key words (analog to the values you can enter into the Eval field when setting a parameter to the value of a control).

  • Exists
  • Enabled
  • Contains
  • Selected

You can find all possible keywords also in the context menu of the If field in the "Options".

Position of Newly Inserted Elements in the "Outline" ViewPermanent link for this heading

If you add new elements into a test file, you can define the position of this new element by the selection in the "Outline" view.

These elements can be inserted:

  • Sequence
  • Use case
  • Context switch
  • Statement (execution, set statement, validation)

Insert Sequence/Parameter TablePermanent link for this heading

A new sequence can be inserted into a test. The position is defined by the selected element:

Name of the Selected Element

Position of the New Sequence

Position in "Outline" view

Test

Sequence/parameter table is inserted at the beginning of the test

insert after <sequence>
OR
sequence itself

Sequence/parameter table is inserted after the selected <sequence>

insert after <parameter table>
OR
parameter table itself

Sequence/parameter table is inserted after the selected <parameter table>

Insert Use CasePermanent link for this heading

A new use case can be inserted into a sequence. The position is defined by the selected element:

Name of the Selected Element

Position of the New Use Case

Position in "Outline" view

Sequence

Use case is inserted at the beginning of the sequence

insert after <use case>
OR
use case itself

Use case is inserted after selected <use case>

Insert Context SwitchPermanent link for this heading

A new context switch can be inserted at the following positions:

Name of the Selected Element

Position of the New Context

Position in "Outline" view

Sequence

Context switch is inserted at the beginning of the sequence

Use case

Context switch is inserted at the beginning of the use case

insert after <use case>

Context switch is inserted after the use case

insert after <context>

Context switch is inserted after the selected context switch

Statement (execution, set, validation)

Context switch is inserted after the selected statement

Insert StatementsPermanent link for this heading

A statement (execution, set statement, validation) can be inserted at the following positions:

Name of the Selected Element

Position of the New Statement

Position in "Outline" view

Sequence

Statement is inserted at the beginning of the sequence

Use case

Statement is inserted at the beginning of the use case

insert after <use case>

Statement is inserted after the use case

Context

Statement is inserted at the beginning of the context switch

insert after <context>

Statement is inserted after the context switch

Statement (execution, set, validation)

Statement is inserted after the selected statement