TestKase
TestKase
|Docs
AutomateMobileEspresso

Espresso on real devices

Upload the two APKs Gradle already builds — your app APK and its androidTest APK — and run your Espresso tests on our real Android phones and emulators, from CI, with no change to your tests.

Run your existing Espresso tests on our Android phones and emulators. You upload the same two APKs Gradle already builds for you — your app and its androidTest APK — and we run the suite on the devices you name.

There is no code to change and nothing of ours to add to your project. Your tests run on the device exactly as they do under connectedAndroidTest.

Android only. Espresso is Android's own test framework, so it runs on Android phones and emulators. For iPhones and iPads, use XCUITest or Appium.

Run your first build →

How it works

Four calls, all to https://hub.testkase.com/espresso/v1:

  1. Upload your app — POST /espresso/v1/app with app-debug.apk. You get back a farm://app-… URL.
  2. Upload your test suite — POST /espresso/v1/test-suite with app-debug-androidTest.apk. You get back a farm://suite-… URL.
  3. Start a build — POST /espresso/v1/build with both URLs and a list of devices. You get back a build_id.
  4. Check the result — GET /espresso/v1/builds/<build_id> until the build is no longer queued or running.

Every request, response, field and error code is in the API reference (interactive — you can try each call there); for a step-by-step walkthrough with curl, see Getting started.

A build is one app and one test suite on up to 20 devices. Each device gets its own session: the whole suite (or the part your filters pick) runs once on that device. The devices run at the same time, within your plan's parallel-session limit.

What you get

Real devices and emulators

Physical Android phones by default; an emulator when you ask for one with virtual: true.

Per-test results

Every test with its status, duration and, for a failure, the stack trace.

Per-test video

One clip for each test, so a failure opens straight on the moment it happened.

Logs

The device log, the raw test output and the crash dump (device log and crash dump unless you turn deviceLogs off).

All Commands

Each Espresso action and check your test made, like single click or check matches(...).

CI-friendly status

One build status to gate on: passed, failed, error, timedout or stopped.

Every build also shows up in your dashboard under Automate → Mobile Apps → Runs.

In this section

Questions

▶Running Espresso locally and importing results into Test Management?

That is a different feature. If you run Espresso on your own devices or in your own CI and want the JUnit results in TestKase Test Management, see Espresso in Test Management.

▶Can I run the same tests on several devices at once?

Yes. List up to 20 devices in one build. Each device runs the full suite (or the part your filters select) once, and they run in parallel up to your plan's thread limit. A device over that limit waits for one of your threads to free up, for as long as maxQueueWaitSeconds allows.

▶Can I split one suite across several devices?

Not yet. Sharding is not available, so every device runs every selected test. See what is not available yet.

▶Can I watch an Espresso run live?

No. Live view is for Appium sessions. For Espresso you get a video clip of each test once it has finished.

▶How is it billed?

Like Appium: per device session, per minute, against your Automate plan. A build on five devices is five sessions. Waiting in the queue is not billed.