Skip to content

Sequential execution ​

Run flows in a specific order using executionOrder for dependent test scenarios.

By default, Astra Scout does not guarantee the order in which flows run. This is intentional: flows that run on their own are more reliable, and do not depend on what a previous flow left behind.

Sometimes you need flows to run in a fixed order. For example, in a shopping app: create an account, then verify the profile, then place an order. In that case, use the executionOrder configuration.

Configuring the sequence ​

To force an order, add the executionOrder block to your config.yaml. You identify a flow by its file name (without the .yaml extension) or by the name defined inside the flow.

yaml
# config.yaml
executionOrder:
  flowsOrder:
    - signup_flow          # Step 1
    - verify_email_flow    # Step 2
    - complete_profile     # Step 3

When you configure executionOrder, Astra Scout will:

  1. Put the flows listed in flowsOrder first, in the specified order.
  2. Run all other flows after them. Do not rely on the order among those other flows.

A failed flow does not stop the sequence

When a flow in the sequence fails, the flows after it still run. Astra Scout has no option to stop the whole sequence (a continueOnFailure key in the config is ignored). If a flow cannot work without the previous one, put the setup it needs inside that flow with runFlow.

Best practices and isolation ​

Even when flows run in order, keep each flow independent. A good rule of thumb is:

Each Flow should be able to run on a completely reset device.

WARNING

Do not expect one flow to leave the app in a specific state for the next one.

If you need a specific state (e.g., being logged in), use a Hook or a Nested Flow at the start of your test.

RequirementRecommendation
A flow needs another flow's setupUse runFlow to put the setup inside the flow.
You only need an orderUse executionOrder in config.yaml.

Example: Partial sequencing ​

Say you have five flows (A, B, C, D, E) and only need A and B to run first:

yaml
executionOrder:
  flowsOrder:
    - flowA
    - flowB

Astra Scout runs A, then B, and then C, D, and E in any order.

Next steps ​

After you set the run order, see the results on these pages: