WeTest明星工具-移动端性能测试PerfDog初探

在十一月初,腾讯就官宣了一则消息,腾讯WeTest明星工具-PerfDog面向全球发布。官宣介绍如下:https://wetest.qq.com/lab/view/475.html。我在看到该新闻时,有种大开眼界的感觉,移动端的性能...

在十一月初,腾讯就官宣了一则消息,腾讯WeTest明星工具-PerfDog面向全球发布。官宣介绍如下:https://wetest.qq.com/lab/view/475.html。我在看到该新闻时,有种大开眼界的感觉,移动端的性能测试原来可以这么简单。今天闲暇之余,来了一波初探,简单体验了一番。

软件性能数据采集

我们先来了解下通过该工具能采集到哪些性能数据:

PerfDog支持移动平台所有应用程序(游戏、APP应用、浏览器、小程序等)及Android模拟器,桌面应用程序PerfDog支持在Windows和Mac机器使用运行。在iOS和Android平台获取性能参数如下:

iOS平台 (与苹果官方Xcode工具参数对齐一致)

  • Screenshot
  • FPS(1秒内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS)
    1) Avg(FPS):平均帧率(一段时间内平均FPS)
    2) Var(FPS):帧率方差(一段时间内FPS方差)
    3) Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数)
  • Jank(1s内卡顿次数。iOS9.1以下系统暂时不支持。类似Android的Jank卡顿和iOS的FramePacing平滑度统计原理。帧率FPS高并不能反映流畅或不卡顿。比如:FPS为50帧,前200ms渲染一帧,后800ms渲染49帧,虽然帧率50,但依然觉得非常卡顿。同时帧率FPS低,并不代表卡顿,比如无卡顿时均匀FPS为15帧。所以,平均帧率FPS与卡顿无任何直接关系)
    PerfDog计算方法:同时满足两条件,则认为是一次卡顿Jank.
    1、 当前帧耗时>前三帧平均耗时2倍。
    2、 当前帧耗时>两帧电影帧耗时(1000ms/24*2=84ms)。
    同时满足两条件,则认为是一次严重卡顿BigJank.
    1、 当前帧耗时>前三帧平均耗时2倍。
    2、 当前帧耗时>三帧电影帧耗时(1000ms/24*3=125ms)。
    计算思路:考虑视觉惯性,假设以前三帧的平均帧耗时为参考,作为vsync时间间隔,连续两次vsync没有新渲染画面刷新,则认为是一次潜在卡顿,也就是说下一帧耗时大于前三帧平均帧耗时2倍,则认为一次潜在卡顿。同时单帧耗时满足大于两倍电影帧耗时1000ms/24*2 (由于人眼低于24帧才能辨别画面不连续性),则认为是一次真正卡顿。同时若单帧耗时大于3倍电影帧耗时,则认为是一次严重卡顿。
    注解:为什么是两次vsync?GPU一般是3重缓冲buffer,当前帧已占用一个buffer,即剩余2缓冲buffer,人眼一般可容忍2帧延迟。 为什么是两帧电影帧耗时?低于24帧画面,人眼就能感知到画面不连续性,电影一般都是24帧。即电影帧耗时1000ms/24=41.67ms,两帧电影帧耗时也就是41.67ms*2,三帧电影帧耗时是41.67ms*3。
    1) BigJank:1s内顿严重卡次数
    2) Jank(/10min):平均每10分钟卡顿次数。
    3) BigJank(/10min):平均每10分钟严重卡顿次数
  • FTime(上下帧画面显示时间间隔,即认为帧耗时,iOS9.1以下系统暂时不支持。)
    1) Avg(FTime):平均帧耗时 
    2) Delta(FTime):增量耗时(平均每小时两帧之间时间差>100ms的次数)
  • CPU Usage(Total整机/App进程,统计结果合Xcode一致)
  • Memory (是统计FootPrint,注:OOM与FootPrint有关,与系统、机型无关。只与RAM有关,如1G内存机器。FootPrint超过650MB,引发OOM)。受iOS平台限制,暂时无法获取ios10及以下系统的memory。后续版本增加。如做性能测试,建议升级iOS系统版本
  • Xcode Memory (XCode Debug Gauges统计方式即XCode Memory)。受iOS平台限制,暂时无法获取ios10及以下系统的Xcode Memory。后续版本增加。如做性能测试,建议升级iOS系统版本
  • Real Memory(Xcode Instrument统计方式即Real Memory,实际占用物理内存。注:物理内存与系统策略有关,关注意义不大)
  • Virtual Memory(虚拟内存)
  • Wakeups(线程唤醒次数)。注:超过150进程很大可能会被系统kill
  • CSwitch(上下文切换测试)。注:单核超过14000进程会被系统Kill
  • GPU Utilization(Render/Tilter/Device)
    1) Render:渲染器利用率(像素着色处理阶段,若占比高,说明是PS阶段出现瓶颈,shader过于复杂或纹理大小、采样复杂等) 
    2) Tilter:Tilter利用率(顶点着色处理阶段,若占比高,说明是VS阶段出现瓶颈,顶点数太多等原因)
    3) Device:设备利用率(整体GPU利用率)
  • Network(Recv/Send,测试目标进程流量,和Xcode结果一致)
  • Battery Power(整机实时Current电流、Voltage电压、Power功率)(注:和Xcode Instrument结果一致)
  • Log(系统调试日志信息)

