Saturday, October 24, 2026 4,350 lists 78,096 records on file
List your app or device

  1. Home
  2. Mobile App Testing Software
  3. Espresso

Espresso

What it is

Espresso is a free, open-source framework for writing automated UI tests for Android applications. Before performing actions or assertions, it waits for the app's message queue, AsyncTask work, and developer-defined idling resources to become idle. Its packages cover core testing, WebView testing, idling resources, intents, contributions, and remote testing. Espresso-Web tests Android WebView components, while Espresso-Intents can validate and stub intents sent by the app under test. Multiprocess Espresso supports UI interactions across processes within an app, but it requires Android 8.0/API 26 or later and cannot test external processes. Tests can run in Android Studio or from the command line with Gradle; setup uses the SDK Manager and Gradle, and Android Studio is recommended. Espresso supports Android 4.0.1/API 14 or higher. Test Recorder can turn recorded device interactions and assertions into a UI test, while AccessibilityChecks can evaluate views during actions. The listed stable release and core dependency are version 3.7.0.

For and against

For

  • Free and Apache-2.0 licensed.
  • Waits for app work to become idle before UI actions.
  • Tests Android WebView components and intents.
  • Tests run in Android Studio or with Gradle.
  • Test Recorder can generate UI tests from interactions.

Against

  • Multiprocess testing requires Android 8.0/API 26 or later.
  • Multiprocess Espresso cannot test external processes.
  • Supports Android, not iOS.

The verdict

Espresso offers Android UI testing with synchronization, WebView and intent support, and test-generation tools. Its multiprocess option has specific Android version and process limits.

Who it suits

Espresso suits Android developers who make automated testing part of their development lifecycle. It is designed for testing Android UI rather than iOS applications.

Plans and prices

Espresso

Free

Android UI testing · Android 4.0.1/API 14+ · single target app

Every plan, in full

On the record

Accessibility
AccessibilityChecks can be enabled in Espresso tests to evaluate views and their descendants during view actions.developer.android.com · read 1 Oct 2026
Analytics
The test runner uploads a hash of the application package name for each invocation, and analytics can be disabled with the disableAnalytics instrumentation argument.developer.android.com · read 1 Oct 2026
Audience
Espresso targets developers who consider automated testing an integral part of the development lifecycle.developer.android.com · read 30 Sep 2026
Core packages
The core packages include espresso-core, espresso-web, espresso-idling-resource, espresso-contrib, espresso-intents, and espresso-remote.developer.android.com · read 30 Sep 2026
Current artifact
The AndroidX Test release page lists androidx.test.espresso:espresso-core:3.7.0 as a dependency.developer.android.com · read 1 Oct 2026
Device API
The Espresso Device API simulates configuration changes such as rotation and screen unfolding and runs actions synchronously.developer.android.com · read 1 Oct 2026
Device API requirements
Espresso Device API requires Android Studio Iguana or higher, Android Gradle Plugin 8.3 or higher, Android Emulator 33.1.10 or higher, and an API 24 or higher virtual device.developer.android.com · read 1 Oct 2026
Execution
Espresso tests can run in Android Studio or from the command line with Gradle.developer.android.com · read 30 Sep 2026
Installation
The setup guide recommends Android Studio and uses Gradle dependencies from the AndroidX Test libraries.developer.android.com · read 1 Oct 2026
Intent testing
Espresso-Intents can match and validate outgoing intents or provide stub responses for delegated functionality.developer.android.com · read 1 Oct 2026
License
The Espresso source repository is public and identifies its license as Apache-2.0.github.com · read 1 Oct 2026
Maker products
Google says it makes hundreds of products including Android, YouTube, Gmail, and Google Search.about.google · read 1 Oct 2026
Multiprocess limit
Multiprocess Espresso requires Android 8.0 API level 26 or higher and cannot test external processes.developer.android.com · read 30 Sep 2026
Multiprocess testing
Multiprocess Espresso tests UI interactions across processes within an app while maintaining Espresso synchronization guarantees.developer.android.com · read 30 Sep 2026
Purpose
Espresso provides APIs for writing concise Android UI tests that simulate user interactions with Views.developer.android.com · read 1 Oct 2026
Release
The AndroidX Test release page lists Espresso stable release 3.7.0.developer.android.com · read 30 Sep 2026
Support
The project directs general questions to its AndroidX Test Discuss mailing list and specific questions to Stack Overflow, while using GitHub issues for feature requests and bugs.github.com · read 30 Sep 2026
Supported Android
The Espresso testing framework supports Android 4.0.1/API level 14 or higher.developer.android.com · read 1 Oct 2026

The review

Overview

Espresso is a free, open-source framework for testing Android app interfaces, best suited to developers who want UI checks inside their development lifecycle. Its strength is synchronized testing of an app’s own interface and behavior; teams seeking one framework for Android and iOS should look elsewhere.

Espresso’s supported Android range begins at Android 4.0.1/API 14, and tests can run in Android Studio or from the command line with Gradle. Kotlin and Java are its SDK languages. The AndroidX Test release page lists stable release 3.7.0, including androidx.test.espresso:espresso-core:3.7.0.

