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

在十一月初,腾讯就官宣了一则消息,腾讯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连接电脑后,出现如下界面,可以选择测试模式:

USB模式测试:

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

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

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

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

选择测试应用

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

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

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

开启悬浮权限

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

功能介绍

1.性能参数配置

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

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

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

2.记录保存

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

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

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

2.1 提交记录到perfdog后台

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

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

2.2 记录保存到本地

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

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

3.数据回放

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

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

4.批注及标定

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

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

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

5.性能参数分析

5.1 数据统计

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

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

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

5.3 保存框选数据

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

6.场景标签

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

7.日志记录

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

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

8.停止功能

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

9.截图录屏

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

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

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

PerfDog后台使用

1.邀请人员

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

2.数据共享

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

使用注意点

1.设备连接

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

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

2.截图记录影响性能

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

总结

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

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

2.易操作

3.记录支持回放

4.数据便于管理与查看

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

最后,附上官方的操作手册:https://perfdog.qq.com/support

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

时间: 2024-11-20 12:39:35

WeTest明星工具-移动端性能测试PerfDog初探的相关文章

逐点分析,这样做Web端性能测试

前言: 71%用户希望在手机上打开网页能跟电脑一样快: 5秒钟被认为是用户能忍受的最长响应时间,如果响应时间超过5秒,50%的移动用户会放弃: 33%失望的用户会使用竞品替代: 用户尝试三次出现同样性能问题,50%的人不会再使用该应用. 基于此,我们今天就一起来探讨一下Web性能测试测试点.(写的略粗糙,欢迎大家留言吐槽.) 1.什么是Web性能测试?注意事项有哪些? 性能测试,简而言之就是模仿用户对一个系统进行大批量的操作,得出系统各项性能指标和性能瓶颈,并从中发现存在的问题,通过多方协助调优

移动端web开发初探之Vuejs的简单实战

这段时间在做的东西,是北邮人论坛APP的注册页.这个注册页是内嵌的网页,因为打算安卓和IOS平台同时使用.因此实际上就是在做移动端的web开发了. 在这过程中遇到了不少有意思的东西. DEMO的github地址在这里 内容提要: meta标签 Vuejs的简单实战 CSS移动端全屏背景 CSS移动端动画初探 meta标签 这点与在PC端写前端有着很大的区别,移动端的meta标签简直多.我就说说我所用到的标签. <!-- 1.如果支持Google Chrome Frame:GCF,则使用GCF渲染

服务端性能测试工具校验v1.1

更新说明: 1.精简CRT运行库支持. 2.添加响应模拟测试,校验压力测试工具的响应时间统计准确性. 3.大并发请求请降低延迟时间 WEIMJSAM原创,转载请注明出处 测试技术交流群:478717918 链接: https://pan.baidu.com/s/1kUVGGwJ 刮开有奖-> mgpx

LoadRunner在移动端性能测试的应用

摘选自 <精通移动app测试实战:技术.工具和案例>新书上市 如果大家之前做过性能测试,我相信一定会应用过大名鼎鼎的性能测试工具-LoadRunner.目前LoadRunner的最新版本为LoadRunner 12.0,结合目前移动市场性能测试的需要,LoadRunner也提供了一些基于移动平台的协议和相应的工具.我们将会在本节结合LoadRunner 12.0向大家介绍一下如何使用“HP  LoadRunner  Mobile  Recorder”进行移动端的应用业务的脚本录制,以及应用Vu

服务端测试之接口测试初探

提起服务端测试,第一反应想到的可能就是http协议.socket连接.post/get发送请求等等.回想起小编当时初次接触服务端测试,真可谓一脸懵逼,不知道要干什么也不知道从哪儿开始做.服务端测试往往呈现给大家的是一个很大很宽泛的任务,我们知道要做服务端测试但却不知道怎么做,流程是啥,用什么工具去做,要达到什么样的效果.今天小编就结合最近自己做的一些服务端测试的任务,和大家聊聊服务端测试中的一个常见方法--接口测试. 一.什么是接口测试 先来看看接口测试的定义: 接口测试是测试系统组件间接口的一

Loadrunner对https协议(单双向SSL)的web端性能测试

1.项目背景 1.1 单双向SSL的含义及部署 单向SSL即我们说到的https协议. 特点是,浏览器需要请求验证服务器证书: 基本含义是:一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息.它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版. 双向SSL顾名思义就是双方都需要验证证书的协议,浏览器首先向服务端请求证书,然后服务器端需要向浏览器请求目前登陆用户的个人证书验证. 1.2 系统的基本部署 单向SSL交互过程: 使用单向SSL时,仅通过虚拟主

LoadRunner如何进行移动端性能测试

1.录制脚本 1.1 创建脚本:新建一个用户脚本,选择Mobile Application 使用管理员身份打开VirtualUser Generator,点击[文件]->[新建脚本和解决方案],在弹出的创建新脚本中,选择单协议Mobile Application – HTTP/HTML,输入脚本名称,以及脚本存入位置,点击[创建],如下图所示: 1. 2录制脚本:使用共享的wifi录制APP 有三种方法可以录制手机APP 方法1:通过电脑上共享网络,在手机上连接共享的wifi. 方法2:通过本地

关于测试工具以及前端性能测试的一些思考

对于下一代测试工具的思考. 在以往的性能测试工作中,一直以来使用的测试工具框架都是基于请求-响应模型来进行开发的, 该模型是指脚本通过模拟HTTP请求并接收服务器的响应来针对被测对象的响应时间等考评指标来进行考评. 目前主流的性能测试工具都产生于瘦客户端的时代,而且由于基于的HTTP请求-响应模型本身是很标准的模型, 因此工具更容易做到普适性. 但是很多时候我们测试的结果看着很漂亮,但是实际用户在使用的时候却感觉系统性能糟透了, 抛开场景本身在抽象后与实际场景的差异,这种测试时间和体验时间之间的

性能测试工具 Web Service 性能测试工具比较

[转自]https://testerhome.com/topics/3003 背景 希望选择一款Web Service性能测试工具,能真实模拟大量用户访问网站时的请求,从而获取服务器当前的请求处理能力(请求数/秒).以微信服务器为例,每个用户用独立的登录token,做各种操作,比如刷消息.发消息.看朋友圈等. 希望该性能测试工具符合如下要求: 测试脚本能力,最好是Python/Ruby等最常用的 每个并发实例能使用不同参数 CLI启动测试,这对自动化测试很重要 Session支持,也就是第一个请