
Espresso
Espresso is an open-source framework for automated Android UI testing.
What Espresso is
Espresso is an open-source framework for automated Android UI testing. It coordinates actions and checks by waiting for the app’s message queue, AsyncTask work, and developer-defined idling resources to become idle. Its packages cover core tests, WebView components, idling resources, intents, and other test support. Espresso-Web tests Android WebViews, while Espresso-Intents can validate and replace intents sent by the app. Multiprocess Espresso supports interactions across processes within an app, but requires Android 8.0/API 26 or later and cannot test external processes. Tests run in Android Studio or from the command line with Gradle; setup uses the SDK Manager and Gradle, with Android Studio recommended. The framework supports Android 4.0.1/API 14 or higher. Test Recorder can turn recorded interactions and assertions into a UI test, and AccessibilityChecks can evaluate views during actions. Espresso is free under the Apache-2.0 license. The listed stable release and core dependency are version 3.7.0.
Good
- Waits for app work and idling resources before actions.
- Tests Android WebView components and intents.
- Test Recorder generates UI tests from interactions.
- Runs in Android Studio or through Gradle.
Watch out
- Multiprocess testing requires Android 8.0/API 26 or later.
- Cannot test external processes.
- Device API needs specified newer development tools.
Who it suits
Espresso suits developers who make automated testing part of Android development. It is relevant for teams testing UI flows, WebViews, intents, or in-app multiprocess interactions.
Verdict
Espresso offers focused UI automation with synchronization, WebView and intent support, and options for generating tests. Its multiprocess feature has a clear Android version floor and does not extend to external processes.
Plans and prices
From Espresso's own pricing page, checked 1 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Espresso | Free | Android UI testing · Android 4.0.1/API 14+ · single target app |
The facts
Each one read from Espresso's own pages, with the date it was checked.
What it does
- Accessibility
- AccessibilityChecks can be enabled in Espresso tests to evaluate views and their descendants during view actions.checked 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.checked 1 Oct 2026
- Audience
- Espresso targets developers who consider automated testing an integral part of the development lifecycle.checked 30 Sep 2026
- Core packages
- The core packages include espresso-core, espresso-web, espresso-idling-resource, espresso-contrib, espresso-intents, and espresso-remote.checked 30 Sep 2026
- Current artifact
- The AndroidX Test release page lists androidx.test.espresso:espresso-core:3.7.0 as a dependency.checked 1 Oct 2026
- Execution
- Espresso tests can run in Android Studio or from the command line with Gradle.checked 30 Sep 2026
- Installation
- The setup guide recommends Android Studio and uses Gradle dependencies from the AndroidX Test libraries.checked 1 Oct 2026
- Intent testing
- Espresso-Intents can match and validate outgoing intents or provide stub responses for delegated functionality.checked 1 Oct 2026
- License
- The Espresso source repository is public and identifies its license as Apache-2.0.checked 1 Oct 2026
- Multiprocess limit
- Multiprocess Espresso requires Android 8.0 API level 26 or higher and cannot test external processes.checked 30 Sep 2026
- Multiprocess testing
- Multiprocess Espresso tests UI interactions across processes within an app while maintaining Espresso synchronization guarantees.checked 30 Sep 2026
- Purpose
- Espresso provides APIs for writing concise Android UI tests that simulate user interactions with Views.checked 1 Oct 2026
- Release
- The AndroidX Test release page lists Espresso stable release 3.7.0.checked 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.checked 30 Sep 2026
- Synchronization
- Espresso automatically synchronizes test actions with the app UI by detecting when the main thread is idle.checked 1 Oct 2026
- Test execution
- Tests can run in Android Studio or from the command line.checked 1 Oct 2026
- Test Recorder
- Espresso Test Recorder records device interactions and assertions, then generates a corresponding UI test without requiring manual test code.checked 1 Oct 2026
- WebView testing
- Espresso-Web tests Android WebView UI components and reuses WebDriver atoms.checked 30 Sep 2026
Where it runs
- Device API
- The Espresso Device API simulates configuration changes such as rotation and screen unfolding and runs actions synchronously.checked 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.checked 1 Oct 2026
- Supported Android
- The Espresso testing framework supports Android 4.0.1/API level 14 or higher.checked 1 Oct 2026
The company
- Maker products
- Google says it makes hundreds of products including Android, YouTube, Gmail, and Google Search.checked 1 Oct 2026
The full review of Espresso
Overview
Espresso is a free, open-source framework for writing Android UI tests in Kotlin or Java. It suits developers who build automated testing into their development lifecycle and want tests that run alongside Android app work. Its strongest case is synchronized, app-focused testing; it is not a cross-platform test framework.
Before UI actions and assertions, Espresso waits for the message queue, AsyncTask work, and developer-defined idling resources to become idle. That synchronization can reduce fragile timing in UI tests, though teams must define idling resources for app work outside the framework’s built-in signals.
Tests run in Android Studio or from the command line with Gradle. The AndroidX Test release page lists stable Espresso 3.7.0, including androidx.test.espresso:espresso-core:3.7.0. Espresso supports Android 4.0.1/API 14 and higher.
Key features
Espresso’s packages cover core UI tests and more targeted needs: espresso-core, espresso-web, espresso-idling-resource, espresso-contrib, espresso-intents, and espresso-remote. This modular scope is useful when a test suite needs to check app UI, embedded web content, or app-directed intents without treating those as separate testing disciplines.
- WebView testing: Espresso-Web tests Android WebView components and reuses WebDriver atoms, making it relevant to apps with embedded web UI rather than general browser testing.
- Intent testing: Espresso-Intents validates and stubs intents sent by the app under test, helping developers check expected app interactions without relying on every real intent destination.
- Multiprocess testing: Multiprocess Espresso preserves Espresso synchronization while testing UI interactions across processes within an app. It requires Android 8.0/API 26 or higher and cannot test external processes, so it is a narrow fit for apps whose own UI spans processes.
- Test Recorder: It records device interactions and assertions, then generates a UI test, giving developers a way to start a test without writing all of its code manually.
- Accessibility checks: AccessibilityChecks can evaluate views and their descendants during view actions, making accessibility review part of UI test execution.
- Device API: It simulates configuration changes such as rotation and screen unfolding, with synchronous actions. 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.
Pricing
Espresso is free and open source, with the Apache-2.0 license. The Espresso plan costs free and covers Android UI testing, Android 4.0.1/API 14 or higher, and a single target app. There is no paid tier to unlock more targets, so teams needing broader testing infrastructure should weigh the framework’s focused scope rather than expect a larger Espresso plan.
Platforms
Espresso is an Android testing framework, despite broader platform tags sometimes associated with software listings. It supports real-device testing, automated execution, and offline mode; tests can run in Android Studio or through Gradle. It does not provide iOS testing, and data synchronization is not part of its role. Installation uses the SDK Manager and Gradle, with Android Studio recommended.
The test runner uploads a hash of the application package name on each invocation. Users can opt out by setting disableAnalytics.
Who it's for
Espresso is best for Android developers who want UI tests close to the app development workflow, especially when synchronization, WebView checks, intent validation, or in-app multiprocess interactions matter. Its Kotlin and Java support and Gradle execution make it a natural choice for teams already building Android apps with those tools.
It is a poor fit when the requirement is one UI automation framework spanning Android and iOS, or when tests must cross into external processes. The multiprocess feature’s Android 8.0/API 26 floor also rules it out for those particular tests on older devices.
Pros and cons
- Pro: Built-in synchronization waits for key Android work and custom idling resources, reducing the need to coordinate UI timing manually.
- Pro: WebView, intent, accessibility, and configuration-change capabilities address testing needs beyond basic view interaction.
- Pro: Free, open-source access and both IDE and command-line execution suit teams integrating tests into Android development.
- Con: Android-only scope leaves iOS teams needing another approach.
- Con: Multiprocess testing is limited to app processes and Android 8.0/API 26 or higher.
- Con: The Device API brings specific modern tooling and emulator requirements, limiting its use in older development setups.
Alternatives
Maestro is worth considering when broader platform coverage matters: its listed platforms include Android, iOS, Linux, macOS, web, and Windows, and its free open-source Local plan supports running on your own devices.
TestMu AI is a freemium alternative with Android, iOS, API, web, and other platform coverage; its listed KaneAI Starter plan is $17 a month billed annually and includes one agent and 2,000 credits per month per agent.
TestMu AI Real Device Cloud may suit teams seeking device-cloud sessions rather than a local Android UI framework. Its Free plan includes one parallel test and five live sessions per month, up to two minutes each.
Firebase Cloud Messaging is another free Android-capable product, though its role differs from Espresso’s UI testing.
Sauce Labs Cross-Browser Testing is a paid option with Android, iOS, web, and desktop platform coverage; its Live Testing plan is $39 a month billed annually, or $49 month to month.
Apptest.ai is a paid alternative with Android, iOS, web, and other platform coverage, and offers a free trial.
Keysight Eggplant Test is an enterprise testing alternative offered with custom pricing.
Beta Family is a freemium alternative for web.
For more options, browse Mobile App Testing Software or Mobile Databases.
Verdict
Choose Espresso if you build Android apps and want free UI automation with reliable synchronization and focused support for WebViews, intents, and accessibility checks. Look elsewhere if you need iOS coverage, external-process testing, or a broader device-testing service.
Getting started
- Install Espresso through the SDK Manager and Gradle
- Use Android Studio, which the setup guide recommends
- Add androidx.test.espresso:espresso-core:3.7.0 as a dependency
- Run tests in Android Studio or from the command line with Gradle
Limits worth knowing
Multiprocess Espresso requires Android 8.0/API 26 or higher and cannot test external processes. The 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.
Questions
How much does Espresso cost?
Espresso is free. The listed plan is free.
Is Espresso open source?
Yes. The AndroidX Test repository is Apache-2.0 licensed.
Which Android versions does it support?
The Espresso testing framework supports Android 4.0.1/API level 14 or higher.
Can Espresso test WebViews and intents?
Yes. Espresso-Web tests Android WebView components, and Espresso-Intents validates and stubs intents sent by the app under test.
How can I run Espresso tests?
Tests can run in Android Studio or from the command line with Gradle.
Does it support iOS testing?
Espresso is used for Android UI testing; its stated supported Android minimum is Android 4.0.1/API 14 or higher.
Alternatives to Espresso
- 1

Katalon Studio
Free planAndroidiOSWebAPI8.4From $1,000 a year - 2

TestMu AI
Free planAndroidiOSWebAPI8.3From $17 a month - 3
Pgyer
Free planAndroidiOSWebAPI8.0CN¥0.03 one-time - 4
Keysight Eggplant Test
AndroidiOSWebAPI7.9$9,999 one-time - 5
Perfecto
AndroidiOSWebAPI7.9From $83 a month - 6

TestingBot
AndroidiOSWebAPI7.9From $20 a month