Android平台

  • Screenshot
  • FPS(1秒内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS)
    1) Avg(FPS):平均帧率(一段时间内平均FPS)
    2) Var(FPS):帧率方差(一段时间内FPS方差)
    3) Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数)
  • Jank(1s内卡顿次数。解释说明如iOS平台说明)
    1) BigJank:1s内严重卡顿次数
    2) Jank(/10分钟):平均每10分钟卡顿次数
    3) BigJank(/10分钟):平均每10分钟严重卡顿次数 
  • FTime(上下帧画面显示时间间隔,即认为帧耗时)
    1) Avg(FTime):平均帧耗时
    2) Delta(FTime):增量耗时(平均每小时两帧之间时间差>100ms的次数)
  • CPU Usage(Total整机/App目标进程,统计结果和Android Studio Profiler一致)
  • CPU Clock(各个CPU核心的频率和使用率)
  • Memory (PSS Memory,统计结果和Android Java API标准结果一致,与Meminfo也一致。注:部分三星机器系统修改了Meminfo底层统计方式,导致Meminfo与Java AP统计结果不一致,新出三星机器已修复)
  • Swap Memory (Swap Memory)
  • Virtual Memory
  • Memory Detail(NativePSS、GFX、GL、Unknown)
  • GPU Usage(目前仅支持高通芯片手机)
  • GPU Frequency(目前仅支持高通芯片手机)
  • Network(Recv/Send)
  • CTemp(CPU温度)
  • Battery Power(Current电流、Voltage电压、Power功率)(注:与仪器测试误差<3%左右)
  • Log(系统调试日志信息)

上述内容来自官网使用文档。我们了解了参数,就实际来操作一下吧。对于工具的介绍,网络上都有,我就结合自己的实际体验来说吧。

使用的基本流程

在自己实践使用时,基本流程如下:

1.注册账号(只有注册账号后才能下载安装包)

2.下载安装包并解压

3.在perfdog后台创建测试项目

4.打开可执行文件PerfDog.exe

5.使用注册的账号登录

6.使用usb将手机和电脑连接(不能锁屏,开启调试模式)

7.选择连接模式(wifi还是usb)

8.选择app应用列表

9.配置要监控的数据

10.开始记录数据

11.操作对应app

12.停止记录数据(不能少于10S)

13.上传记录数据

14.进入perfdog后台查看性能数据

流程介绍

前五步操作就不讲述了,大家都懂。我们直接从第六步说起,我使用的是ios设备。

连接设备

iOS: 则即插即用,用户无需做任何操作。

Android: 有两种模式,非安装模式和安装模式。

  • a. 非安装模式:手机即插即用,无需任何设置及安装,使用非常简单,但手机屏幕上没有实时性能数据显示。
  • b. 安装模式:需要在手机上自动安装PerfDog.apk,手机屏幕上有实时性能数据显示。(请开启Debug调试模式、允许USB安装和PerfDog悬浮窗管理权限),启动PC版PerfDog.exe,则会在手机上自动PUSH安装PerfDog.apk,具体安装类似各个手机厂商安装第三方APP提示安装即可。(注:由于很多手机安装需要账号密码,导致无法自动安装,如果自动安装失败,则会把安装文件PerfDog.apk释放到当前文件夹里,手动安装PerfDog.apk即可)。

这里重点说明下Android平台下,LMK和Swap这两个参数意义:

LMK:Android平台下OOM与游戏进程内存大小无关,主要是系统剩余物理内存有关。系统剩余物理内存小于LMK,则会引起OOM。

Swap: 系统进程用到zram/vnswap内存压缩技术。不同手机系统启用Swap memeroy大小不同。

测试模式

通过usb连接电脑后,出现如下界面,可以选择测试模式:

970665dd013f44539661edd210896e12

USB模式测试:

  USB连线,在设备列表选择USB图标设备进行USB模式测试(插线模式测试功率无任何意义)。

WIFI模式测试(测试功率):

  USB连线后,在设备列表选择WIFI图标设备进行WIFI模式测试。WIFI检测连接成功后,拔掉USB连接线。(注:需要PC和被测手机连接同一WIFI,WIFI检测连接成功后,拔掉被测手机USB线(插线模式测试功率无任何意义))。

在实践中,USB和WiFi模式我都有使用。选择模式后,界面会展示设备的详细信息,如下:

c2e1ea35287d4573b6ce3137b098882d

选择测试应用

选择模式后,则可以选择要测试的应用了(当前手机中的所有app都可以被选择),如下页面:

b66238c8cd3f4b49847752e0f50b425e

选择对应被测应用,并操作对应的app,界面展示如下:

958ff7220a0845e89dee281f21ffb921

