昨天我们分享了APP性能测试的最后一部分,启动时间和内存两个模块的测试。有兴趣的朋友可以看看。接下来,我们来看看CPU和FPS的性能测试。
1.中央处理器
Cpu测试,主要关注的是CPU的占用率。很多时候,当我们玩手机时,我们变得越来越热。那是因为CPU利用率太高,CPU太忙,会让整个手机无法响应用户,整体性能会降低,用户体验会很差。如果主线程(UI线程)没有在规定的时间内完成相应的工作,也很容易造成ANR(应用不响应,ANR)等一系列问题。
1.1测试点
1)空闲时间的消耗(切换到后台),基本没有主要应用使用cpu。
2)当一些应用程序正在运行,cpu占50%时,观察应用程序的cpu使用情况。
3)看高负载下cpu的性能(CPU占用率要在80%以上)
具体场景:
1)利用空闲状态操作监控CPU占用率。
空闲状态:应用按Home键回退到后台,不再占用系统状态(通常是屏幕关闭半分钟后)。
CPU占用率=0%
2)应用中等规格操作监控CPU占用率
中等规格:模拟用户最常见的使用场景。
CPU占用率30%
3)监控CPU占用率,规格齐全,长期正常运行。
猴子测试
CPU占用率30%
4)监控应用正常运行时CPU的峰值占用率
应用程序正常运行:打开应用程序进行基本操作。
CPU占用率50%
1.2试验方法
1)使用adb命令:
(1)输入:adb shell top -m 10,获取cpu的前10个应用。
顶级cpu参数:
-m表示最大数量;-s按指定行排序;
-t显示流程名称;-n退出前刷新几次;
-d刷新间隔。
输入:top -m -s cpu |grep packageName获取某个软件的cpu占用率。
如果一个操作重复,cpu占用太多,不能一直释放,那么就可能有风险。
2)使用第三方测试工具:GT等。
3)使用一些测试工具,比如teslin云测试平台。
以手测APP为例,其cpu使用率测试结果如下图所示:
4)使用安卓工作室的检测工具安卓监视器。
2.应用流畅性
FPS是图像领域的定义,是指每秒传输的帧数,一般来说是指动画或视频的帧数。FPS衡量用于存储和显示动态视频的信息量。每秒帧数越多,显示的动作就越流畅。
一般来说安卓设备的屏幕刷新率是60帧/秒,为了保持画面流畅不卡顿,要求每帧的时间不超过1000/60=16.6ms,这是16ms的黄金法则。如果中间部分帧的渲染时间超过16 ms,会导致这段时间跳帧,这样原本平滑的画面就会被卡住。
2.1试验方法
1)亚行司令部
(1)打开手机:开发者选项——GPU呈现模式分析ADB shell dumpsys gfx信息
(2)打开要测试的apk
(3) cmd窗口输入命令:ADB shell dumpsys GFX信息包名称
(4)得到一个矩阵数据,计算帧率大于16的点在矩阵中的比例,即卡顿比。
意思是:
Draw:表示OnDraw()方法在Java中创建显示列表所花费的时间。
Process:指示呈现引擎显示列表所需的时间。观点越多,时间越长。
Execute:表示将一帧数据发送到屏幕上进行排版和显示的实际时间。
Draw Process Execute=完全显示一帧,每秒保存60帧的时间不到16毫秒。
2)除了使用adb shell,还可以直接使用开发人员选项附带的图表。
(1)打开手机:开发者选项-GPU呈现模式分析
(2)运行测试软件
(3)界面将显示如下统计数据表
绿色的水平直线是16毫秒的分界线。可以看出这款APP目前的流畅度一般,还需要优化。
3)使用一些测试工具,比如teslin云测试平台。
以手测APP为例,其FPS测试结果如下图所示:
4)使用第三方测试工具:GT等。
5)使用安卓工作室的检测工具安卓监视器。
这就是性能测试的内容。
看到这里,动动你的小手,收集,前进,关注,点个赞[心][心][心]