Key features

Espresso waits for the message queue, AsyncTask operations, and developer-defined idling resources to become idle before UI actions or assertions. That synchronization helps keep tests aligned with app work instead of relying on arbitrary waits. For work not covered by those signals, developers need to provide an idling resource themselves.

The framework’s packages—espresso-core, espresso-web, espresso-idling-resource, espresso-contrib, espresso-intents, and espresso-remote—cover different testing needs within Android apps. The extensions are useful when a test suite reaches beyond ordinary view interactions, but their scope remains app-focused rather than a general cross-platform test solution.

  • WebView tests: Espresso-Web tests Android WebView components and reuses WebDriver atoms, a focused fit for apps with embedded web interfaces.
  • Intent checks: Espresso-Intents validates and stubs intents sent by the app under test, letting developers check app-directed interactions without treating external processes as test targets.
  • Multiprocess testing: Multiprocess Espresso carries Espresso synchronization across UI interactions between processes within one app. It requires Android 8.0/API 26 or higher and cannot test external processes, which narrows its usefulness for apps with broader process boundaries.
  • Test generation: Espresso Test Recorder captures device interactions and assertions, then generates a UI test without manual test coding. It can provide a starting point for recorded flows, while teams still need to maintain the resulting tests as app behavior changes.
  • Accessibility checks: AccessibilityChecks can be enabled to evaluate views and their descendants during view actions, adding checks to UI tests rather than requiring a separate interaction flow.
  • Device scenarios: The Espresso Device API simulates configuration changes such as rotation and screen unfolding, with actions run synchronously. It requires Android Studio Iguana or newer, Android Gradle Plugin 8.3 or newer, Android Emulator 33.1.10 or newer, and an API 24-or-higher virtual device.

Setup uses the SDK Manager and Gradle, with Android Studio recommended. Tests can also run from the command line with Gradle, which gives teams a route beyond the IDE for execution. The test runner uploads a hash of the application package name for each invocation; users can opt out with disableAnalytics.

Pricing

Espresso is open source and free to use. Its single plan, Espresso: free, covers Android UI testing, Android 4.0.1/API 14 or higher, and a single target app. This is a direct fit for developers building tests for one Android app without a paid tier or trial to weigh. The single-target scope and Android focus make it a poor match for teams needing a multi-app or iOS testing plan.

Platforms

Espresso is an Android testing framework, not an iOS test tool despite broader platform labels. It supports Android 4.0.1/API 14 and higher, with real-device testing and offline mode. Android Studio and Gradle provide the setup and execution paths; Android Studio is recommended. Multiprocess tests have the higher Android 8.0/API 26 requirement, while the Device API has its own newer tooling and virtual-device requirements.

Who it's for

Espresso suits Android developers who treat automated testing as part of app development and want synchronized UI checks, including focused coverage for WebViews, intents, accessibility, or configuration changes. It is less suitable for teams testing iOS, external processes, or a broad set of target apps under the stated single-app plan.

Pros and cons

  • Pro: Built-in waiting for message-queue and AsyncTask activity can reduce timing-related coordination in UI tests.
  • Pro: Separate packages address WebViews, intents, and other specialized app-testing needs without changing the Android focus.
  • Pro: Free, open-source distribution removes a software charge for Android UI testing.
  • Con: Multiprocess coverage excludes external processes and requires Android 8.0/API 26 or higher.
  • Con: The Device API depends on recent Android tooling and an API 24-or-higher emulator, limiting use on older development setups.
  • Con: Its Android scope and single-target plan do not suit teams looking for a cross-platform or multi-app plan.

Alternatives

For adjacent mobile software categories, see Mobile App Testing Software and Mobile Databases. The latter is a category link rather than a direct substitute for UI testing.

  • Firebase Cloud Messaging is a free, no-cost service, not a direct UI-testing substitute.
  • Firestore is a freemium option with free daily document-read and write allowances; choose it when those database quotas, rather than UI testing, fit the need.
  • Ditto is a freemium mobile database; its Free plan includes 10 cloud device connections, 2GB storage, 5GB data transfer, no SLA, and limited support, making it relevant when those database limits fit the project.
  • Hive offers a free plan with 1,000 AI credits per month, 200MB storage, and up to 10 workspace members, for readers seeking that mobile database plan rather than UI tests.
  • Isar is a free, open-source, Apache-licensed option for Android, iOS, and web; choose it for that database use case, not Android UI testing.
  • ObjectBox offers a free core database plan; it is for database needs rather than Espresso’s UI-testing role.
  • RxDB has a free plan with replication and realtime sync; choose it when those database capabilities are the priority.
  • SQLite.swift is a free, MIT-licensed Swift library distributed as source code, a fit for Swift database work rather than Android UI testing.

Verdict

Choose Espresso if you build Android apps and want free, synchronized UI testing with targeted tools for WebViews, intents, and device changes. Its main reason to choose it is that it keeps those checks close to Android app work; look elsewhere if you need iOS coverage, tests of external processes, or a plan for more than one target app.

Alternatives to Espresso

Every alternative, ranked