Espresso

Web · Mac · Linux · Android · iPhone

Freedom report

Three barsScore 6.7

  • Free tierA free tier is on its own pricing page
  • Open codeNo open-source code on record
  • Runs widely5 of 6 device platforms
  • DocumentedPlans, terms and facts published

Espresso is a free, open-source framework for automated Android UI testing. It coordinates tests by waiting for the app’s message queue, AsyncTask work and developer-defined idling resources to become idle before actions or assertions. Its packages cover core tests, WebView components, idling resources, intents, contributions and remote testing. Espresso-Web tests Android WebViews, 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 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, with Android Studio recommended. The framework supports Android 4.0.1/API 14 or higher. Test Recorder can turn recorded device interactions and assertions into a UI test, while AccessibilityChecks evaluate views during actions. The AndroidX Test release page lists stable Espresso 3.7.0 and its core dependency at that version. The repository uses the Apache-2.0 license.

Who it is for

Espresso suits developers who incorporate automated testing into Android development. It is relevant for teams writing UI checks for Android apps, including apps with WebViews or in-app multiprocess interactions.

What is good

  • Free and Apache-2.0 licensed.
  • Coordinates actions with app queues and idling resources.
  • Tests can run in Android Studio or Gradle.
  • Test Recorder generates UI tests from recorded interactions.
  • Supports Android 4.0.1/API 14 or higher.

What to know first

  • Multiprocess tests require Android 8.0/API 26 or higher.
  • Multiprocess Espresso cannot test external processes.

Freedom251 review

Espresso: the full review

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

Overview

Espresso is a free, open-source framework for testing Android app interfaces, best suited to developers who make automated tests part of their development process. Its appeal is focused rather than broad: it brings synchronization and tools for Android UI, WebView, intent, and accessibility checks into one testing framework.

Espresso supports Android 4.0.1/API 14 and later, with Kotlin and Java as its SDK languages. Tests run in Android Studio or from the command line with Gradle, so teams can work in the IDE or include test execution in command-line workflows. Stable release 3.7.0 is identified on the AndroidX Test release page.

Key features

Espresso’s packages divide its capabilities across espresso-core, espresso-web, espresso-idling-resource, espresso-contrib, espresso-intents, and espresso-remote. That gives Android teams a route beyond basic view checks, although the framework remains centered on Android app testing.

  • Synchronization: Before UI actions or assertions, Espresso waits for the message queue, AsyncTask work, and developer-defined idling resources to become idle. This helps keep tests aligned with app activity instead of relying on arbitrary timing; work outside those signals requires an appropriate idling resource.
  • WebView and intent tests: Espresso-Web tests Android WebView components and reuses WebDriver atoms. Espresso-Intents validates and stubs intents sent by the app under test, useful for checking app-directed interactions without treating them as general browser or system-wide tests.
  • Test generation: Espresso Test Recorder captures device interactions and assertions, then generates a corresponding UI test without requiring manual test code. It can help get a test started, while Espresso also supports writing tests directly.
  • Accessibility checks: AccessibilityChecks can evaluate views and their descendants during view actions in Espresso tests, bringing accessibility evaluation into the UI test flow.
  • Device behavior: Espresso Device simulates configuration changes such as rotation and screen unfolding and runs actions synchronously. It requires Android Studio Iguana or later, Android Gradle Plugin 8.3 or later, Android Emulator 33.1.10 or later, and an API 24+ virtual device, so it is not a capability to assume in older development setups.
  • Multiprocess testing: Multiprocess Espresso preserves synchronization while testing interactions across processes within an app. It requires Android 8.0/API 26 or later and cannot test external processes, making it a targeted option rather than a way to cover arbitrary process boundaries.

The framework installs through SDK Manager and Gradle, with Android Studio recommended. Tests can run in Android Studio or through Gradle on the command line. The test runner uploads a hash of the application package name per invocation; users can opt out with disableAnalytics.

Pricing

Espresso is open source under the Apache-2.0-licensed AndroidX Test repository. Its Espresso plan costs 0.00 USD per free and covers Android UI testing, Android 4.0.1/API 14+, and a single target app. There is no paid plan to weigh against it in the supplied plan details, so the key trade-off is not price but its Android-specific scope.

Platforms

Espresso is an Android testing framework, despite broader platform labels sometimes associated with the product. The supported framework baseline is Android 4.0.1/API 14+, and the plan is for a single target app. It supports real-device testing and can also run via Android Studio or Gradle command line. Offline mode is supported; data synchronization is none. It is not the choice for teams seeking one UI test framework for iOS and Android.

Who it's for

Espresso fits Android developers who want UI checks integrated into the app development lifecycle, especially when synchronization, WebView coverage, intent verification, generated tests, or accessibility checks are useful. Kotlin and Java teams can use it, and both IDE-based and command-line execution suit different development workflows.

It is a weaker fit for cross-platform testing, external-process interaction, or teams whose development environment cannot meet the Device API or multiprocess requirements. Those features have specific tooling and Android-version thresholds, while core Android UI support reaches older API levels.

Pros and cons

  • Pro: Built-in waiting for common app work and developer-defined idling resources can make UI actions and assertions less dependent on hand-timed waits.
  • Pro: WebView, intent, accessibility, and test-generation tools broaden the Android UI testing workflow without changing its core focus.
  • Pro: Free, open-source access and Android Studio or Gradle execution make it usable without a software subscription.
  • Con: Its scope is Android UI testing, not a shared Android-and-iOS test framework.
  • Con: Multiprocess tests exclude external processes and require Android 8.0/API 26 or later.
  • Con: Device configuration simulations depend on newer Android Studio, Gradle plugin, emulator, and virtual-device versions.

Alternatives

For other mobile software categories, browse Mobile App Testing Software or Mobile Databases. Espresso is the more relevant choice when the job is Android UI testing; database products below serve different needs.

  • Hive is a free mobile database option with a free plan that includes 1,000 AI credits per month, 200MB storage, up to 10 workspace members, and unlimited tasks; choose it for those database and workspace needs rather than UI tests.
  • RxDB offers a free core with replication and realtime sync; choose it when a database with sync is the requirement, not Android interface testing.
  • Ditto has a free plan with 10 cloud device connections, 2GB storage, 5GB data transfer, no SLA, and limited support; it suits a mobile database use case rather than Espresso’s testing role.
  • ObjectBox offers a no-cost core database plan; choose it for a database rather than UI test automation.
  • Firebase Cloud Messaging is a no-cost messaging service, relevant when the need is cloud messaging instead of UI tests.
  • Firestore is a database alternative with document read and write quotas; choose it for document data rather than Android UI testing.
  • TBase is another option in the mobile databases category.
  • Isar is a free, open-source database option; choose it for database needs rather than UI testing.

Verdict

Choose Espresso if you build Android apps and want free, synchronized UI testing with focused support for WebViews, intents, accessibility, and test generation. Its main reason to look elsewhere is equally clear: it does not offer a cross-platform testing scope, and its specialized multiprocess and device-configuration features carry firm version and tooling limits.

Espresso plans and pricing

All plans
Espresso Free Android UI testing · Android 4.0.1/API 14+ · single target app developer.android.com · 1 Oct 2026

Compared on mobile app testing software

Free plan
Yes
Real-device testing
Yes
Automation support
automated
iOS and Android
android

Best Espresso alternatives

See all 12