- Android available
- iOS coming soon
Mobile
testing without
Appium.
com.aurora.homeYour APK stays as it iscom.ranveo.agentInstalled by RanveoTest Android and iOS apps on real devices, emulators and the iOS Simulator. The same tests, runner, live view, recorder and AI assistant as on every other platform.
Early access: Android today, iOS coming soon. App state, app commands, the virtual clock and layout checks are not on Android yet.
No Appium, no code in your app.
On Android, Ranveo installs its own small agent app on the device; your APK stays as it is. On iOS, Ranveo brings its own XCTest runner. Either way, there is no Appium server to install.
- Installed and updated on demand, by Ranveo itself
- A build signed with another key is never replaced, so its data is safe
- When the app crashes, its stack is in the test’s log
- Your app
com.aurora.home, as it is - Ranveo agent
com.ranveo.agent, installed for you - Appium server
not needed - Code in your app
not needed - iOS: Ranveo’s own XCTest runner
coming soon
Real device, emulator or simulator.
Plug in a mobile device over USB, or let Ranveo start a windowless emulator. Each test lane gets its own read-only instance of the AVD, so parallel runs never see each other’s changes.
--connection deviceA mobile device over USBone test at a time--connection emulatorRead-only AVD instancespooled, one per test lane- Up to 16 emulator instances on one machine
- Instances are pooled, and stop after five idle minutes
- No window, no audio, animations off
iOS · coming soon The iOS Simulator through xcrun simctl, and iPhones over USB, driven from a Mac agent.
The companion app in the same test.
Check in the mobile app what the device just did. One test sets 22 °C on the embedded device and waits for the mobile app to show it, with each app on its own machine if needed.
- set
heat_setpoint 22.0 - wait
lbl_setpoint "22.0°" "22.0°"in the mobile app
Everything you use on other platforms.
The same tests, runner, live view, recorder and AI assistant as on every other platform. Switched on from the start.
- Same testsName, text and role locators work as on every platform, and so do the runner and reports.
- Live view and recorderWatch the mobile device at up to 10 fps, and record steps by tapping.
- AI assistantAsk for a test. It drives the mobile app, writes the steps and runs them.
- Names from your appThe resource id after
:id/, else the content description. - Screens from activities
MainActivityismain, or name it in theranveo.screenmetadata. - Errors that say what helpsAn unauthorised or offline device, a wrong activity: the message tells you the fix.
From APK to first test in three steps.
On Android, Ranveo speaks adb itself and installs its agent app when it’s needed. All you need is the Android SDK’s platform-tools. The iOS set-up comes with iOS support.
Install platform-tools
Ranveo uses the Android SDK’s adb server; for emulators, an AVD too.
# Android SDK: platform-tools # and, for emulators, an AVD adb devicesAdd the app
Its package name, and the device from
adb devices.ranveowall add-profile \ --profile-id mobile \ --platform android \ --package com.example.app \ --serial emulator-5554Run on an emulator
Ranveo starts and pools the instances itself.
ranveowall test tests \ --platform android \ --connection emulator \ --set package=com.example.app \ --set apk=app.apk \ --set avd=Pixel_6
The screen, as Android describes it.
The agent app reads the accessibility tree of the app’s windows, the same information a screen reader gets.
- Name
- The resource id after
:id/, else the content description - Text
- The view’s text: a field’s content, not its hint
- Role
- From the view’s class, AppCompat and Material included
- Screen
- The activity in front:
MainActivityismain
Today
- App state, app commands, the virtual clock and layout checks are not available on Android yet.
- Views that are invisible or gone are not in the tree, and a
FLAG_SECUREwindow captures black. - One display, and one agent app per device.
Roles, from the view class
ButtonbecomesbuttonEditTextbecomesinputSwitchbecomesswitchCheckBoxbecomescheckboxRadioButtonbecomesradioSeekBarbecomessliderSpinnerbecomesdropdownProgressBarbecomesprogressRecyclerViewbecomeslistTextViewbecomestextImageViewbecomesimage
In a test
{ "tap": { "name": "btn_plus" } }
{ "tap": { "role": "button", "text": "Save" } }
{ "wait": { "screen": "main" } }conformance checks pass on the Android reference app. The seven skipped ones need what Android doesn’t give Ranveo yet: state values, app commands, the virtual clock and layout, plus the two web-only checks.
Compare every platform- busy: passes
- clear: skipped
- clock: skipped
- commands: skipped
- emulate: skipped
- input: passes
- keys: passes
- layout: skipped
- locators: passes
- platform: passes
- popup: passes
- reset: passes
- roles: passes
- route: skipped
- screens: passes
- subjects: skipped
- visibility: passes
Mobile, answered.
Do I need Appium or a server?
No. Ranveo speaks adb itself and installs its agent app when it’s needed.
Will Ranveo reinstall my app?
Only when the device has a different build of it. A build signed with another key is never replaced; the error tells you how to remove it.
Can tests run in parallel?
Yes, on emulators: each lane holds its own instance. A real mobile device runs one test at a time.
What does early access mean?
Android passes 10 of the 17 conformance checks. The rest need code inside the app, which Ranveo doesn’t ask for on Android yet.
When does iOS come?
Soon. Ranveo brings its own XCTest runner, so iOS apps are tested without Appium too: on the iOS Simulator and on iPhones, driven from a Mac.
Your mobile app, in the same test as your device.
Every platform runs during the 30-day trial, mobile included.
