Skip to content

Astur Docs

✦ NATIVE RUNTIME✦ 0% APPIUM OVERHEAD✦ PLAYWRIGHT ERGONOMICS

Fast, native mobile automation without the Appium server.

Astur bypasses the WebDriver proxy layer using high-speed native agents on Android and iOS. Inspect layout trees in real-time, record gestures instantly, and author tests with clean Playwright ergonomics.

PLATFORMS & FRAMEWORKS

One test API for native, Flutter, and React Native.

Astur drives the real app on Android and iOS — built with native SDKs, Flutter, or React Native — through fast native agents, the Dart VM service for deep Flutter widget-tree inspection on Android, and DOM-level control of in-app WebViews from the same test API.

Android
Emulators & devices · UIAutomator agent
iOS
Simulators & devices · XCUITest agent
Flutter
Dart VM widget tree (Android) · XCUITest tree (iOS)
React Native
Native views via testID / accessibility
NATIVE MOBILE RUNTIME

Inspect, author, and ship mobile tests in one fast loop.

Astur keeps the authoring surface tight: stream the device, inspect the semantic tree, record the flow, and export reusable @astur-mobile/test code without adding an Appium or WebDriver layer.

Android emulators & devicesiOS simulators & devices
astur-fast-loop
READY
01 INSTALL$ npm install -D @astur-mobile/test astur-mobile
02 INSPECT$ npx astur-mobile inspector —android —device emulator-5554// semantic tree mirrored, gestures visible, locators ranked
03 AUTHOR$ npx astur-mobile codegen —android —device emulator-5554// export Playwright-style flows you can keep and refine
04 SHIP$ npm test
01

Playwright-style authoring

Use fixtures, locators, assertions, retries, and reports that already feel completely natural to Playwright users.

02

Native platform agents

Android runs through UIAutomator and iOS through XCUITest. Flutter apps add deep widget-tree inspection through the Dart VM service on Android, and React Native rides the native agents directly.

03

Live inspector and codegen

Mirror the physical device, rank semantic locators, record actions, and export starter flows without leaving the docs workflow.

04

One repository, one system

Drivers, agents, test API, CLI, examples, and docs evolve together inside a single monorepo instead of splitting across disconnected tooling.

Astur keeps tests small while the runtime and native agents absorb device selection, waits, gestures, screenshots, diagnostics, and inspector state.

THE PHILOSOPHY

Why Astur?

Astur is named after the astrolabe: a portable, historic astronomical instrument that compressed complex calculations and sky observations into something small enough to hold.

Astur brings that same philosophy to handheld-device automation: a compact, high-performance test API backed by a lightning-fast native runtime that handles device lifecycle, network orchestration, and screenshot-diagnostics under the hood.

GENERATED STARTER

Take the recorded flow and keep the real spec.

Codegen gets you to a working test quickly. After that, keep the exported Playwright-style spec in source control and extend it with fixtures, helpers, and stronger assertions.

tests/login.spec.tsgenerated spec
import { expect, test } from ‘@astur-mobile/test’;
test(‘login’, async ({ device }) => {
  await device.getByLabel(‘Email’).fill(qa@example.com);
  await device.getByLabel(‘Password’).fill(‘secret’);
  await device.getByRole(‘button’, { name: ‘Login’ }).tap();
  await expect(device.getByText(‘Welcome’)).toBeVisible();
});