Print

Groups

To group your test steps and influence the test execution, you can choose between three different groups. Each group has its own behavior, so make sure you use the correct group type for your situation.

Groups can be executed, duplicated, transformed into page actions, cleared from results or deleted. If you’ve used variables, JOSF asks you to enter or validate the values per unfulfilled variable.

1. Descriptive group

To group test steps together, without any precondition to run the group, place them in a descriptive group. This is the most commonly used group to order your test case in neat and orderly fashion.

2. Conditional group

Conditional group

A conditional group contains test steps, similar to a normal group, but with one key difference: it evaluates a condition before running its contents. The condition can be either a conditional test step or a comparator.

If the condition evaluates to true, the group is executed. If the condition evaluates to false, the group is skipped unless an else-group is defined.

If an else-group exists, that group will run when the main condition evaluates to false.


Conditional test step

A conditional test step runs a regular test step and checks its result.
The condition is considered true when the result of the step is PASS or INFO.
If the result is FAIL, the condition is false.

  • When true: the conditional group executes its steps.
  • When false: the group is skipped or, if present, the corresponding else-group executes.
Example: Handling an optional pop-up after login

Imagine an application where logging in sometimes triggers a pop-up. This might depend on timing, prior test runs or application state. A conditional test step can verify whether the pop-up is present.
If the check passes, the group can contain steps to close or validate the pop-up.
If the check fails and an else-group is defined, the else-group can continue the flow as if no pop-up appeared.


Comparator

A comparator condition accepts a first value, a second value and a comparator operator. The values are compared.
If the comparison succeeds, the condition is true and the group runs.
If it fails, the group is skipped or its else-group runs.

Supported comparator types include:

ComparatorAccepted value types
is equal toText, dates, numbers
is not equal toText, dates, numbers
is greater thanDates, numbers
is greater than or equal toDates, numbers
is less thanDates, numbers
is less than or equal toDates, numbers

Example with else-group

A comparator could check whether a numeric value is greater than zero.
If true, the group performs a certain action.
If false, the else-group might handle the default path or record an alternative outcome.


Else-groups

Conditional groups now support an else-branch.


This allows you to model both outcomes of a condition:

  • If-condition is true: execute the main conditional group.
  • If-condition is false: execute the else-group (if defined).

Else-groups behave like regular groups and can contain any test steps.

This gives you clearer control over branching flows, reduces the need for duplicated logic and aligns conditional execution with standard programming patterns.

3. Repeating group

A repeating group contains test steps, but unlike the conditional group, it uses a repeater to determine how many times the group should execute. Each iteration updates an iteration index, which increments by 1 (starting at 0 by default) and is stored in a buffer named group-index unless otherwise specified. You can change both the buffer name and the starting value.

In the current version of JOSF, three types of repeaters are available:


Repeating based on a test step
You can select a specific test step whose result determines whether the group will run again. After the group executes, the chosen test step is run to decide if another iteration should occur.

  • If the test step result is PASS or INFO, the group will run again.
  • If the result is FAIL, the repetition stops.
    With this type it’s also possible to:
    • Set a maximum repeat count to prevent infinite loops.
    • Use a test step that always passes for fixed iteration counts.

Repeating based on a datasheet
Instead of a condition, the repeater uses the rows of a datasheet. Each iteration, the values from the current row are placed into the buffers, and the group executes using that data set.
Options include:

  • Track results – View the outcome of each iteration in detail.
  • Stop after fail – Stop all further iterations if a step fails in the group.

For creating datasheets learn more about Data storage in this topic:

In this document