一、功能测试
1. 安装
- APK 安装
- adb 安装
- 手机助手安装
- Google play 安装
- 覆盖安装 -升级
- 卸载
- 清除缓存数据
2. 交互测试
- 运行时接电话
- 接收手机短信
- 锁屏/解锁
- 充电
- 闹铃
- 功能键-Home/Back
3. 第三方兼容
- 同类产品
- 手机助手
- 杀毒软件
4. 需求
- 等价类、有效、无效
- 边界值 上点、内点、离点
- 错误推测
- 异常中断
5. 稳定性
- Crash
- ANR
- Monkey
6.兼容性
- 操作系统
- 分辨率 主流
- 手机厂商
- 第三方ROM
- 网络环境 234 弱网 移动 联通 电信。。。
7.安全性
- 权限
- 杀毒软件
- 反编译
- 本地文件存储
- http/https 代理
二、性能测试加载时间
准备--Android devices adb链接 视频软件kymlayed
启动方式
- 冷启动: 系统启动,启动前没有APP进程
- 热启动: 双击Back退出,再点击图标启动
获取启动时间方法
- DDMS-Displayed
- adb shell am start -m pakege/activity
- logcat
三个时间分析
Log时间:从处理Activty的时间到measure /layout/draw
用户体验时间 Total time+
录制视频,按针播放 --icon从暗到亮到完全启动时间
注意事项: 竞品对比、环境保持一致、多次测试取平局值、冷启动热启动区别
三、性能测试内存
缓存影响 1、内存溢出(Crash)2、内存泄漏
获取方式
- adb shell dump sys memento your.pakage.name
- 重点关注 native heap Delvikheap Total
- procorank
- 第三方工具
- Android Studio
- GT
测试场景
- 空闲状态
- 中等状态
- 高强度
- 峰值
- 操作Bitmap对象
- 访问数据库,对数据库操作
- 设计JNI层的操作
四、性能测试CPU
卡顿、好点?运行缓慢
获取方式:
- 开发者模式
- add shell top|grep pakage name
- adb shell dumsys cpuinfo|grep your.package.name>sdcard/cupinfo.txt
- android studio
- 第三方工具:emmagee,GT
测试场景:
- 空闲时是否占用CPU
- 中等操作强度CPU占有
- 高等操作
- 后台
- 开机自启动root 和非root
- 上下滑动页面
TraceView分析CPU
- 启动DDMS
- 需要debugable的APP或手机系统
- 选择进程
- 点击StarthodPrefiling
- 分析结果
五、APP流向和耗电量
获取方式:
- 第三方工具Emmagee/GT..
- 抓包工具Fidder/Charles
- Tcpdump,再通过wireshark分析
- 通过UID获取,adb shell cat
- your.package.name, adb shell cat /proc/UID stat/UID/tcp rev/tcp send 获取初始的接收和发送流量
测试场景
- 后台运行
- 高场景
- 低场景
- 非wifi
分析
- 竞品对比
- 线上大部分用户的操作时间
- 非wifi
- 常用功能操作
耗电量获取
- adb shell dumsys battery states (屏蔽USB充电;adb shell dumpsys battery set usb 0)
- Powernamager.sakelock
- 万能表
- 安捷伦663810,数字稳压表电源
- 官方的Python脚本
六、GPU
卡顿 加载时间
获取方式
- 过度绘制:开发者选项-调试GPU过度绘制-显示过度绘制区域
- 蓝色1 绿色2 浅红3 深红4
- 开发者模式-GPU呈现模式-在屏幕上显示条状图,或录制视频按针播放
- 页面排版hierachyviewer
分析
- 过度绘制
- 不允许出现黑色像素,不允许存在4x过度绘制,不许与存在面积超过1/4区域的3x过度绘制
- 帧率
- 不能超过屏幕的水平线;一秒60帧,每帧16.6ms
- UI结构
- 复杂的Layout层级;太多叠加的View;需要窄而浅的结构;而不是宽而深的结构
Monkey
Monkey 局现象 只能针对程序包
随机
-v 命令的每一个-v 讲增加反馈信息的级别
L0 default 除启动的提示、测试完成和最终结果外、提供较少的信息
L1 提供较详细的测试信息,如逐个发Activity的事件
L2提供更加详细的设置信息,如测试中的或未选中的Activity
-throttle +3000(毫秒)
验收标准:
1. 单个APK
- 手机数量 5-10
- 运行时间24小时
- 测试要求:平均运行时间至少20h(大约为380000个Events),测试过程中无ANR、JavaCrash、NativCrash、Windowleak、ExceedVM、budget count 等任何异常
2. 操作系统
- 手机数量:5-10
- 运行时间25小时
- 测试要求:平均运行时间至少20h(大约为380000个Events),测试过程中无ANR、JavaCrash、NativCrash、Windowleak、ExceedVM、budget count 等任何异常
Uiautomator
常用API
UiObject
UiSelector
UiDevices
TestCases