Overview
Test Android apps with the same test cases, steps and results as web. iOS testing is coming soon.
Mobile testing uses the same model as web. A test case is a list of steps, each an outcome in plain words, such as "A new account exists for a fresh email". On Android, the agent reaches each outcome in an emulator running your app: it taps, swipes, types and reads the screen, and every action shows under the step as Step Actions. Each step ends with a Final check, and the run ends as Passed, Failed, Couldn't start or Cancelled.
iOS testing is coming soon. Until it's available, iOS shows as not enabled when you create a test case, and you can't add an iOS target to an environment or start a run on iOS.
Android tests run on hosted Android emulators on Autonomy's runners. A run waits in the queue until a runner with a free emulator picks it up. If none is free in time, the run ends as Couldn't start with "No runner was available to start this run in time." and isn't billed. An emulator that fails to start ends the run with "A test device wasn't available, so the run couldn't start."
When you record, the wizard shows Emulator online when one is free, and No emulator online when none is, with "No runner has an Android emulator free right now. Write or describe the steps, or try again in a few minutes."
Where the app comes from
The app build lives in an environment. An environment has one target per platform:
| Platform | Target | Runs on |
|---|---|---|
| Android | An .apk or .aab you upload, or a direct download link to one. | An Android emulator |
| iOS (coming soon) | A simulator build (.app, zipped) you upload, or a direct download link to one. | An iOS simulator |
Runs use the build saved on the environment. To test a new build, upload it, or save the download link again in the environment. Uploads are checked for safety before a run can use them. A project tests every platform its environments have targets for, and the same test case runs on web and Android when its project has targets for them.
iOS will need a simulator build: a device .ipa can't run on a simulator. See Mobile builds for the build commands.
Ways to send a build
- Dashboard: open the project's Environments, edit the environment, and under the Android target choose Upload to drop a file, or URL for a download link.
- CI: upload the build from your pipeline and start runs with it. See Mobile builds and the recipes for GitHub Actions, GitLab CI, Jenkins, Bitrise and CircleCI.
- Expo EAS: run tests when an EAS build finishes. See Expo EAS.
Writing mobile test cases
Write steps as outcomes, the same as for web. Don't describe taps or screen coordinates: the agent finds its own way to each outcome on the device. Attachments such as accounts, inboxes and test data work the same way. See Test cases.
- Sign-ins: on Android, sign-ins use credentials. Saved browser sessions work on web only. See Sign-ins.
- Recording: Record it once also works on Android: it starts a hosted emulator, installs and opens your environment's build, and streams it to your tab. Recording on iOS follows when iOS testing is available. See Record on Android.
What a mobile run shows
A mobile run has the same run page as web: each step's result, its Step Actions and its Final check, plus Replay, Screenshots and Logs in the evidence panel. See Runs and results.
Limitations
- Android runs on emulators. Camera, NFC, fingerprint and anything that needs a signed device build don't work.
- Browser sessions saved with the Chrome extension can't be used on mobile.
Didn’t find it?