app性能测试 1.1     主要测试点 1.2     测试方法 2         内存占用测试 3、 CPU 繁忙测试 4、        FPS 应用流畅度测试 5、 GPU 过度渲染测试 2)   monkey 的优劣  导出结果与分析

1         App 响应时间和响应速度测试

  • 冷启动

       首次启动 app 的时间间隔(只是启动时间,不包括页面加载)

  • 热启动

       非首次启动 app 的时间间隔(只是启动时间,不包括页面加载)

1.2     测试方法

  • 冷启动

     app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

  • 热启动

     按返回按键后再启动 adb 命令

     测试标准:冷启动时间不超过 1.5s,热启动不超过 1s。

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

2         内存占用测试

2.1   主要测试点

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 2.2 测试方法

  • 使用 adb 命令

         adb shell dumpsys meminfo com.tencent.mm

  • 主要指标

  Native heap alloc、Dalvik heap alloc

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

若这两个值一直增长,说明可能出现内存泄漏

   PSS

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 App 实际占用的内存大小

主要关注

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析 

3、 CPU 繁忙测试

3.1  主要测试点

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 3.2 具体场景

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 3.3 测试方法

adb shell dumpsys cpuinfo apk 包名

adb -s 192.168.231.101:5555  shell dumpsys cpuinfo com.tencent.mm | findstr com.tencent.mm

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

adb shell top -m 10

 app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 指定按照CPU进行排序

adb shell -m10 -n3 -s9

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 查看微信内存占比,每个10s刷新一次,总共刷新3次

adb shell top  -n3 -s10 -d10 | findstr com.tencent.mm

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 将微信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 包名

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

   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 的帧

 app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

4)通过 execl 进行表格处理可以直观的查看软件的流畅度

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

adb shell dumpsys gfxinfo com.tencent.mm > Desktoplog.txt

--》创建Excel,复制数据 Process、Draw、Execute,求和

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 --》选中Draw+process+execute一列,插入图表

--》添加标准列16

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 --》右击图表,选择数据

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 ---》将=Sheet1!$D$1:$D$121改为=Sheet1!$D$1:$E$121

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

--》查看图表 ,标准线已添加

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 5)  Settings→System→Advanced→Developer options→查找 profile→on screen as bars

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

5、 GPU 过度渲染测试

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

6      使用monkey App 进行压力测试

1)monkey 是做什么的

  • monkey 是 Android 中的一个命令行工具,由 java 编写,可以运行在模拟器里或实际设备中。
  • 它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现  对 APP 进行压力测试。
  • monkey 测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

2)   monkey 的优劣

优势

  •    脱离 Case 的依赖
  •    可封装自动化执行
  •   可封装后作为客户端性能测试的驱动

缺陷

   完全随机,不可控

3)monkey命令

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 4)monkey结果分析

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   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、选择测试指标

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

   AUT:设置被测应用信息

   pss:实际使用的物理内存

   private dirty:私有内存

   jiffies:CPU 时间片,反映进程的 CPU 消耗

   net:整个手机产生的流量

--》选择监控参数

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

   点参数→编辑→拖动需要监控的参数到“已关注的参数”→不点完成

  添加监控耗电量、流量和流畅度的参数

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

耗电量

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

流量

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 流畅度

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

  点“检测”必须出现 ok,否则点“更改”→检测,提示“select a app first”忽略

选择显示指标

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 刷新内存指标

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 启动监控

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 查看监控图

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

双击各项看图

 导出结果与分析

保存数据

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 导出的文件夹  /sdcard/gt/gw/org.chromium.webview_shell/1.0/

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

压缩文件

进入/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

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 拉取文件

--》adb pull  /sdcard/gt/gw/org.chromium.webview_shell/1.0/baidu.tar.gz .

app性能测试
1.1     主要测试点
1.2     测试方法
2         内存占用测试
3、 CPU 繁忙测试
4、        FPS 应用流畅度测试
5、 GPU 过度渲染测试
2)   monkey 的优劣
 导出结果与分析

 处理数据