Skip to content

Configuration Reference

FlutterProbe is configured via probe.yaml in your project root. All settings follow the resolution order: CLI flag > probe.yaml > built-in default.

project:
name: "My App"
app: com.example.myapp
defaults:
platform: ios
timeout: 30s
screenshots: on_failure
video: false
retry_failed_tests: 1
grant_permissions_on_clear: true
devices:
- name: iPhone 16 Pro
serial: A1B2C3D4-E5F6-7890-ABCD-EF1234567890
- name: Pixel 7
serial: emulator-5554
agent:
port: 48686
device_port: 48686
dial_timeout: 30s
ping_interval: 5s
token_read_timeout: 30s
reconnect_delay: 2s
device:
emulator_boot_timeout: 120s
simulator_boot_timeout: 60s
boot_poll_interval: 2s
token_file_retries: 5
restart_delay: 500ms
video:
resolution: 720x1280
framerate: 2
screenrecord_cycle: 170s
visual:
threshold: 0.5
pixel_delta: 8
tools:
adb: /usr/local/bin/adb
flutter: /usr/local/bin/flutter
recipes_folder: tests/recipes
reports_folder: reports
environment:
TEST_USER: "admin@test.com"
API_BASE: "http://localhost:8080"
KeyTypeDescription
namestringProject display name
appstringBundle ID (iOS) or package name (Android). Validated against ^[a-zA-Z][a-zA-Z0-9_.]*$
KeyTypeDefaultDescription
platformstringandroid, ios, or both
timeoutduration30sPer-step timeout
screenshotsstringon_failurealways, on_failure, or never
videoboolfalseEnable video recording
retry_failed_testsint0Number of retries for failed tests
grant_permissions_on_clearboolfalseAuto-grant permissions after clear app data

List of target devices:

KeyTypeDescription
namestringDevice display name
serialstringUDID (iOS) or serial (Android). Use auto for auto-detection

WebSocket connection settings:

KeyTypeDefaultDescription
portint48686Host-side WebSocket port
device_portintsame as portOn-device port (allows different host/device ports for parallel testing)
dial_timeoutduration30sWebSocket connection timeout
ping_intervalduration5sWebSocket keepalive interval
token_read_timeoutduration30sMax time to wait for auth token
reconnect_delayduration2sDelay before reconnecting after app restart

Device/emulator management:

KeyTypeDefaultDescription
emulator_boot_timeoutduration120sAndroid emulator boot timeout
simulator_boot_timeoutduration60siOS simulator boot timeout
boot_poll_intervalduration2sPolling interval during boot
token_file_retriesint5Retries for reading token file
restart_delayduration500msDelay after force-stop before relaunch
KeyTypeDefaultDescription
resolutionstring720x1280Android screenrecord resolution
framerateint2Frames per second
screenrecord_cycleduration170sMax segment length (chains to avoid 180s limit)
KeyTypeDefaultDescription
thresholdfloat0.5Max allowed pixel diff percentage
pixel_deltaint8Per-pixel color delta tolerance
KeyTypeDefaultDescription
adbstringadb (PATH)Path to ADB binary
flutterstringflutter (PATH)Path to Flutter binary

Key-value pairs available as environment variables during test execution:

environment:
TEST_USER: "admin@test.com"
API_BASE: "http://localhost:8080"

Use separate config files for parallel platform testing:

Terminal window
probe test tests/ --config probe.ios.yaml --device <IOS_UDID> &
probe test tests/ --config probe.android.yaml --device emulator-5554 &
wait