- Home
-
Espresso Testing
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.99% uptime SLA.
Looking at all platforms? See the full automation framework lineup.
- Real Android devices
- 200+
- Android versions
- 4.4 → 15
- Uptime SLA
- 99.99%
Trusted by some of the world's most innovative companies
Why run Espresso on TestingBot?
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.
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.
Use the same Espresso framework Google ships with Android Studio. Same APIs, same JUnit assertions, real native performance.
Espresso in 60 seconds
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
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 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 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 for advanced flags, parallel runs and CI integration.
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.99% 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
|
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
Configure AndroidJUnitRunner instrumentation arguments per run.
-
Test filters
Run a subset of your Espresso suite without rebuilding the bundle.
-
Test reports
Video, logcat, screenshots and JUnit XML for every run.
-
Screenshots
Take in-test screenshots and pull them via the REST API.
-
Network throttling
Simulate 3G, 4G, lossy WiFi and offline conditions per session.
-
Localization & geo
Set device locale, language and GPS coordinates for store-front and back-end checks.
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
Galaxy S26
Huawei P40
Pixel 10
Pixel 9
Galaxy S25
Redmi Note 13
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, 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
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.
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.
SOC 2-aligned, 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
-
1
Your Espresso run locks one real device
A pristine Galaxy, Pixel, OnePlus or Xiaomi is reserved for your session only.
-
2
Tests run natively on real Android hardware
Real sensors, real fingerprint reader, real OEM customisations.
-
3
Device wiped on release
Apps removed, caches cleared, accounts wiped. Returned clean to the pool.
Test apps that talk to internal backends
Use our secure 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.
Read moreEspresso 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 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. Plus a JUnit XML report compatible with every major CI parser.
Can Espresso reach my staging backend?
Install our secure 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 GDPR-compliant with EU data residency, ISO 27001 aligned and STAR Level 1 certified. 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 and run your first test on a real Android device in under 5 minutes.
Start a free trial