Skip to content

Flows overview ​

Flows are YAML test scripts that define user journeys for UI automation.

Flows are YAML-based test scripts that define user journeys for UI automation. Each flow represents a segment of a journey, such as Login, Checkout, or searching for an item. A flow can be a complete journey or a small piece that you compose into larger scenarios. Astra Scout runs them on iOS and Android with maestro-runner, using the Maestro flow YAML syntax.

The anatomy of a flow ​

Flows use a human-readable YAML format that developers and manual testers can both maintain.

A standard flow has two parts, separated by three dashes (---):

  • Configuration section: above the --- marker. It holds the appId of the app under test and optional metadata such as name, tags, and environment variables.
  • Commands section: a sequence of declarative commands, such as tapOn and inputText, that simulate user actions and check the UI state.
yaml
# --- Configuration Section ---
appId: com.example.app         # Mandatory: Define the ID of the app under test
name: My Login Flow            # Optional: Customize the Flow name
tags:                          # Optional: Filter which tests to run
  - smoke-test
env:                           # Optional: Map of environment variables
  USERNAME: "user@example.com"

---
# --- Commands Section ---
- launchApp                    # Launches the application
- tapOn: "Username"            # Interacts with the username field
- inputText: ${USERNAME}       # Inputs the environment variable
- tapOn: "Login"               # Taps the login button
- assertVisible: "Welcome"     # Verifies success message appears

To run a flow, open it in Astra Scout, connect a device, and run it. See Run flows.

Platforms

Astra Scout runs flows on iOS (simulator and real iPhone) and Android (emulator and real device). Web flows are not supported. See Supported platforms.

Explore flow capabilities ​

  • Flow control and logic: build resilient, intelligent journeys with modular subflows, conditional branching, loops, and lifecycle hooks.
  • JavaScript: extend YAML with scripting. Handle complex data, capture script outputs, and call external APIs over HTTP.
  • Workspace management: move from writing commands to designing a testing system with config.yaml, repository structure, tags, and run analysis.

Next step ​

Learn how to build resilient journeys by mastering Flow control and logic.