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 theappIdof the app under test and optional metadata such asname,tags, and environment variables. - Commands section: a sequence of declarative commands, such as
tapOnandinputText, that simulate user actions and check the UI state.
# --- 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 appearsTo 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.