APP性能测试指标

搭建Android测试环境:

  1. 下载AndroidSDK;

  2. 配置环境变量;

    ANDROID_HOME
    ANDROID_HOME-TOOLS
    ANDROID_HOME-PALTFORM-TOOLS
    
  3. Android底层Java开发,如需运行安卓远程调试桥(adb),需Java运行环境;

  4. 下载JAVA;PS:下载JDK和JRE都行,JDK为JAVA开发环境,JRE为JAVA运行环境, 开发环境中包含运行环境;

  5. 配置环境变量JAVA_HOME;

  6. 验证Java -version;出现版本号即可

移动端性能测试指标

一、启动时间

主要测试点:

  1. 冷启动:应用的第一次启动,这个时候应用程序的进程是没有创建的

  2. 热启动:应用非第一次启动,如果按back键,并没有将应用进程杀掉,热启动没有了初始化的过程

测试方法:

  1. adb命令:adb shell am start -W 包名/完整的Activity名

  2. 获取包名/完整的Activity名:adb shell "dumpsys window | grep mCurrentFocus"

二、CPU的占用率

测试点:

  1. 在空闲时间(切换至后台)的消耗,基本没大应用使用cpu
  2. 在运行一些应用的情况下,cpu已占50%的情况下,观察应用程序占用cpu的情况
  3. 在高负荷的情况下看CPU的表现(cpu占用应是在80%以上)

测试方法:

  1. adb shell
  2. dumpsys cpuinfo |grep +包名(只要包名)

注:kernel:手机如果是多核的,需要除以cpu的个数

三、内存占用率

测试点:

  1. 空闲状态:切换至后台或者启动后不做任何操作,消耗内存最少。
  2. 中强度状态:时间偏长的操作应用。
  3. 高强度状态:高强度使用应用,可以跑monkey来测试(通常用来测试内存泄漏)。

测试方法:

adb命令: adb shell dumpsys meminfo +包名(只要包名)

四、耗电量

测试点:

  1. 测试手机安装目标APK前后待机功耗无明显差异;
  2. 常见使用场景中能够正常进入待机,待机电流在正常范围内;
  3. 长时间连续使用应用无异常耗电现象。

测试方法 :

  1. 先关闭所有的应用,再打开被测app
  2. adb命令(获取手机的电量):adb shell dumpsys battery

image2020-3-30_10-20-33.png

五、FPS (应用的使用流畅度--帧数)

测试方法:

  1. 在手机的开发者选项中,找到"GPU呈现模式分析",选择"在adb shell dumpsys gfxinfo中"
  2. 操作要测试的apk
  3. 命令:adb shell dumpsys gfxinfo + 包名
  4. 得到一个矩阵数据,计算矩阵中帧率大于16的点所占比例,即为卡顿比
  • Draw: 表示在Java中创建显示列表部分中,OnDraw()方法占用的时间。

  • Process:表示渲染引擎执行显示列表所花的时间,view越多,时间就越长。

  • Execute:表示把一帧数据发送到屏幕上排版显示实际花费的时间。

  • Draw + Process + Execute = 完整显示一帧 ,这个时间要小于16ms才能保存每秒60帧。

测试标准:

Android 设备的屏幕刷新率为60帧/s,要保持画面流畅不卡顿,要求每一帧的时间不超过1000/60=16.6ms,这就是16ms的黄金准则,

如果中间的某些帧的渲染时间超过16ms,就会导致这段时间的画面发生了跳帧,因此原本流畅的画面变发生了卡顿。

六、GPU渲染

测试方法:

  1. 手机自动的Debug GPU overdraw
  2. 打开手机- 设置 - 开发者选项 - 调试GPU过度绘制 - 显示过度绘制区域
  3. 打开被测的应用

测试标准:

GPU过渡渲染不同的颜色代表不同的绘制程度

  1. 原色:无过渡绘制
  2. 蓝色:绘制一次 (理想状态)
  3. 绿色:绘制二次
  4. 浅红:绘制三次 (可以优化)
  5. 深红:绘制四次 (必须优化)