启动时间
- 冷启动: 系统重启,即在启动前没有该app进程的情况
- 热启动: app从后台被切换到前台(点back退出后再点击图标启动)
测试方法:
1. 通过adb logcat -v time -d ActivityManager:I *:S 方式获取到应用启动的时间,但是此方法并不包括点击icon到系统接收到消息的时间等。
2. 土方法,通过录制后,进行逐频播放的方式统计点击icon后到界面完全展示的时间(可使用KMPlayer播放器查看)
3. 最效率的方式,直接在程序中插入打印时间的节点。
验收标准:
热启动时间不能多于xxS
冷启动时间不能多于xxS
界面渲染
界面过度绘制(屏幕上某个像素在单个帧中被重绘的次数)
测试方法: 开启开发者模式,进入开发者选项->打开“调试GPU过度绘制”开关->选择“显示过度绘制区域”
区域颜色: 蓝色: 1x过度绘制 ; 绿色: 2x过度绘制; 粉色: 3x过度绘制; 红色: >=4x过度绘制
验收标准: 不允许存在4x过度绘制; 不允许存在面积超过屏幕1/4区域的3x过度绘制; 不允许出现黑色像素界面绘制时间
测试方法:开发者选项-> GPU呈现模式分析 -> 在屏幕上显示为条形图
验收标准:界面的绿线代表的为16ms,为了达到每秒60帧,对各帧的垂直条需要保持低于标志线
内存
测试方法:
1. Android Monitor 查看内存情况
2. adb shell dumpsys meminfo package
3. 第三方应用:GT、Emmagee
需要重点关注内存的几项:
1. 内存抖动
2. 内存泄露(这一项可通过MAT工具进行查看或者让开发在打包APK的时候同时打包 Leaks 进行内存泄露的检测)
验收标准:不存在有严重的内存抖动,以及内存泄露的问题。
CPU
测试方法:
1. Android Monitor 查看CPU的情况
2. adb shell dumpsys cpuinfo
3. 第三方应用:GT、Emmagee
验收标准:在进行某项业务逻辑操作时,不会出现CPU飚升 (CPU的指标带确认) 致出现ANR 的情况。
电量测试
测试方法:
- Battery Historiaon
1. 下载工具 Battery Historion
2. 重置电池数据采集: adb shell dumpsys batterystats –reset
3. 运行需要测试的APP
4. 获取电量消耗数据:adb shell dumpsys batterystats > batterystats.txt
5. 生成HTML报告文件:python historian.py batterystats.txt > batterystats.html
PS : 目前已经有了Battery Historion 2.0的版本,采用Go语言重写,详细看Github ReadMe 只是生成的HTML的报告不一致
- 第三方应用: GT
验收标准:待定
流量测试
测试方法:
1. Android Monitor 查看NetWork情况
2. 通过tcpdump 进行抓包,通过wireshark 对数据进行分析
3. adb shell cat /proc/uid_stat/uid /tcp_rcv以及 adb shell cat /proc/uid_stat/uid/tcp_snd
4. 第三方应用程序:GT 等
测试点:
1. 应用首次安装所消耗的流量
2. 应用在后台连续运行几个小时所消耗的流量
3. 应用高负荷运行的流量峰值
验收标准: 纯参考:页面消耗不大于200KB, 会考虑如webview进行网页浏览时,是否有进行缓存的处理等。
其他标准:
持续运行monkey测试发生异常概率高于(异常次数/模拟事件数) 10000分之7
竞品分析
其实以上提供的一些验收标准有些都是只能作为一个参考值来进行使用,更多的是与相似软件的比较,发现我们软件与其他软件的差距以及问题所在。