Ranveo
MobileAndroid and iOS appsEarly access
  • Android available
  • iOS coming soon

Mobile
testing
without
Appium.

com.aurora.homeYour APK stays as it is
com.ranveo.agentInstalled by Ranveo
adb · USB or emulator

Test 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 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
Devices

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
USB
ranveowallspeaks adb itself
no window
--connection emulatorRead-only AVD instancespooled, one per test lane
16 emulators on one machine
5 idle minutes, then one stops
  • 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.

One test

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.

Embedded deviceLVGL firmware
Ranveosetpoint-sync.test.json
Mobileyour Android or iOS app
  1. set heat_setpoint 22.0
  2. wait lbl_setpoint "22.0°"
  3. "22.0°" in the mobile app
Passed · two apps, one test, each on its own machine if needed
The same Ranveo

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.

Ranveo on mobileall on
  • 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 activitiesMainActivity is main, or name it in the ranveo.screen metadata.
  • Errors that say what helpsAn unauthorised or offline device, a wrong activity: the message tells you the fix.
Set up · Android

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.

  1. 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 devices
  2. Add 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-5554
  3. Run 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
Under the hood · Android

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: MainActivity is main

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_SECURE window captures black.
  • One display, and one agent app per device.

Roles, from the view class

  • Buttonbecomesbutton
  • EditTextbecomesinput
  • Switchbecomesswitch
  • CheckBoxbecomescheckbox
  • RadioButtonbecomesradio
  • SeekBarbecomesslider
  • Spinnerbecomesdropdown
  • ProgressBarbecomesprogress
  • RecyclerViewbecomeslist
  • TextViewbecomestext
  • ImageViewbecomesimage

In a test

{ "tap": { "name": "btn_plus" } }
{ "tap": { "role": "button", "text": "Save" } }
{ "wait": { "screen": "main" } }
10/17

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
Questions

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.