Editor: Script Building

The scripting panel allows you to compose scripts using test case objects drawn from Selector, specifying the ordering as well as the mode of use, whether sequential, conditional or loop. The scripting panel uses the blocks-based approach to scripting, letting you drag and drop test case objects, sections and maps, and then reorder and edit them.

When Alyvix Robot executes a script, it will interact with the web browser, other app, or even Windows itself, by following your script step by step, executing each test case object in turn.

When Editor is first started with a new test case, there are no scripted elements yet, and thus the scripting panel is empty:

The scripting panel when empty.

To create a new script, drag a test case object from Selector using its   icon and drop it into the scripting panel. This will create a new scripting node that appears in light green with a RUN icon to its left, indicating this test case object will be executed when the MAIN script is invoked.

More test case objects can be added by dragging them towards their correct position in the scripting panel. When you drag a test case object, section or map and hover over an available position, the mouse pointer will switch from the   icon to showing the name of the test case object, moving other script nodes out of the way if necessary:

Inserting a new script node in Alyvix Editor

You can replace an existing test case object by dragging a new one directly above it, and select multiple scripting nodes with the usual Ctrl and Shift key combinations.

Two adjacent scripting nodes will be executed in sequence, with the lower node inheriting the state of the GUI that was modified by the node preceding it. So for instance in the script above, the RUNenter_login node would be executed before RUNcheck_login_success.

Script Expression Modes

There are four modes for scripting nodes that can be used in the scripting panel:

  1. Run — Simply run the test case object in sequence, one after another.

    RUN + Object/Section

  2. Conditionally true — Run the test case object in the first (antecedent) node as normal (including any actions). If it had at least one group where all of the subcomponents in that group matched, then also run the second (consequent) node.

    IF TRUE + Object + RUN + Object/Section

  3. Conditionally false — Run the test case object in the first (antecedent) node as normal (including any actions). If none of the groups matched, then also run the second (consequent) node.

    IF FALSE + Object + RUN + Object/Section

    Note that you should clear the Break flag on the antecedent, or else Alyvix will stop test case execution since that test case object failed, rather than continuing on to process the consequent.

  4. Loop — For each item contained in a map, execute the specified scripting node once for each row in the map’s table.

    FOR + Map Name + RUN + Object/Section

Double-clicking on a scripted node’s mode will cycle it through the other modes in this order:

RUN > IF TRUE > IF FALSE > RUN

Note that double-clicking on the FOR mode won’t change it since it’s based on a map rather than a test case object.

Scripting Node Colors

Each color used for the scripting nodes has a particular meaning. The following screenshot illustrates an example script, where each color is explained in the table below.

The various modes of script elements.

Color

Description

Gray

A disabled test case object of any mode

Green

An enabled test case object pulled from Selector

Yellow

An enabled test case object from Selector serving as an antecedent

Red

An unspecified scripting element serving as a consequent

Orange

An enabled map element within a FOR scripting node

Dark green

An enabled Section script (subroutine)

The two buttons at the bottom of the scripting panel work as follows:

  • DISABLE/ENABLE : Toggle whether a scripting node is enabled or disabled. Disabling allows you to temporarily switch off a given node without having to delete it and later re-add it.

  • REMOVE : Delete a scripting node