Appwright (current version 0.1.45) is an open-source end-to-end testing framework designed for native mobile applications on both iOS and Android platforms. It differentiates itself by providing a Playwright-like API for mobile automation, building upon the industry-standard Appium for device interaction and leveraging Playwright's robust test runner and reporting capabilities. This integrated approach combines the automation driver, test runner, and test reporter into a single package, aiming to simplify mobile E2E testing which often involves complex setups. Appwright exposes an ergonomic API that includes auto-waiting and auto-retrying mechanisms for UI elements, making tests more readable and resilient to timing issues. As a relatively new project, it is currently in pre-1.0.0 development, indicated by its frequent patch releases, and is actively seeking community feedback and contributions to mature towards a stable major release. It supports testing on local devices, emulators, and remote device farms like BrowserStack and LambdaTest.
npm install appwrightVerified import paths — ran on the pinned version, not inferred.
Demonstrates how to install Appwright, set up a basic configuration for Android and iOS projects, and write a simple E2E test to simulate user login.
Ensure your Node.js environment meets the minimum requirement. Use nvm or your package manager to update Node.js to a supported version (e.g., `nvm install 18.20.4` or `nvm use 18.20.4`).
Refer to the documentation of your chosen cloud provider (BrowserStack, LambdaTest, etc.) for how to obtain and securely configure your API keys or access credentials, typically via environment variables or direct config properties.
Verify the `buildPath` points to the correct, existing application file. Ensure the file type (`.apk`, `.app`, `.ipa`) matches the `platform` (Android/iOS) and `device.provider` (emulator/local-device/cloud-provider) requirements.
Regularly review release notes for new versions. Consider pinning to specific patch versions (e.g., `~0.1.45`) in your `package.json` and testing updates in a controlled environment before deploying to critical CI/CD pipelines.
Create `appwright.config.ts` in your project's root directory and populate it with a valid Appwright configuration, as shown in the quickstart example.
Ensure the project name passed via the `--project` flag exactly matches one of the `name` fields in your `appwright.config.ts`. Double-check for typos and casing.
Verify that the `buildPath` is correct and that the application binary file (e.g., `.apk`, `.app`, `.ipa`) actually exists at that location and is readable by the test runner.
Ensure your test function properly destructures the `device` object from the fixture, e.g., `test('My test', async ({ device }) => { ... })`. Also, confirm that `appwright.config.ts` is correctly set up and Appwright is installed.No dependency data recorded yet.