一、功能测试

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

  1. 启动DDMS
  2. 需要debugable的APP或手机系统
  3. 选择进程
  4. 点击StarthodPrefiling
  5. 分析结果

五、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