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:
- Go to Run Settings from the Project Dashboard.
- Open or create a Run Setting profile.
- In the Performance Settings section, enable Enable App Vitals.
- 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:
