Mobile app checks (UPT-006)

Embed
Preview of the card
<a href="https://forumulate.com/p/watchtower/docs/uptime-mobile"><img src="https://forumulate.com/api/public/orgs/watchtower/spaces/docs/pages/c6db6983-b9a4-4e54-8f29-14971cf18696/social-card.svg?v=3e7ae33eec8b" alt="Mobile app checks (UPT-006)" width="600" height="315"></a>

Monitor kind mobile drives a real or emulated device through an Appium server over the W3C WebDriver HTTP protocol. The Appium server is yours; Watchtower only needs its URL.

Config: appium_url (http or https, no credentials), capabilities (platformName required; keys without a prefix get appium:), steps (1 to 100).

Steps

Action

Fields

launch

app_id (optional; brings an installed app forward, the session already starts the app from the capabilities)

tap

selector

type

selector, text ({{secret.NAME}} is replaced from the vault)

swipe

from_x, from_y, to_x, to_y, duration_ms (default 300)

wait_for

selector, timeout_ms (default 5000, at most 60000)

assert_text

selector, text (the element text must contain it)

screenshot

none

A selector is {"using": ..., "value": ...} with using one of id, accessibility id, xpath, -android uiautomator, -ios predicate string.

Results

Each step has its timing in details.steps. When a step fails, the screenshot is stored like a browser check screenshot (checks/{project}/{monitor}/{run}.png) and the page source (at most 32 KiB) is in details.page_source. The session is always deleted (DELETE /session/{id}), also after a failure or timeout. The Appium URL is dialed through the address guard: public locations cannot reach private addresses, private locations can. Redirects are not followed.

Importing a recorded flow

A recorded flow is a JSON export {"steps": [...]} (or a bare array) in the shape above; paste the array into config.steps.

Updated