Every test is a performance test.
On RobusTest you don't schedule performance runs — every session captures vitals by default. A manual bug hunt, a nightly automation suite, a TV session: each one records FPS, CPU, memory, battery, and thermal while it happens. No SDK, no code changes, no setup. The binary you test is the binary you ship.
Measured from outside the app.
Most performance tools ask you to embed an SDK, re-sign a modified build, or test something other than the release binary. RobusTest reads the same counters the operating system keeps anyway — so every session, manual or automated, produces vitals for free.
Read from the operating system
Process and system counters, memory accounting, frame timestamps, battery telemetry, and thermal state — read directly from real Android and iOS devices while your app runs untouched.
Vitals on the big screen
TV sessions sample the same way: frame rate, CPU, and memory from the panel itself — plus web vitals like Largest Contentful Paint and layout shift for TV web apps, streamed live while you test.
Twelve families of vitals, per session.
CPU load
App and system CPU, per-core on Android, with context switches and utilization over time.
Memory
PSS, Java and native heaps on Android; physical footprint, compressed and resident memory on iOS.
Frames & jank
Frame rate and frame time with jank, slow-frame, and frozen-frame counts from real render timestamps.
GPU utilization
Graphics load on both platforms, including tiler and renderer utilization on iOS.
Network I/O
Bytes and packets in and out per interface, with RTT and retransmission detail on iOS.
Battery & power
Level, voltage, current, computed power draw, and iOS energy sampling.
Thermal state
Device thermal zones and state — nominal, fair, serious, critical — alongside every capture.
Disk I/O
Bytes and operations read and written while your app runs.
Launch times
Cold and warm start, time to first frame, and time to interactive.
Hangs & ANRs
UI-block detection with stack traces captured at the moment of the hang.
Process detail
Thread counts, file descriptors, page faults, and per-process bookkeeping.
Device context
Model, OS, RAM, and charging state recorded with every run, so numbers are always comparable.
One score your release meeting can read.
Raw counters roll up into an overall score with four category scores, so a non-specialist can see where a build stands — and a specialist can drill into the samples behind it.
- Stability — crashes, hangs, and frozen frames
- Responsiveness — frame rate, jank, and launch times
- Resource — CPU, memory, and I/O footprint
- Thermal — how hard the build pushes the device
Captures are labelled cold, warm, or steady-state, and each run records its device and OS context — so scores are only ever compared like-for-like.
Regressions flagged with statistics, not vibes.
Two builds never produce identical numbers. The comparison engine tells you when a difference is real: Mann-Whitney U tests for significance, Cliff's Delta for effect size, and a per-metric minimum detectable effect so noise doesn't page anyone.
- 1-vs-1 build comparison across every metric family
- Context-match guards — never compares across mismatched device, OS, or capture mode
- Trend views over a baseline window of past runs
- Results stream to InfluxDB for your own dashboards and alerting
Catch the regression before your users do.
Run your next release candidate through the lab and see its vitals against the build you shipped last week.