Android性能测试:
客户端性能测试
服务端性能测试
客户端性能测试:
1.ROM版本的性能测试(即手机的不同操作系统):关注功耗测试
2.应用的性能测试
a.启动时间
b.内存
c.CPU
d.GPU
e.功耗
f.流量
......
一、启动时间的测试:暂分三类
1、首次启动:应用首次启动所用的时间
2、非首次启动
3、应用界面切换:应用界面内切换所花费的时间
抓取日志计算的方法:
adb logcat > 文件夹路径/文件名(./logcat/logcat.txt)
find "Displayed" ./logcat/logcat.txt > ./logcat/displayed.txt
find "activityName" ./logcat/displayed.txt > ./locat/last.txt
再根据last.txt文件中的时间计算启动时间
二、内存测试:关注内存消耗
目标: 为了让应用不占用过多的系统资源,且及时释放内存,保障整个系统的稳定性
分类:
1、空闲状态: 打开应用后,点击home键让应用在后台运行
2、中等规格操作: 对应用的操作时间的间隔较长
3、满规格操作: 对应用的操作时间的间隔较短
测试子项:
1.空闲状态下的应用内存消耗情况
2.中等规格状态下的应用内存消耗情况
3.满规格状态下的应用内存消耗情况
4.应用内存峰值情况
5.应用内存泄露情况
6.应用是否常驻内存
7.压力测试后的内存使用情况
1)第三方工具: 网易的Emmagee、安测试、腾讯的GT等
2)抓取日志方法:
adb shell dumpsys meminfo > ./logcat/meminfo.txt
find "应用名称" ./logcat/meminfo.txt > ./logcat/mem.txt
3) 使用 android 提供的 procrank
procrank
方法(批处理)首先去google获取procrank、procmem、libpagemap.so 三个文件 .
然后push文件,执行 adb push procrank /system/xbin
adb push procmem /system/xbin
adb push libpagemap.so /system/lib
赋权 adb shell chmod 6755 /system/xbin/procrank
adb shell chmod 6755 /system/xbin/procmem
adb shell chmod 6755 /system/lib/libpagemap.so
,
在开启工具记录
adb shell procrank |grep packagename >/address/procrank.txt
内存泄露方面的测试,可以通过几个方面来测试:
1.通过monkey压力测试记录内存使用情况,分析数据曲线图及日志情况
2.通过eclipse上的mat+heap来分析存在内存泄露方面的节点
三、CPU的测试
测试子项:
1.空闲状态下的应用CPU消耗情况
2.中等规格状态下的应用CPU消耗情况
3.满规格状态下的应用CPU消耗情况
4.应用CPU峰值情况
CPU的测试方法分为几类:
1.使用android提供的adb shell dumpsys cpuinfo |grep packagename >/address/cpu.txt来获取
1.使用android提供的adb shell dumpsys cpuinfo |grep packagename >/address/cpu.txt来获取
2.使用top命令 adb shell top |grep packagename>/address/cpu.txt 来获取
四、GPU的测试
测试子项:
- 界面过度绘制
- 屏幕滑动帧速率
- 屏幕滑动平滑度
对于过度绘制的测试主要通过人工进行测试,通过打开开发者选项中的 显示GPU过度绘制 来进行测试(PS:只有android4.2及以上的版本才具备此功能),验收的标准为:
- 不允许出现黑色像素
- 不允许存在4x过度绘制
- 不允许存在面积超过屏幕1/4区域的3x过度绘制(淡红色区域)
五、功耗测试
测试子项:
1、测试手机安装目标APK前后待机功耗无明显差异
2、常见使用场景中能够正常进入待机,待机电流在正常范围内
3、长时间连续使用应用无异常耗电现象
命令获取:
adb shell dumpsys battery
......
六、流量测试
测试子项:
1、应用首次启动流量提示
2、应用后天连续运行2小时的流量值
3、应用高负荷运行的流量峰值
4、应用中等负荷运行时的流量均值
测试方法:
1、tcpdump抓包,wireshake获取报信息计算
2、获取uid:
adb shell dumpsys package
//adb shell cat /proc/uid_stat/uid/tcp_rcv
// adb shell cat /proc/uid_stat/uid/tcp_snd
adb shell cat /proc/net/xt_qtaguid/stats