性能测试系列(3):移动端的性能测试

响应

  1. 冷启动:首次启动app的时间间隔(只是启动时间,不包括页面加载)
  2. 热启动:非首次启动app的时间间隔(只是启动时间,不包括页面加载)
  • 方法:adb shell am start -W packageName或者通过Android Monitor的logcat

内存

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

Monkey

  1. Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/sdk/sdk/tools/lib/monkey.jar
  2. Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/sdk/sdk/tools/bin/monkey
  3. adb shell monkey {+命令参数} Monkey 测试出现错误后,一般的分析步骤看Monkey的日志 (注意第一个swith以及异常信息等)
  • 程序无响应的问题: 在日志中搜索 “ANR”
  • 崩溃问题:在日志中搜索 “Exception” (如果出现空指针, NullPointerException) 肯定是有bug

CPU

  1. 在空闲时间(切换至后台)的消耗,基本没大应用使用cpu
  2. 在运行一些应用的情况下,cpu已占50%的情况下,观察应用程序占用cpu的情况
  3. 在高负荷的情况下看CPU的表现(cpu占用应是在80%以上)
  • 方法: top -m -s cpu |grep packageName(-m是最大 -s是排序)或者dumpsys cpuinfo |grep packageName

FPS

  1. app使用的流畅度,60帧/s,要保持画面流畅不卡顿,一般是要求每一帧的时间不超过1000/60=16.6ms
  • 方法:adb shell dumpsys gfxinfo packageName或者开发者选项—>profile GPU rendering —> on screen as bars(这个基本不用,了解就行了)

GPU过度渲染

  • 开发者选项—>Debug GPU overdraw—>show overdraw areas

耗电

  1. 测试手机安装目标APK前后待机功耗无明显差异
  2. 常见使用场景中能够正常进入待机,待机电流在正常范围内
  3. 长时间连续使用应用无异常耗电现象
  • 方法:adb shell dumpsys batterystats |grep packageName

耗流

  1. 先查看UID:cat /data/system/packages.list | grep com.newsplus.tr 假设UID为1000
  2. 然后 通过cat /proc/uid_stat/1000/tcp_rcv计算下行流量
  3. 再启动APP到APP彻底启动 cat/proc/uid_stat/1000/tcp_sed计算上行流量
  4. 然后sed-rcv即可
  • 或者通过wireshark抓包也可以
posted @ 2021-10-07 15:57  Cstzar  阅读(160)  评论(0编辑  收藏  举报