emulator block configures local or remote mobile emulators used by the
local editor and momentic-mobile CLI. It applies only to mobile test runs.
momentic.config.yaml
"local" | "us" | "eu" | "as" | "us-east1" | "us-east2" | "us-west1" | "us-west2" | "eu-north1" | "as-south1"
Set
local to use an Android emulator or
iOS simulator on your machine.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 prefer a
particular data center. 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. Do not combine it 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.
Do not combine it 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
object | false
Route selected traffic from remote iOS simulators and Android emulators
through the machine running Momentic. Set A test-level tunnel object overrides the whole project-level tunnel object. The
local editor uses the same tunnel selectors without capturing traffic or
inspecting HTTPS. Capture applies only to CLI test runs. Tunneling is skipped on
local emulators and simulators.Selected traffic uses the network and source IP of the machine running Momentic.
Enabling capture adds HTTPS inspection, which may fail for apps with certificate
pinning. Capture includes matching traffic from any app on the device. Capture
startup failures warn and let the test continue without the tunnel or network
logs. Routing-only startup failures fail the attempt. Only requests that
complete during capture appear in the network logs.
capture: true to record HTTP(S)
requests and responses during CLI test runs. View captured traffic in the
run’s Network tab.
Tunneling and capture are off by default.momentic.config.yaml
selectors is required. Use domains (api.example.com), quoted wildcard
subdomains ("*.example.com"), or IP/localhost ports (127.0.0.1:8080).
Wildcards exclude the root domain, so the example selects both example.com and
its subdomains. URLs, domain:port destinations, and catch-all wildcards (*,
*.*) are not supported. You can select up to 64 domains and 10 exact ports,
with no duplicates.Omit capture or set it to false to tunnel without network logs or HTTPS
inspection. Set tunnel: false in a test to disable the project-level tunnel: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 up 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
elapses 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