
Espresso
Summary
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.
Who it is for
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.
What is 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.
What to know first
- Multiprocess testing requires Android 8.0/API 26 or later.
- Cannot test external processes.
- Device API needs specified newer development tools.
Everything Xiaomi review
Espresso: the full review
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.
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 0.00 USD per 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.00 USD per 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.00 USD per 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.
Espresso plans and pricing
All plansCompared on mobile app testing software
- Free plan
- Yesdeveloper.android.com
- Real-device testing
- Yesdeveloper.android.com
- Automation support
- automateddeveloper.android.com
- iOS and Android
- androiddeveloper.android.com
Facts
- Purpose
- Espresso is used to write concise, beautiful, and reliable Android UI tests.developer.android.com · 30 Sept 2026
- Audience
- Espresso targets developers who consider automated testing an integral part of the development lifecycle.developer.android.com · 30 Sept 2026
- Synchronization
- Espresso waits for the message queue, AsyncTask operations, and developer-defined idling resources to be idle before UI actions or assertions.developer.android.com · 30 Sept 2026
- Core packages
- The core packages include espresso-core, espresso-web, espresso-idling-resource, espresso-contrib, espresso-intents, and espresso-remote.developer.android.com · 30 Sept 2026
- WebView testing
- Espresso-Web tests Android WebView UI components and reuses WebDriver atoms.developer.android.com · 30 Sept 2026
- Intent testing
- Espresso-Intents validates and stubs intents sent by the application under test.developer.android.com · 30 Sept 2026
- Multiprocess testing
- Multiprocess Espresso tests UI interactions across processes within an app while maintaining Espresso synchronization guarantees.developer.android.com · 30 Sept 2026
- Multiprocess limit
- Multiprocess Espresso requires Android 8.0 API level 26 or higher and cannot test external processes.developer.android.com · 30 Sept 2026
- Installation
- The setup guide installs Espresso through the SDK Manager and Gradle and recommends Android Studio.developer.android.com · 30 Sept 2026
- Execution
- Espresso tests can run in Android Studio or from the command line with Gradle.developer.android.com · 30 Sept 2026
- Analytics
- The test runner uploads a hash of the application package name for each invocation, and users can opt out with disableAnalytics.developer.android.com · 30 Sept 2026
- Release
- The AndroidX Test release page lists Espresso stable release 3.7.0.developer.android.com · 30 Sept 2026
- License
- The AndroidX Test repository is Apache-2.0 licensed.github.com · 30 Sept 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 · 30 Sept 2026
- Supported Android
- The Espresso testing framework supports Android 4.0.1/API level 14 or higher.developer.android.com · 1 Oct 2026
- Test execution
- Tests can run in Android Studio or from the command line.developer.android.com · 1 Oct 2026
- Test Recorder
- Espresso Test Recorder records device interactions and assertions, then generates a corresponding UI test without requiring manual test code.developer.android.com · 1 Oct 2026
- Accessibility
- AccessibilityChecks can be enabled in Espresso tests to evaluate views and their descendants during view actions.developer.android.com · 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 · 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 · 1 Oct 2026
- Current artifact
- The AndroidX Test release page lists androidx.test.espresso:espresso-core:3.7.0 as a dependency.developer.android.com · 1 Oct 2026
- Maker products
- Google says it makes hundreds of products including Android, YouTube, Gmail, and Google Search.about.google · 1 Oct 2026
Best Espresso alternatives
See all 12Where it ranks on Everything Xiaomi
Is Espresso yours?
Claim it for free: prove the domain, then correct facts, plans and screenshots. An editor reviews every change.
Sources
- developer.android.com/training/testing/espresso· checked 30 Sept 2026
- developer.android.com/training/testing/espresso/web· checked 30 Sept 2026
- developer.android.com/training/testing/espresso/intents· checked 30 Sept 2026
- developer.android.com/training/testing/espresso/multiprocess· checked 30 Sept 2026
- developer.android.com/training/testing/espresso/setup· checked 30 Sept 2026
- developer.android.com/jetpack/androidx/releases/test· checked 30 Sept 2026
- github.com/android/android-test· checked 30 Sept 2026
- developer.android.com/training/testing/ui-tests/behavior· checked 1 Oct 2026
- developer.android.com/training/testing/espresso/setup· checked 1 Oct 2026
- developer.android.com/studio/test/other-testing-tools/espress· checked 1 Oct 2026
- developer.android.com/training/testing/espresso/accessibility· checked 1 Oct 2026
- developer.android.com/studio/test/espresso-api· checked 1 Oct 2026






