flow
| Module | Step | Summary |
|---|---|---|
| — | flow/delay |
Pause test execution for a fixed duration. |
| — | flow/if |
Run one of two nested sequences depending on a set of conditions. |
| — | flow/retry |
Run a nested list of steps, retrying the whole sequence on failure. |
| — | flow/select |
Let the operator choose one of a list of values — a dropdown in the host's UI. |
flow/delay
Pause test execution for a fixed duration.
Useful where a system under test needs a moment to reach the state the next step asserts on and offers nothing to poll.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
seconds |
number | no | 1 |
— | Seconds to wait. |
Output — the value assertions and returns: read
This step produces no value — it acts, and there is nothing to read back.
Type: NoneType
flow/if
Run one of two nested sequences depending on a set of conditions.
A step's own if: decides whether that one step runs; this decides between two sequences, and says afterwards which one it picked — a test asserting on branch_taken can prove the flow went the way it meant to, which "the steps in the other branch were skipped" never quite shows. The conditions are evaluated once, before either branch starts, using the same comparisons a validate: block asserts with.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
conditions |
list of Condition | yes | — | — | Comparisons evaluated before a branch is chosen. |
match |
all | any |
no | 'all' |
— | Whether every condition must hold ('all') or just one ('any'). |
then |
list of StepDefinition | yes | — | — | Nested step definitions run when the condition holds — the same shape used at the top level of a test. |
else |
list of StepDefinition | no | [] |
— | Nested step definitions run when it does not; omitted means the step does nothing in that case. |
Output — the value assertions and returns: read
Which way the step went, and what the branch it took produced.
| Field | Type | Description |
|---|---|---|
condition_result |
boolean | How the condition evaluated. |
branch_taken |
then | else | none |
The branch that ran; 'none' when the condition was false and no 'else' was given. |
outputs |
list of any | Outputs of the nested steps that ran, in order. |
flow/retry
Run a nested list of steps, retrying the whole sequence on failure.
The sequence stops at the first nested failure and the whole sequence is re-run, so a step that succeeded in a failed attempt runs again — write nested steps to be safe to repeat.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
steps |
list of StepDefinition | yes | — | — | Nested step definitions ('uses', 'with', 'validate', …) — the same shape used at the top level of a test. A nested step may itself be 'flow/retry'. |
max_attempts |
integer | no | 3 |
— | Maximum number of attempts. |
delay_s |
number | no | 1 |
— | Seconds to wait between attempts. |
Output — the value assertions and returns: read
The nested steps' outputs, in order, from the attempt that finally passed.
Type: list of any
flow/select
Let the operator choose one of a list of values — a dropdown in the host's UI.
Checkpoint — internal: you choose in the Test Suite; nothing is called. Every use of the step is one; a test switches it off with checkpoint: false.
Inputs
| Parameter | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
auto_select_single |
boolean | no | True |
— | Take the only option without asking when there is just one. False asks the operator even then. |
timeout_s |
number | no | 300.0 |
— | Seconds to wait for the choice before failing. |
action |
WaitAction | no | None |
— | What the choice is for, shown to the operator with the options: 'label', 'description', 'recommendation' and 'fields'. |
options |
list of SelectOption | yes | — | — | The options, as plain values or as {value, label, description, details}. |
Output — the value assertions and returns: read
Output contract of flow/select.
| Field | Type | Description |
|---|---|---|
selected_by |
operator | single |
'operator' when the operator chose, 'single' when it was the only option. |
value |
string | The chosen option's value. |
label |
string | The chosen option's label. |
details |
object | The chosen option's details. |
Nested objects
ActionField
One labelled value the person driving the system under test copies.
| Field | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
label |
string | yes | — | — | What the value is, e.g. header.receiverBpn. |
value |
string | integer | number | boolean | yes | — | — | The value to copy. |
Assertion
Assertion using uses / with verb-form keys.
| Field | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
cac |
list of string | no | None |
— | |
uses |
string | yes | — | — | |
name |
string | no | None |
— | |
with |
object | no | None |
— |
CheckpointMark
What a test says about a step it marks a checkpoint.
| Field | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
label |
string | no | None |
— | What the run calls the checkpoint. |
description |
string | no | None |
— | What whoever acts has to do, in a sentence or two. |
direction |
Direction | no | None |
— | 'inbound', 'outbound' or 'internal' — for a step type that declares no checkpoint of its own; 'outbound' when left out. |
via |
Via | no | None |
— | 'direct' or 'dataplane': how the call travels, when it does. |
Condition
One comparison the branch is decided on.
| Field | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
input |
any | no | None |
— | The value to test, usually a previous step's output. |
path |
string | no | '' |
— | Dot-notation path into the input, e.g. 'content.state'; empty tests it whole. |
operator |
not_null | is_null | not_empty | equals | not_equals | contains | not_contains | is_in | matches_regex | one_of | none_of | has_key | not_has_key | gt | gte | lt | lte | length_equals | length_gt | length_lt | between |
no | 'not_null' |
— | Comparison applied to the value. |
value |
any | no | None |
— | What the value is compared against; unused by unary operators. |
ReturnFieldDefinition
Single output field declared in a step returns block.
| Field | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
type |
string | yes | — | — | |
class |
string | no | None |
— | |
hidden |
boolean | no | None |
— | Mask the value in every record of the run (trace, UI, logs). |
SelectOption
One option of flow/select.
| Field | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
value |
string | yes | — | — | What the step returns when chosen; unique. |
label |
string | no | None |
— | What the operator sees; 'value' if unset. |
description |
string | no | None |
— | A line more about the option. |
details |
object | no | {} |
— | Anything else to show beside it, and to return. |
StepDefinition
Step definition using uses and with verb-form keys.
| Field | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
cac |
list of string | no | None |
— | |
id |
string | no | None |
— | |
uses |
string | yes | — | — | |
name |
string | no | None |
— | |
with |
object | no | None |
— | |
returns |
object | no | None |
— | |
validate |
list of Assertion | no | None |
— | |
expects |
fail |
no | None |
— | |
timeout_s |
number | no | None |
— | |
if |
string | no | None |
— | |
checkpoint |
boolean | CheckpointMark | no | None |
— |
WaitAction
The action the system under test has to take while a step waits — written by the test author on the wait step (with.action) and shown in place of what a viewer would otherwise derive from the listener.
| Field | Type | Required | Default | Also accepts | Description |
|---|---|---|---|---|---|
label |
string | no | None |
— | The action's name, e.g. 'Send a certificate push'. |
description |
string | no | None |
— | What is being asked of the system under test, and why. |
recommendation |
list of string | no | [] |
— | How to do it: the steps to take, in order. A single string is one step. |
fields |
list of ActionField | no | [] |
— | Values to copy, shown beside the steps, in order. |