注意点:Android平台,安装模式下,手机屏幕左上角有实时性能数据显示(Android手机请打开PerfDog悬浮窗管理权限,否则手机上不会显示性能参数)。

开启悬浮权限

29dc1c00348445299531252081fab4e0

android设备中的界面性能参数显示如下:

24ec9c1d9c2e42379c528ca8113fc421

功能介绍1.性能参数配置

性能参数可在界面中配置,点击界面中的+号即可,如下:

5e911558f24c427189bab9974a886c3c

①点击对应条目参数,颜色会变深,图表数据则会展示在界面中

②勾选对应条目参数,表示需要收集该数据

2.记录保存

点击右侧的蓝色开始按钮,则表示在记录数据,如下:

bc7084af27024969901965abe892f489

需要注意的是:记录时间不能少于10S。少于10S,则会提示如下信息:

64f7a8cf493c46c2a210f88fc31a573d

点击按钮后,记录会停止记录并保存数据,如下:

676be8bfbb144e488c2306dc1d9e8be5

2.1 提交记录到perfdog后台

可以修改名称,点击confirm,数据会上传到perfdog的后台,如下:

5de251c844c54b2e829c620c5583438f

可以查看详细的性能数据,如下所示:

b0175dd20b304ee4ae8e9b1ebddb4111

2.2 记录保存到本地

勾选保存按钮,数据就会保存到本地,如下:

97dbb1cea22b4ec1adbda42dab9f4dea

可以打开excel文件查看对应的性能数据:

7841c3cbe28f4470be47f61abfa83d4e

3.数据回放

点击perfdog界面上的文件夹按钮,选择对应的本地数据,即可以回放记录,操作如下:

256042e82fcc49c09168621a0eb73e90

可在界面查看回放结果,如下:

66a30df0e58b4e4e8e29741ed30a22c2

4.批注及标定

双击鼠标左键,增加批注,再次双击,则取消批注。

单击鼠标左键,则增加标定,再次点击则重新标定。

增加了批注和标定的界面如下所示,红色为批注,淡紫色为标定:

18877aad8da9495da57028158650345a

5.性能参数分析5.1 数据统计

可以选择一个时间段内的数据,进行统计,如下:

9dc65a3aef0c400384c548a0e776b93e

5.2 设置性能参数统计分析阈值

在perfdog界面中的setting下,可以配置,如下:

453b0773bd8d4c44a3e943247f4a2b89

5.3 保存框选数据

对某一时间段内的数据框选后,可以单独保存片段,在框选范围内,右键即可,如下:

42a3428eb6634a63b6f403ab1e44ee8c

6.场景标签

通过标签按钮给性能数据打标签,鼠标左键双击颜色区域可修改对应区域标签名

1dd51ae7df654464a6654a3c7f9abdb8

7.日志记录

在perfdog界面,可以查看对应日志,也可以设置查看日志的等级,如下:

acfa6a4400524d06bd818c3a980f62ea

在尝试WIFI模式时,发现log按钮勾选不了。

8.停止功能

停止测试应用,不需要拔掉数据线,或者断开连接,在选择应用的界面中,选择NULL即可,如下:

86d518a3d79847babda9734dba50b4ff

9.截图录屏

连接安卓设备,并使用安装模式,可配置截屏参数,如下:

c0094bb473384a3797a5d6b4d1ba856f

界面就会记录操作的过程,如下所示:

000cfa3994614d8eb6b294f9305d75a3

如此记录是不是很明了?但这种用法会影响性能参数,实际用途中不推荐。如果觉得新鲜,可以尝试使用即可。

PerfDog后台使用1.邀请人员

可以邀请对应人员一起维护测试项目

2.数据共享

数据共享后,可以在任务数据中查看明细,可按android、ios区分,以及app包的版本,设备版本来查看。

993b9dd2bf6f4b13aa2fdacd41bd0446

使用注意点

1.设备连接

iOS: 若PerfDog检测不到连接手机或无法测试,请先安装确保最新iTunes是否能连上手机。

Android: 请开启手机Debug调试模式及允许USB安装。

2.截图记录影响性能

截屏记录影响性能(整体FPS影响<=1。小米5:CPU=1%左右。IPhone7P:CPU<2%),若无需请不要开启截屏。

总结

使用PerfDog工具下来,整体有以下几点感受。

1.对性能指标的测试,更加便捷;

2.易操作

3.记录支持回放

4.数据便于管理与查看

PerfDog工具是款不错的性能测试工具,点赞一波。

原文:https://www.cnblogs.com/hong-fithing/p/11918703.html

性能测试技术交流群:720150565

查看PerfDog详情:https://perfdog.qq.com/?ADTAG=media.dev_website

  • 发表于 2020-09-08 13:06
  • 阅读 ( 67 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
腾讯WeTest

27 篇文章

作家榜 »

  1. hey girl 181 文章
  2. 王前前 137 文章
  3. 柠檬 118 文章
  4. lamking 105 文章
  5. 云少 105 文章
  6. 腾讯移动品质中心TMQ 104 文章
  7. humortony 82 文章
  8. 周培 49 文章