指标说明
公共指标
-
用户体验评分
根据应用的启动时间、可交互时间、首屏时间、操作时间、请求响应时间、请求错误率、崩溃率和卡顿率八个指标维度对应用使用过程中的用户体验情况进行综合评分。
评分算法: 指标评分 =100*(指标均值 - 指标90分位值 )/(指标15分位值 - 指标90分位值)
线性变换,按高低阈值将各项指标的值折算成[0,100]的分数。
应用评分 = sum(指标权重 * 各个性能指标评分)
其中,各个性能指标评分为各项权重乘以各项性能指标得分求和为总的性能评分。
-
活跃设备数
选定时间段内该应用的活跃设备数(去重)。
-
启动时间
选定时间段内该应用的平均启动耗时。
计算公式:(首次启动总耗时 + 冷启动总耗时 + 热启动总耗时)/(首次启动次数+冷启动次数+热启动次数)
-
可交互时间
选定时间段内该应用的平均可交互时间。
计算公式:总可交互时间 / 页面总打开次数
-
首屏时间
选定时间段内该应用的平均首屏时间。
计算公式:总首屏时间 / 页面总打开次数
-
操作时间
选定时间段内该应用的平均操作时间。
计算公式:总操作时间 / 总操作次数
-
请求响应时间
选定时间段内该应用的平均请求响应时间。
计算公式:总请求响应时间 / 总成功请求次数
-
请求错误率
选定时间段内该应用的平均请求错误率。
计算公式:总请求错误次数 / 总请求次数
-
崩溃率
选定时间段内该应用的崩溃率(备注:崩溃率启动次数按照基调听云 SDK 初始化次数计算)。
计算公式:崩溃次数 / 总启动次数
-
卡顿率
选定时间段内该应用的卡顿率。
计算公式:卡顿次数 / 启动次数
网络指标
-
请求响应时间
客户端发起请求至请求完毕的时间。
计算公式:平均响应时间= 响应时间 / 成功请求次数
-
客户端时间
客户端等待处理请求响应的耗时。
计算公式:平均客户端时间= 总客户端时间 / 成功请求次数
-
网络时间
请求在网络上消耗的时间(排除客户端时间)。
计算公式:平均网络时间 =(响应时间– 客户端时间)/ 成功请求次数
-
DNS时间
客户端将域名转换为数字IP的时间。
计算公式:平均DNS时间= 总DNS耗时/ DNS 总发生次数
-
DNS发生次数
实际发生 DNS 解析的次数。
-
SSL时间
建立安全套接层(SSL)连接的消耗时间。
计算公式:平均SSL时间= SSL 总耗时 / SSL 总发生次数
-
SSL发生次数
实际发生 SSL 握手的次数。
-
TCP时间
建立 TCP / IP 连接的时间。
计算公式:平均TCP时间= TCP 总耗时 / TCP 总发生次数
-
TCP发生次数
实际发生 TCP 建连的次数。
-
首包时间
从发送 HTTP 请求结束后,到收到服务器返回的第一个数据包的时间。
计算公式:平均首包时间= 总首包时间 / 成功请求次数
-
剩余包时间
客户端接受服务器返回的非第一个数据包的消耗时间。
计算公式:平均剩余包时间= 总剩余包时间 / 成功请求次数
-
吞吐率
平均每分钟的 HTTP 请求数量,单位为 RPM(Requests per minute)。
计算公式:吞吐率= 总请求数 / 时间(min)
-
复用率
请求 TCP 建连的复用策略,复用率越高表示请求的效率越高。
计算公式:复用率 = (1 - 建连次数/ 总请求次数) * 100
-
请求次数
当前选定时间段内,客户端发起请求的总次数。
-
成功请求次数
响应码为 200 的请求次数。
-
正常请 求次数
成功请求次数减慢请求次数。
-
错误请求次数
HTTP 错误(4xx、5xx)次数 加 网络错误(请求超时、建连失败等)次数。
-
慢请求次数
满足慢请求阈值的请求次数。 若下载字节数大于 50kb,则传输速率小于 10kb/s 的请求为慢请求。 若下载字节数小于 50kb,则响应时间大于 2000 ms 的请求为慢请求。
-
HTTP错误次数
HTTP错误(4xx、5xx)发生的次数。
-
网络错误次数
网络错误(请求超时、建连失败等)发生的次数。
-
慢请求占比
在选定时间段内,慢请求次数与成功请求次数的比值。
-
HTTP错误率
在选定时间段内,HTTP错误数量与总请求数量的比值(常见HTTP错误:4XX、5XX)。
-
网络错误率
在选定时间段内,网络错误数量与请求数量的比值。
响应码 | 错误类型 | 可能错误原因 |
---|---|---|
901 | 未知主机 | DNS 解析的时候出错 |
902 | 建连失败 | 连接服务器的时候出错 |
903 | 连接超时 | 等待服务器超过响应时长 |
904 | 客户端协议错误 | 网络协议错误,如:http 写成了 htt |
905 | 客户端已取消 | 进行网络连接时(下载),强行中断连接抛出的错误 |
906 | 非法响应内容 | 请求内容和响应内容不一致 |
907 | 要求 SSL 认证 | SSL 证书校验时发生的异常 |
908 | SSL 证书错误 | SSL 本地证书与服务端证书不一致 |
-
平均传输数据量
在选定时间段内,总流量消耗与成功请求次数的比值。
-
上行流量消耗
在选定时间段内,上行流量消耗与成功请求次数的比值。
-
下行流量消耗
在选定时间段内,下行流量消耗与成功请求次数的比值。
-
传输速率
在选定时间段内,流量消耗与总响应时间的比值。
计算公式:传输速率 = 总流量消耗 / 总响应时间
-
CDN 网络时间
标记为 CDN 的请求在网络上消耗的时间(排除客户端时间)。
-
CDN 可用性
标记为 CDN 的请求的可用性。
计算公式:CDN 可用性 = 1 - (CDN请求总错误次数 / CDN 请求总次数)
-
CDN 传输速率
标记为 CDN 的请求的传输速率。
-
网络延时
指一个报文或分组从一个网络的一端传送到另一个端所需要的时间。
-
丢包率
测试中所丢失数据包数量占所发送数据组的比率。
用户体验指标
-
启动次数
记录完整启动过程的次数。
-
首次启动时间
App安装后的第一次启动,属于特殊的冷启动。
计算方式:
- Android:Application.attachbaseContext()开始到MainActivity.onResume()结束。
- iOS:main函数启动时间(SDK启动时间)到 FirstVC.viewDidAppear()结束。
-
冷启动时间
App结束进程,或退出到后台,进程被系统回收后,再次启动的过程。 计算方式与「首次启动」相同。
-
热启动时间
-
Android:Home键:Activity.onRestart()开始到Activity.onResume()结束 ;Back键:Activity.onCreate()开始到Activity.onResume()结束。
-
iOS:applicationWillEnterForeground()开始到applicationDidBecomeActive()结束。
-
-
启动时间
应用启动的时间。
计算公式:启动时间 = 总启动时间/总启动次数
-
初始化时间
- Android:Application.attachbaseContext()结束到Application.onCreate()结束。
- iOS:main函数启动时间(SDK启动时间)到applicationDelegate。
-
构建时间
- Android:MainActivity init,Application.onCreate()结束到MainActivity.onCreate()结束。
- iOS:applicationDelegate.didFinishLaunchingWithOptions()开始到FirstVC.loadView()开始。
-
页面加载时间
- Android:如果是首页就是从Application.onCreate()结束到MainActivity.onResume()结束;如果是非首页就是从MainActivity.onCreate()结束到MainActivity.onResume()结束。
- iOS:FirstVC.loadView()开始到FirstVC.viewDidAppear()结束。
-
应用准备时间
Android:Application.attachbaseContext()开始到结束。该指标为Android特有,仅在Android 启动体验分析的单样本详情数据中展示。
-
视图填充时间
Application.onCreate()结束到MainActivity.onCreate()结束。
-
交互准备时间
MainActivity.onCreate()结束到MainActivity.onResume()结束。
-
页面打开次数
当前页面打开的总次数。
-
首屏时间
页面打开至内容展现完毕的时间(包含网络耗时)。
计算方式:从首个生命周期方法开始至回到主线程的最后一个异步调用方法结束。
-
可交互时间
页面打开至用户可以正常交互的时间。
计算时间:
- Android:从 onCreat/onStart 开始至 onResume 结束。
- iOS:从viewDidLoad / viewWillAppear 开始至最后一个 viewDidAppear 结束。
-
慢首屏占比
展现时间超过既定阈值的页面用以衡量当前页面展现内容是否流畅,默认阈值3000ms,可配置。
计算公式:慢首屏次数 / 页面打开次数
-
慢可交互占比
交互时间超过既定阈值的页面用以衡量当前页面交互过程是否完整,默认阈值1000ms,可配置。
计算公式:慢可交互次数 / 页面打开次数
-
操作次数
操作执行的总次数。
-
可用操作次数
可用操作次数 = 总操作次数-失败操作次数-崩溃操作次数
-
可用性
可用性 = 可用操作次数 / 总操作次数
-
所属页面(操作)
操作所属页面名称(Android 为:Activity或Fragment名称;iOS 为:VC的名称)。
-
操作耗时
操作的总耗时(包含异步方法的执行耗时)。
-
阻塞耗时
操作过程中入口函数的执行耗时(阻塞过程中用户无法进行任何操作)。
-
流畅操作占比(%)
操作耗时未达到设定阈值的操作(默认阈值3S,可配置)。
计算公式:流畅操作占比 = 流畅操作次数 / 总操作次数
-
慢操作占比(%)
操作耗时超过设定阈值的操作(默认阈值3S,可配置)。
计算公式:慢操作占比 = 慢操作次数 / 总操作次数
-
卡顿占比(%)
阻塞耗时超过设定阈值的操作(默认阈值3S,可配置)。
计算公式:卡顿操作占比 = 卡顿操作次数 / 总操作次数
-
崩溃操作占比(%)
操作过程中应用出现崩溃/闪退的操作。
计算公式:崩溃操作占比 = 崩溃操作次数 / 总操作次数
-
失败操作占比(%)
操作过程中请求错误率达到100%的操作(操作过程中发出了三个请 求,若三个请求都发生了错误,则此次操作为错误操作)。
计算公式:失败操作占比 = 失败操作次数 / 总操作次数
异常分析
-
启动次数
异常分析中的启动次数是根据 SDK 的初始化次数统计,包含冷启动次数和热启动次数。
说明:崩溃中计算的启动次数会大于启动体验分析中记录的启动次数。
-
崩溃次数
发生崩溃的次数。
-
崩溃率(%)
在选定时间段内,应用崩溃率随时间变化情况。
计算公式:崩溃率=崩溃次数/启动次数
-
崩溃设备占比
计算公式:崩溃设备占比=影响设备数/活跃设备数
-
影响设备数
在选定时间段内,发生崩溃的设备数(去重)。
-
活跃设备数
在选定时间段内,处于活跃状态的设备数。
-
卡顿次数
发生卡顿的次数。
-
卡顿率(%)
在选定时间段内,应用的卡顿率随时间变化情况。
计算公式:卡顿率=卡顿次数 / 启动次数
-
卡顿设备占比
计算公式:卡顿设备占比=影响设备数/活跃设备数
-
错误次数
在选定时间段内,发生错误的次数。
-
自定义错误率(%)
在选定时间段内,应用的自定义错误率随时间变化情况。
计算公式:自定义错误率=影响设备数 / 活跃设备数