1,CPU(占有率)
2,内存(MB)
内存测试目标:
内存消耗测试节点的设计目标是为了让应用不占用过多的系统资源,且及时释放内存,保障整个系统的稳定性。当然关于内存测试,在这里我们需要引入几个概念:空闲状态、中等规格、满规格。
空闲状态指打开应用后,点击home键让应用后台运行,此时应用处于的状态叫做空闲;中等规格和满规格指的是对应用的操作时间的间隔长短不一,中等规格时间较长,满规格时间较短。
Case:
- 空闲状态下的应用内存消耗
- 中等规格状态下的应用内存消耗
- 满规格状态下的应用内存消耗
- 应用内存峰值
- 应用内存泄露
- 应用是否常驻内存
- 压力测试后的内存使用
3,电量(Jifiess)
Case:
- 测试手机安装目标APK前后待机功耗无明显差异
- 常见使用场景中能够正常进入待机,待机电流在正常范围内
- 长时间连续使用应用无异常耗电现象
测试方法:
电量测试的方法分为软件测试和硬件测试两类。
软件测试又分为两类:第一类采用市场上提供的第三方工具,如金山电池管家之类的;第二类就是自写工具进行,这里一般会使用3种方法:
第一种基于Android提供的PowerManager.WakeLock来进行;
第二种比较复杂一点采用公式:功耗的计算=CPU消耗+Wakelock消耗+数据传输消耗+GPS消耗+Wi-Fi连接消耗;
第三种通过adbshell dumpsys battery来获取。
硬件测试,一般使用万用表或者功耗仪进行测试,使用功耗仪测试的时候,需要制作假电池来进行的,有些不能拔插电池的手机还需要焊接才能进行。
4,启动时长(MS)
启动时间的测试分类:
- 首次启动–应用首次启动所花费的时间
- 非首次启动–应用非首次启动所花费的时间
- 应用界面切换–应用界面内切换所花费的时间
测试方法:
能大部分人都比较通晓使用Android 提供的DisplayManager来获取activity的启动时间。通过日志过滤关键字 Displayed来过滤所有activity所打印的,记录日志通过。
5,帧率(FPS)
含义:
- 过度绘制:指界面显示的activity套接了多层导致的结果
- 帧率:屏幕刷新率
- 帧方差:屏幕刷新帧间隔方差
测试方法:
对于GPU的测试主要包括以下几个测试子项:界面过度绘制、屏幕滑动帧速率、屏幕滑动平滑度。
对于过度绘制的测试主要通过人工进行测试,打开开发者选项中的显示GPU过度绘制来进行测试(PS:只有Android4.2及以上的版本才具备此功能),验收的标准为:
不允许出现黑色像素;
不允许存在4x过度绘制;
不允许存在面积超过屏幕1/4区域的3x过度绘制(淡红色区域)。
对于屏幕滑动帧速率的测试主要有两种方法。以软件测试为例:
手机端需打开开发者选项中的启用跟踪后,勾选 Graphics 和 View;
启动SDK工具Systrace插件,勾选被测应用,点击Systrace插件,在弹出的对话框中设置持续抓取时间,在tracetaps下面勾选gfx及view选项;
通过节拍来进行滑动或者扫动滑动界面,帧率数据会保存到默认路径下,默认名称为 trace.html;
将trace.html文件拷贝到linux系统下,通过命令进行转换,生成trace.csv文件。
6,网络流量(KB)
含义分类:
网络流量包含网速,弱网。这里指的是流量。
- 中等负荷:应用正常操作
- 高负荷:应用极限操作
流量测试包括:
- 应用首次启动流量提示
- 应用后台连续运行2小时的流量值
- 应用高负荷运行的流量峰值
- 应用中等负荷运行时的流量均值测试一般都是应用软件来进行的
(这里我们一般分为2类:
一类是采用市场提供的第三方工具来进行测试,如流量宝之类的,第二类是自行研发工具进行测试。
自行研发工具进行测试一般包含通过tcodump抓包,或通过wireshake直接读取包信息来获得流量。
通过adbshell dumpsys package来获取被测应用的uid信息,在未操作应用之前,通过查看adbshell cat /proc/uid_stat/uid/tcp_rcv
adbshell cat /proc/uid_stat/uid/tcp_snd
获取到应用的起始的接收及发送的流量;再操作应用后,再次通过上述命令获取到应用的结束时接收及发送的流量,通过相减即得到应用的整体流量消耗.)
7,Crash率(百分比)
对于iOS系统,只需要一个装有xcode的mac电脑,便可相对容易地获取上述指标。xcode的最新版本是7.0。
参阅的大佬们:
https://blog.csdn.net/hualusiyu/article/details/78460809