emulator block configures remote mobile emulators used by the local editor
and momentic-mobile CLI. It applies only to mobile test runs.
momentic.config.yaml
"us" | "eu" | "as" | "us-east1" | "us-east2" | "us-west1" | "us-west2" | "eu-north1" | "as-south1"
Region where the emulator runs. Momentic recommends continent values (
us,
eu, as) because they let Momentic schedule across every data center in the
continent, which improves allocation reliability compared to pinning a
specific data-center region. Specific regions (us-east1, us-east2,
us-west1, us-west2, eu-north1, as-south1) are still accepted when you
need deterministic latency to a particular location. as is Android-only.
When unset, Momentic picks the region closest to your source IP.momentic.config.yaml
"us" | "eu" | "as"
Pin emulators to a single jurisdiction. Within that jurisdiction, the
emulator may be scheduled in any of its data centers, but never outside it.
Unlike
emulator.region, which is a scheduling preference that can fall back
to other regions when capacity runs out, jurisdiction is a hard constraint,
and creation fails if no capacity is available inside it. Set this when your
app has data residency requirements, e.g. it must never run outside the US.
Momentic rejects a region outside the jurisdiction as a configuration
error before any emulator is created. as is Android-only; combining
platform: ios with jurisdiction: as is also rejected. When unset,
emulators may fall back to any region worldwide.momentic.config.yaml
region is not required alongside jurisdiction. On its own, jurisdiction
schedules the emulator in the jurisdiction’s closest data center. Combine the
two only to express a latency preference within the jurisdiction, e.g.
region: us-west1 with jurisdiction: us.boolean
Android only. Auto-grant permissions to the app under test at install and
launch time, so permission confirmation dialogs (camera, location,
notifications, etc.) never appear. Has no effect on iOS; use
emulator.autoAcceptAlerts there instead. Default: false.momentic.config.yaml
boolean
iOS only. Automatically accept native alert dialogs as they appear during
the run, including permission prompts (“Allow … to access …”) and other
system alerts. Should not be combined with
emulator.autoDismissAlerts. Has no
effect on Android; use emulator.autoGrantPermissions there instead.
Default: false.momentic.config.yaml
boolean
iOS only. Automatically dismiss native alert dialogs as they appear
during the run, declining permission prompts and closing other system alerts.
Should not be combined with
emulator.autoAcceptAlerts. Default: false.momentic.config.yaml
boolean
Android only. Stream emulator logcat entries into the local editor and CLI
run output. Capture is disabled by default because continuous log streaming
can slow the emulator, especially during local editor sessions. Enable it
when retaining logcat entries for debugging is more important than emulator
responsiveness. Individual tests
can override the project default from the test options dialog. Default:
false.momentic.config.yaml
boolean
iOS only. Stream simulator syslog entries into the local editor and CLI
run output. Capture is disabled by default because continuous log streaming
can slow the simulator, especially during local editor sessions. Enable it
when retaining syslog entries for debugging is more important than simulator
responsiveness. Individual tests
can override the project default from the test options dialog. Default:
false.momentic.config.yaml
number
How long to wait for a local emulator or simulator to finish starting, in
milliseconds. Raise it on slow machines such as hosted CI runners, where a
fresh simulator or emulator can take several minutes to boot. Has no effect on
remote emulators. Default:
300000.momentic.config.yaml
boolean
Use the native Android accessibility tree inside webviews instead of
Momentic’s custom implementation. The custom implementation includes more
elements by default. Disabling it can speed webview interactions by 1-2
seconds but may break interactions with elements outside the viewport.
Default:
false.momentic.config.yaml
number
Budget for every wait and retry on a single interaction, in milliseconds:
settling the screen, the readiness check before Momentic locates an element
with AI, and retrying a cached element. Raise it for apps that take a long
time to render; lower it to fail faster. Default:
5000.momentic.config.yaml
boolean
Wait for the screen to settle after every step that can change it, so one
step’s effects land before the next step runs. Assertions, extracts, and waits
do not change the screen and are unaffected. Turn this on for apps that load
incrementally or animate between screens. Default:
false.This does not control the waits that happen before Momentic targets an
element. Locating an element with AI always waits for the screen to be ready
first, and Momentic retries a cached element until smartWaitingTimeoutMs
either way, so leaving this off does not make targeting less reliable. This
setting only controls whether the run waits on a step’s effects before the next
step begins.momentic.config.yaml
number
Default maximum wait time for element check assertions to become true, in
seconds. Element check steps with an explicit timeout are unaffected.
Default:
5.momentic.config.yaml
object
Limit the emulator’s Wi-Fi bandwidth for the whole run, in kilobits per
second, to test your app on a slow connection. Set
downloadKbps,
uploadKbps, or both. Omit a direction to leave it unlimited. Hosted Android
emulators support this; local emulators and iOS ignore this setting.momentic.config.yaml
number
Default delay between key presses for type steps, in milliseconds. Steps with
an explicit key press delay are unaffected. Increase this if your app needs
more time to react to each keystroke. Default:
25.momentic.config.yaml