Installation
Introduction
Mobilewright is an end-to-end testing framework for mobile applications. It provides a TypeScript API for automating iOS and Android devices, with built-in auto-waiting, assertions, and test reporting.
- Cross-platform — iOS and Android, simulators, emulators and real devices
- Auto-waiting — No manual waits or sleeps
- TypeScript-first — Full type safety and autocompletion
- Agent-ready — Built for AI agent integration
Installing Mobilewright
npm install mobilewright @mobilewright/test
Initialize a new project:
npm init mobilewright@latest
This creates the configuration file and an example test. If either file already exists, it will be skipped.
Directory layout
After initialization, your project will look like this:
mobilewright.config.ts
package.json
package-lock.json
tests/
example.test.ts
The mobilewright.config.ts file defines your target platform, app bundle ID, and device:
import { defineConfig } from 'mobilewright';
export default defineConfig({
platform: 'ios',
bundleId: 'com.example.myapp',
deviceName: /iPhone 16/,
installApps: './builds/myapp.ipa',
timeout: 10_000,
});
The tests/example.test.ts file contains a starter test:
import { test, expect } from '@mobilewright/test';
test('app launches and shows home screen', async ({ screen }) => {
await expect(screen.getByText('Welcome')).toBeVisible();
});
Running tests
Run the example test:
npx mobilewright test

HTML test reports
Run tests with the HTML reporter:
npx mobilewright test --reporter html
After the test run, open the report:
npx mobilewright show-report
This starts a local server at localhost:9323 with an interactive report where you can filter results, inspect errors, and view screenshots.
