Mobile Testing with Robonito

Robonito lets you record and replay automated tests on native mobile applications without writing code. You interact with the app naturally on an emulator or simulator, and Robonito captures every tap, swipe, input, variable, and assertion as a reusable, modular test step.


Supported Platforms

PlatformFile TypeSystem RequirementAutomation Driver
🤖 Android.apkWindows, macOS, or LinuxUiAutomator2 (via Appium / ADB)
🍏 iOS.ipa (simulator build)macOS with Apple Silicon (M1/M2/M3/M4)XCUITest (via Appium)

iOS Requirement:

iOS simulation requires Xcode installed from the Mac App Store and macOS running on Apple Silicon. It cannot run on Windows or Linux. See the iOS Setup guide for full configuration steps.


How to Get Started

Follow these steps in order to set up and run your first mobile test:

Step 1 — Configure Mobile Environment

Before recording, verify your environment has the required Android SDK tools, emulator images, and Appium drivers installed. Robonito handles this automatically through the Mobile Setup wizard.

➡️ Configure Mobile Setup →

If you are automating iOS apps on a Mac, complete the Xcode simulator prerequisites.

➡️ iOS Setup →

Step 2 — Create a Mobile Test Case

Initialize a new test case inside a Mobile suite and choose your target platform (Android or iOS).

➡️ Create a Mobile Test Case →

Step 3 — Record Your Test

Upload your .apk or .ipa build, launch the emulator mirror, and interact with the app.

➡️ Start Recording →


What Gets Recorded

During an interactive mobile recording session, Robonito automatically captures:

Interaction / ToolRecorded Step TypeDescription
Tapmobile-tapTapping on native buttons, tab bars, icons, or links.
Text Inputmobile-inputEntering text dynamically into inputs or search bars (supports {{variable}} interpolation).
Swipe & Scrollmobile-swipeSwiping vertically or horizontally across scrollable viewports.
System Buttonsmobile-system-buttonHardware navigation (Back, Home, Enter, Recent Apps).
Dynamic Variablesmobile-local-variableExtracting text, attribute values, or IDs from mobile elements to reuse downstream.
Geolocationmobile-geolocationSetting simulated GPS coordinates (Latitude, Longitude, Altitude) during the test.
Mobile Assertionsmobile-assertVerifying element visibility, text equality, or enabled state.

Each action becomes an independent test step that can be replayed, edited, reordered, or executed in parallel across your regression suites.


Android vs. iOS: Key Differences

AspectAndroidiOS
OS RequirementWindows, Mac, or LinuxmacOS with Apple Silicon only
Application BuildStandard .apkDebug .ipa signed for simulator architecture
Targeting SelectorsResource IDs (id), Accessibility labels (content-desc), XPathAccessibility Identifiers (accessibilityIdentifier), XPath
Hardware ButtonsBack, Home, Recent AppsHome button, navigation gestures
Permission AlertsHandled natively via system dialog tapsiOS system alerts (require explicit interaction steps)
Emulator StartupFast warm-reuse with persistent ADB channelXcode Simulator device runtime

Android-Specific Notes

  • Resource IDs: Always prefer Android Resource IDs (e.g., com.example.app:id/submit_button) or content-desc for resilient locator stability.
  • Warm Emulator Reuse: Robonito automatically detects and attaches to warm, running emulators, cutting startup delays between recording and test runs to seconds.
  • Windows Acceleration: On Windows systems, opt-in to the Windows Defender exclusion during Mobile Setup to eliminate emulator file scanning latency.

➡️ Comprehensive Android Testing Guide →

iOS-Specific Notes

  • Simulator Build Signing: App Store distribution builds cannot run in the simulator. Ensure your iOS engineering team builds the .ipa with SDK=iphonesimulator.
  • Accessibility Identifiers: Ask your iOS developers to add accessibilityIdentifier to key interactive elements for the cleanest automation targeting.
  • Bundle ID: Provide the application's unique Bundle ID (e.g., com.company.myapp) in the launch configuration.

➡️ Comprehensive iOS Testing & Setup Guide →


Mobile Assertions

Validate element visibility, text matches, accessibility attributes, transient toast notifications, or pixel-perfect visual snapshots:

CategoryAvailable Assertions
Element StateElement Visible, Element Not Visible, Enabled, Disabled, Selected, Focused
Text & ContentText Equals, Text Contains, Starts With, Ends With, Regex (supports {{variables}})
AttributesResource ID, Accessibility Identifier, Class Name, Bounding Box
Visual RegressionFull-screen or element reference snapshot with pixel diff heatmap and tolerance slider
System EventsAndroid Toast notifications, Activity name, and Screen Orientation

➡️ Complete Mobile Assertions Reference →


Executing Mobile Tests

To run your saved mobile tests:

  1. Open any mobile test case in your workspace.
  2. Click Execute and choose Local Execution.
  3. Robonito launches the emulator or attaches to a warm running instance, bootstraps the application build, and replays all recorded gestures, variable extractions, and assertions with millisecond precision.
  4. Detailed execution logs, timing metrics, and failure screenshots are recorded in the test execution report.