View device or application vitals

Perfecto collects useful performance data (vitals)for the front-most application on an open mobile device by default and in real-time. If you have several mobile devices open, Perfecto collects vitals for each of them. This includes information on CPU, power, memory, and combined network usage (in/out), all of which measure the general performance of the device and determine how efficiently resources are used.

Watch this short video to see how vitals collection works across the Perfecto platform. Note that in the video, the performance thresholds are set to low for demonstration purposes.


Vitals collection requires devices running iOS 15 or later and Android 12 or later. Earlier versions may work as well but are not officially supported.


Vitals collection is not supported:

  • On devices running iOS 17.x

  • In hybrid clouds and is currently not available in the public cloud

  • For system apps and desktop web apps

Additionally, to reduce the strain on the device, vitals collection is temporarily paused when an application is being installed.

Vitals data and performance incidents captured

Performance incidents can be absolute or relative in nature. Absolute incidents include the time an incident occurred. Relative incidents alert to a deviation (an increase) that was calculated based on the last 10 executions of the same automation test.

The Manual Testing view only shows absolute performance incidents for CPU or power score. In the Report Library and the single test report (STR), you can find both absolute and relative incidents.

A performance incident does not mean that the test execution failed. Incidents can also occur during executions that pass.

The following table describes the vitals collected and explains when absolute and relative performance incidents are logged.



Absolute performance incident

Relative performance incident (Report Library/STR only)


The total CPU usage as derived from the OS, in percentage (%). The value takes into account all processes available on the device.

Reported when the usage exceeded 95% for more than 2 consecutive seconds

Reported when CPU usage is at least 20% above the average of the previous 10 executions

Memory Used

The overall memory consumption, in megabyte (MB).


Reported when the maximum memory usage in this execution is at least 20% above the average of the previous 10 executions

Network In

The amount of data received from either the wireless or the mobile network, in megabits (Mbit) per second.


Reported when the maximum network in is at least 20% above the average of the previous 10 executions

Network Out

The amount of data sent to either the wireless or the mobile network, in megabits (Mbit) per second.


Reported when the maximum network out is at least 20% above the average of the previous 10 executions

Power Score

The grade at which the application under test uses energy, between 1 and 100.

Reported when the power score exceeded 80 for more than 2 consecutive seconds

Reported when both of the following are true: 

  • The power score is at least 20% above the average of the previous 10 executions

  • The difference in the number of power-score related performance incidents between the average of the last 10 executions and the current execution is at least 5.

    Example: If the average number of times that the power score passed the threshold in the previous executions is 4 and the number of times a power score-related performance incident occurred in the current execution is 6, then the difference is only 2, which is minor. If, however, in this execution 10 power score-related performance incidents occurred, then the difference is 6, which is greater than 5.

Work with the Vitals pane

For an open device in the Manual Testing view, the Vitals pane is available on the right, below the Screenshots pane. It includes a graph along with an option to download vitals as a CSV file for use in a spreadsheet program, such as Microsoft Excel.

The following image shows a sample vitals graph for an iOS device. If no application is running in the foreground, the vitals shown are for the Home screen (on Android devices) or for the system (on iOS devices).

In the title and the tooltip, the graph shows the name of the front-most application. If the application name is truncated, you can hover over it to display a tooltip showing the full name.

Each metric in the graph comes with a color-coded line and a unique shape, as displayed in the legend below the graph.

The downloaded CSV file includes all vitals from the start of the session until the current point in time. The interval shown is in seconds.

Perfecto starts collecting vitals as soon as a device is connected. At all times, the graph shows data for up to 3 minutes. Data collected more than 3 minutes ago moves off the screen to the left.

Each line in the vitals graph has a different color. In addition, if an incident occurs, for example when CPU usage exceeds 95%, the vitals graph displays an incident indicator at the specific point on the timeline.

Moving the pointer over the graph displays a tooltip with information on the following items:

  • The front-most application

  • The time that has elapsed since the session started

  • CPU, memory, network in, network out, and power scores

  • An incident indicator, if applicable

If vitals are not supported for a device, if only partial vitals are collected for a device, or if vitals collection has been missed for one or more intervals, this is indicated by a note displayed below the vitals graph.

Vitals information is also available in the Report Library, in the single test report (STR), and on the Insights dashboard.

Important: If you worked with the previous implementation of the Vitals feature (before April 2023), note that the API endpoint to retrieve vitals data and the format of the Vitals CSV file have changed. For a comparison of the old and new Vitals features and for information on how to prepare your automation tests for the new Vitals solution, see Migrate to the new vitals solution.