Docs

App Vitals

App Vitals is RobusTest's deep app health monitoring feature. It collects detailed, per-test-case performance metrics directly from the device during test execution — going beyond standard CPU and memory readings to capture app-level signals such as frame rendering, energy usage, disk I/O, and network activity.

App Vitals is supported for:

  • Android Espresso jobs
  • iOS XCUITest jobs

How It Works

When App Vitals is enabled in a Run Setting, RobusTest starts a platform-specific collector on the device at the beginning of each test case and stops it when the test case ends. The collected data is stored per test result and can be retrieved from the job report.

  • On Android, metrics are collected using the Android profiling tools available on the device.
  • On iOS, metrics are collected using Apple's sysmontap interface. iOS 17 and later devices use a userspace TUN tunnel managed automatically by RobusTest; older devices use the legacy path.

Enabling App Vitals

App Vitals is controlled by the enableAppVitals flag in the Performance Settings section of a Run Setting.

Via the UI:

  1. Go to Run Settings from the Project Dashboard.
  2. Open or create a Run Setting profile.
  3. In the Performance Settings section, enable Enable App Vitals.
  4. Save the profile and use it when launching your Espresso or XCUITest job.

Via the Run Setting JSON:

{
  "performance": {
    "enableAppVitals": true
  }
}

Viewing App Vitals Data

After a job completes, App Vitals data is available in the test result view for each test case that was executed while App Vitals was enabled.

API:

GET /v3/result/:id/appvitals

Returns the App Vitals data for the given test result ID. The response includes:

Field Description
_id App Vitals record ID
result Test result ID this data belongs to
platform Platform: android or ios
data Full metrics payload (JSON object)
created Timestamp when data was collected

Metrics Reference

For a full breakdown of all metrics collected per platform: