1 App 响应时间和响应速度测试
1.1 主要测试点
- 冷启动
首次启动 app 的时间间隔(只是启动时间,不包括页面加载)
- 热启动
非首次启动 app 的时间间隔(只是启动时间,不包括页面加载)
1.2 测试方法
- 冷启动
- 热启动
按返回按键后再启动 adb 命令
测试标准:冷启动时间不超过 1.5s,热启动不超过 1s。
2 内存占用测试
2.1 主要测试点
2.2 测试方法
- 使用 adb 命令
adb shell dumpsys meminfo com.tencent.mm
- 主要指标
Native heap alloc、Dalvik heap alloc
若这两个值一直增长,说明可能出现内存泄漏
PSS
App 实际占用的内存大小
主要关注
3、 CPU 繁忙测试
3.1 主要测试点
3.2 具体场景
3.3 测试方法
adb shell dumpsys cpuinfo apk 包名
adb -s 192.168.231.101:5555 shell dumpsys cpuinfo com.tencent.mm | findstr com.tencent.mm
adb shell top -m 10
指定按照CPU进行排序
adb shell -m10 -n3 -s9
查看微信内存占比,每个10s刷新一次,总共刷新3次
adb shell top -n3 -s10 -d10 | findstr com.tencent.mm
将微信CPU占比,刷新10次,每隔2s一次,存到桌面的log.txt文件中
adb shell top -n10 -s9 -d2 | findstr com.tencent.mm > Desktoplog.txt
4、 FPS 应用流畅度测试
1)开启 Profile GPU rendering
Settings→System→Advanced→Developer options→查找 profile→找到并单击 Profile GPU rendering→In adb shell dumpsys gfxinfo
2) 打开要测试的 app
3) adb shell dumpsys gfxinfo 包名
Graphics info for pid 1789 [com.tencent.mm]:表明当前 dump 的为 com.tencent.mm
的帧信息,pid 为 1789。
Total frames rendered: 145:本次 dump 搜集了 145 帧的信息。
Janky frames: 60 (41.38%):帧中有 60 帧的耗时超过了 16ms,卡顿概率为 41.38%。
Number Missed Vsync: 10:垂直同步失败的帧
Number High input latency:123:处理 input 时间超时的帧
Number Slow UI thread: 11:因为 ui 线程导致 slow 的帧
Number Slow bitmap uploads: 0:因为 bitmap 加载 slow 的帧
Number Slow issue draw commands: 19:因为绘制导致 slow 的帧
4)通过 execl 进行表格处理可以直观的查看软件的流畅度
adb shell dumpsys gfxinfo com.tencent.mm > Desktoplog.txt
--》创建Excel,复制数据 Process、Draw、Execute,求和
--》选中Draw+process+execute一列,插入图表
--》添加标准列16
--》右击图表,选择数据
---》将=Sheet1!$D$1:$D$121改为=Sheet1!$D$1:$E$121
--》查看图表 ,标准线已添加
5) Settings→System→Advanced→Developer options→查找 profile→on screen as bars
5、 GPU 过度渲染测试
6 使用monkey 对App 进行压力测试
1)monkey 是做什么的
- monkey 是 Android 中的一个命令行工具,由 java 编写,可以运行在模拟器里或实际设备中。
- 它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现 对 APP 进行压力测试。
- monkey 测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
2) monkey 的优劣
优势
- 脱离 Case 的依赖
- 可封装自动化执行
- 可封装后作为客户端性能测试的驱动
缺陷
完全随机,不可控
3)monkey命令
4)monkey结果分析
随机点击微信500次,将结果保存到log.txt文件中
adb shell monkey -p com.tencent.mm -v -v -v 500 > Desktoplog.txt
7、使用GT 测试App 性能
1)简介
- GT(随身调)是腾讯研发的开源 APP 随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment)。
- GT 仅凭一部手机,无需连接电脑,即可对 APP 进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash 日志查看、网络数据包的抓取、APP 内部参数的调试、真机代码耗时统计等。
- 如果觉得 GT 提供的功能还不够满足需要,还可以利用 GT 提供的基础 API 自行开发有特殊功能的 GT 插件,帮助您解决更加复杂的 APP 调试问题。
2)使用
--》选择待测 App、选择测试指标
AUT:设置被测应用信息
pss:实际使用的物理内存
private dirty:私有内存
jiffies:CPU 时间片,反映进程的 CPU 消耗
net:整个手机产生的流量
--》选择监控参数
点参数→编辑→拖动需要监控的参数到“已关注的参数”→不点完成
添加监控耗电量、流量和流畅度的参数
耗电量
流量
流畅度
点“检测”必须出现 ok,否则点“更改”→检测,提示“select a app first”忽略
选择显示指标
刷新内存指标
启动监控
查看监控图
双击各项看图
导出结果与分析
保存数据
导出的文件夹 /sdcard/gt/gw/org.chromium.webview_shell/1.0/
压缩文件
进入/sdcard/gt/gw/org.chromium.webview_shell/1.0/ 将文件压缩
-->adb shell
--> cd /sdcard/gt/gw/org.chromium.webview_shell/1.0/
--> tar czvf baidu.tar.gz baidu
拉取文件
--》adb pull /sdcard/gt/gw/org.chromium.webview_shell/1.0/baidu.tar.gz .
处理数据