---
title: Espresso Cloud Testing | Run Espresso on Real Android Devices
description: Run Android Espresso tests on real Galaxy, Pixel and Xiaomi devices in
  the TestingBot cloud. Native Java & Kotlin, parallel execution, video & log artifacts,
  GDPR-compliant.
source_url:
  html: https://testingbot.com/features/automation/espresso
  md: https://testingbot.com/features/automation/espresso.md
---

Espresso cloud 
# Run Espresso on real Android devices

Run your Espresso suite on real Galaxy, Pixel, OnePlus and Xiaomi devices from Android 4.4 through Android 15 with a single CLI command. Massive parallelism, video & log artifacts and a 99.9% uptime SLA.

Choosing a framework? See [Appium vs Espresso](https://testingbot.com/appium-vs-espresso), or the [full automation framework lineup](https://testingbot.com/features).

[Start free](https://testingbot.com/users/sign_up) [Request a demo](https://testingbot.com/demo)

- **Real Android devices:** 200+
- **Android versions:** 4.4 → 15
- **Uptime SLA:** 99.9%

Trusted by some of the world's most innovative companies

 30-second answer 
## Why run Espresso on TestingBot?

Real Android devices

Run on a fleet of real Galaxy, Pixel, OnePlus and Xiaomi devices, not just emulators. Latest flagships on day one, plus a deep legacy fleet from Android 4.4.

Replace your in-house Android lab

Skip the cabinet of dusty phones, the swollen batteries and the OEM update treadmill. TestingBot has run Android tests on real devices for 5+ years.

Native Java & Kotlin

Use the same Espresso framework Google ships with Android Studio. Same APIs, same JUnit assertions, real native performance.

 What is Espresso? 
## Espresso in 60 seconds

 ![Espresso](https://testingbot.com/assets/environments/svg/android-1b3d235e17522e2238e1c55b4e9cdd41219f653cd958ea065877d3813f32ffc3.svg)

### Espresso

Google · built into Android Studio · Java / Kotlin

Espresso is Google's official UI testing framework for Android, built into Android Studio and the Android SDK. It uses the AndroidJUnitRunner instrumentation runner, and lets you script taps, swipes, scrolls, intents and view assertions against your app's real UI.

Because Espresso runs in the same process as your app, tests are fast and reliable, with automatic synchronisation between the test and the UI thread. It is the canonical choice for fast, in-process Android UI tests.

- Native Google framework, built into Android Studio
- Java and Kotlin bindings
- Real Galaxy, Pixel, OnePlus, Xiaomi and emulators
- View matchers, view actions, view assertions, intents
- AndroidJUnitRunner, JUnit XML output for CI

 One-line CLI 
## Run Espresso on real devices with one command

Install the TestingBot CLI, point it at your app APK and your test APK, pick a device — done. Uploads, capabilities and result polling are all handled for you.

install the CLI step 1

```bash
# Install the TestingBot CLI
$ npm install -g testingbot-cli

# Authenticate (once) — set your KEY and SECRET
$ export TESTINGBOT_KEY=your-key
$ export TESTINGBOT_SECRET=your-secret

# Build app + Espresso test APKs (one-off)
$ ./gradlew assembleDebug \
    assembleDebugAndroidTest
```

run Espresso step 2

```bash
# Run Espresso on a real Pixel — one command
$ testingbot espresso app.apk app-test.apk \
    --device "Pixel 8" \
    --platform-version "14" \
    --real-device

# Or, on a Galaxy
$ testingbot espresso app.apk app-test.apk \
    --device "Galaxy S24" \
    --real-device

# → live results in your TestingBot dashboard
# → JUnit XML, video and logcat via REST API
```

See the full [Espresso on TestingBot documentation](https://testingbot.com/support/app-automate/espresso) for advanced flags, parallel runs and CI integration.

 Buy vs build 
## TestingBot vs an in-house Android device lab

Maintaining your own Android device lab is expensive. Devices break, OEMs ship updates on their own schedule, and Samsung's Knox controls keep changing. Here is how a hosted Android device cloud compares.

| Capability | TestingBot | In-house Android lab |
| --- | --- | --- |
| Device coverage | Galaxy, Pixel, OnePlus, Xiaomi from Android 4.4 to 15 | Limited to what you can buy and rack |
| Time to first test | Minutes, one CLI command and you are running | Weeks of provisioning, ADB, MDM and tethering |
| Parallel scaling | Up to 100 concurrent Espresso sessions | Capped by the number of devices you own |
| Video & logs | Video, logcat, screenshots and JUnit XML | Roll your own recording & log aggregation |
| Reliability | 99.9% uptime SLA, 24/7 monitoring | You replace dead batteries and broken screens |
| Security | Devices wiped between every session | Manual cleanup, leftover state risks |
| Support | 24/7 human support and dedicated CSM | Stack Overflow and your own logs |

 Capabilities 
## Everything Espresso needs in the cloud

Beyond running tests, TestingBot exposes the full set of Espresso capabilities you would set in Android Studio, plus cloud-only features like geolocation and network throttling.

- ### [Instrumentation](https://testingbot.com/support/app-automate/espresso/instrumentation)

Configure AndroidJUnitRunner instrumentation arguments per run.

- ### [Test filters](https://testingbot.com/support/app-automate/espresso/filter)

Run a subset of your Espresso suite without rebuilding the bundle.

- ### [Test reports](https://testingbot.com/support/app-automate/espresso/test-reports)

Video, logcat, screenshots and JUnit XML for every run.

- ### [Screenshots](https://testingbot.com/support/app-automate/espresso/screenshots)

Take in-test screenshots and pull them via the REST API.

- ### [Network throttling](https://testingbot.com/support/app-automate/espresso/simulate-network-conditions)

Simulate 3G, 4G, lossy WiFi and offline conditions per session.

- ### [Localization & geo](https://testingbot.com/support/app-automate/espresso/set-localization-options)

Set device locale, language and GPS coordinates for store-front and back-end checks.

 Real Android devices 
## Galaxy, Pixel, OnePlus & Xiaomi on demand

A fleet of real Android devices spanning Android 4.4 through Android 15, refreshed every release. Latest flagship phones available the day OEMs ship them.

[View all devices](https://testingbot.com/support/app-automate/devices)

 ![Test online on Pixel 11](https://testingbot.com/assets/devices/160h/45-b90994534fadde53be99a94521c6ea23a39fdf32ad277240be4e2613540b5019.webp)

Pixel 11

 ![Test online on Galaxy S26](https://testingbot.com/assets/devices/160h/40-e917ed08e15b5941fed75855ac457dd1df46b471a2020f081c4d70cefb68f4e8.webp)

Galaxy S26

 ![Test online on Huawei P40](https://testingbot.com/assets/devices/160h/39-32a788c7e66a3da1c88eaaefefd37381f729e510f096b43906968b6907c44c57.webp)

Huawei P40

 ![Test online on Pixel 10](https://testingbot.com/assets/devices/160h/37-738ed465eff0a4bcc33a5294f6f9f4d701fed317ce0e97e202ffc3f9dca7edd4.webp)

Pixel 10

 ![Test online on Pixel 9](https://testingbot.com/assets/devices/160h/35-abb9a661ebbfa84f18bd6985d3e80330ad43fe4ea7d408157c87ae0f560a5ca1.webp)

Pixel 9

 ![Test online on Galaxy S25](https://testingbot.com/assets/devices/160h/34-ba3caa0fe8fb834ea684e524f6ad690ca4f78402e85a51a48e94ad4dfcb93208.webp)

Galaxy S25

 ![Video, screenshots and JUnit XML for every run](https://testingbot.com/assets/features/test-results-315382c39a67ad52167d2a4fd78570c99aea3e0ec386c17e82265851e93cb7b3.png)

 Test reports 
## Video, screenshots and JUnit XML for every run

Every Espresso run ships with a video screencast, logcat output, viewport screenshots and a JUnit XML report compatible with every major CI parser.

Mark sessions as passed or failed from your tests, fetch artifacts via our [REST API](https://testingbot.com/support/api), and ship results into Jira, Slack or your CI dashboard.

- Full HD video for every test run
- logcat output, app logs and crash reports
- Viewport screenshots on demand
- JUnit XML for Jenkins, GitHub Actions, GitLab CI

 Continuous integration 
## Plug Espresso into your CI/CD in minutes

TestingBot integrates with every major CI/CD tool. Trigger Espresso runs on every build and stream device videos and JUnit reports back into your build dashboards.

 ![Jenkins](https://testingbot.com/assets/integrations/jenkins-e586a1c4af833e4c8d38d7b392a4e84bd193f30cae9cf8c9f198a58ec943a1ff.webp)

### [Jenkins](https://testingbot.com/support/integrations/ci-cd/jenkins)

 ![Bamboo](https://testingbot.com/assets/integrations/bamboo-c8fe09a3cb0b74d6055e3aa6607d77720bfe29ff487b8e3cf825138adf634346.svg)

### [Bamboo](https://testingbot.com/support/integrations/ci-cd/bamboo)

 ![TeamCity](https://testingbot.com/assets/integrations/teamcity-7e75cdb835903a4983ad276c41d95e569ceac5be486e96ec1f955029ce5bb319.svg)

### [TeamCity](https://testingbot.com/support/integrations/ci-cd/teamcity)

 ![CircleCI](https://testingbot.com/assets/integrations/circleci-ede029654ff39b60342e4a5bba8fc9a3a49305cc38bda215b7cf8d07e85e0543.webp)

### [CircleCI](https://testingbot.com/support/integrations/ci-cd/circleci)

 ![GitLab CI](https://testingbot.com/assets/integrations/gitlab-e4c0b6db07d07bc0a400f5606e258f4dc8a51b778e97bbfa51d1d531f3cb049a.webp)

### [GitLab CI](https://testingbot.com/support/integrations/ci-cd/gitlab)

 ![GitHub](https://testingbot.com/assets/integrations/github-actions-8436242ad9e15381f84f1a98a10dddce15611087f121d6305782e211942b7842.webp)

### [GitHub](https://testingbot.com/support/integrations/ci-cd/github-actions)

Spoof device GPS
20+ regions

United States

United Kingdom

Germany

France

Spain

Belgium

Australia

China

Japan

 Geolocation testing 
## Test your Android app from 20+ regions

Spoof the device GPS to anywhere in the world and verify **localisation** , **geo-targeting** and **Play Store store-front rules** from any country your customers live in.

 Secure devices 
## Real devices. Wiped after every session.

Each Espresso session locks one real Android device for your test only. The moment your test ends, the device is wiped, all installed apps are deleted, caches are cleared, and the device is returned to the pool ready for the next customer.

GDPR-compliant, with SAML SSO and audit logs available for enterprise teams.

- One real device per session, never shared
- Wiped between every session
- Encrypted .apk uploads with per-app retention controls

[Visit TestingBot Trust Center](https://trust.testingbot.com/)

1. 1

Your Espresso run locks one real device

A pristine Galaxy, Pixel, OnePlus or Xiaomi is reserved for your session only.

2. 2

Tests run natively on real Android hardware

Real sensors, real fingerprint reader, real OEM customisations.

3. 3

Device wiped on release

Apps removed, caches cleared, accounts wiped. Returned clean to the pool.

 Secure Tunnel 
## Test apps that talk to internal backends

Use our [secure tunnel](https://testingbot.com/support/tunnel) so Espresso runs can reach private APIs, staging environments and services running on localhost.

Encrypted end-to-end, no inbound firewall rules required, ready out of the box for popular CI providers.

 ![TestingBot secure tunnel for Espresso](https://testingbot.com/assets/features/tunnel-diagram-poster-8c25e19e6fe4f7276a46a96b31a0ad0e07bb4f5bf98dc192d2b70897cfbb1a26.png)

[Read more](https://testingbot.com/support/tunnel)

FAQ
## Espresso on TestingBot — frequently asked questions

What is Espresso and why run it on TestingBot?

Espresso is Google's native UI testing framework for Android. TestingBot runs your Espresso builds on a fleet of real Galaxy, Pixel, OnePlus and Xiaomi devices, so you do not have to maintain devices, OEM updates and ADB tunnels in-house. Upload your `.apk` and `.apk` test bundle through the TestingBot CLI and trigger runs in seconds.

Which Android versions are supported?

TestingBot supports real Android devices from Android 4.4 through Android 15, refreshed every Google and OEM release. We carry the latest flagship Galaxy, Pixel and OnePlus phones plus a deep legacy fleet for backwards-compat coverage.

Can I run on real devices and emulators?

Yes. Plans on TestingBot include both real Android devices and Android emulators with Google Play APIs. Toggle per-test with the --real-device flag in the TestingBot CLI.

Can I run Espresso in parallel?

Yes. Plans on TestingBot include up to 100 parallel Espresso sessions on real devices and emulators. Each session locks a dedicated device, so tests do not interfere with one another.

Can I filter which tests run?

Yes — use the [test filters API](https://testingbot.com/support/app-automate/espresso/filter) to run a subset of your Espresso suite without rebuilding the bundle.

How do I see results?

Live in the TestingBot dashboard with HD video, logcat output and screenshots. Programmatically via the [REST API](https://testingbot.com/support/api). Plus a JUnit XML report compatible with every major CI parser.

Can Espresso reach my staging backend?

Install our [secure tunnel](https://testingbot.com/support/tunnel) and your Espresso runs can reach staging APIs, internal services and localhost without any inbound firewall rules.

Is the device cloud GDPR / SOC 2 compliant?

TestingBot is not SOC 2 or ISO 27001 certified. We are GDPR-compliant with EU-only data residency, registered at CSA STAR Level 1 (a published self-assessment), and our control set is modelled on ISO 27001 Annex A. Our datacenter operators hold ISO 27001. Devices are wiped between sessions, app uploads are encrypted, and SAML SSO and audit logs are available on enterprise plans.

## Ready to scale your Espresso runs?

Read our [Espresso documentation](https://testingbot.com/support/app-automate/espresso) and run your first test on a real Android device in under 5 minutes.

[Start a free trial](https://testingbot.com/users/sign_up)

Resources you may like

[![Android Espresso Tutorial](https://testingbot.com/assets/resources/articles/19-fe4971eb8049097c25f2cc2fce95b71b94f3bb342e094c219b2404c09374f015.webp)](https://testingbot.com/resources/articles/android-espresso-testing)
### [Android Espresso Tutorial](https://testingbot.com/resources/articles/android-espresso-testing)

Why Espresso suits Android UI testing, how to add it to a project and write a first test, and how it compares with the alternatives.

[Read more: Android Espresso Tutorial](https://testingbot.com/resources/articles/android-espresso-testing)
