zoukankan      html  css  js  c++  java
  • 使用腾讯PerfDog对微信小程序进行性能测试

    一、背景

    1.多:进一步拓展了解Perfdog特性,优点多;

    2.好:采用Perfdog进行APP进行性能分析,好用;

    3.快:快速发现性能瓶颈进行调优,形成测试闭环;

    **PerfDog的使用前面已有澄清:腾讯客户端性能测试利器PerfDog使用

    二、如何测试小程序性能

    Perfdog支持多进程测试。

    1.Android平台,一般大型APP,比如游戏有时候是多进程协作运行(微信小游戏,微视等APP及王者荣耀等游戏多子进程),可选择目标子进程进行针对性测试。默认是主进程。如下图王者荣耀:

    微信小游戏、小程序测试等,如下是微信小游戏-浪漫玫瑰园:

    备注:子程序进程名高亮显示,表示当前子进程处于顶层。

    2.iOS平台,APP多进程分为APP Extension和系统XPC Server。 比如:某电竞直播软件用到APP Extension扩展进程(扩展进程名LABroadcastUpload)。当然也可能用到系统XPC Server服务进程,如一般web浏览器会用到webkit。

    三、案例实操

    1.测试概要

    一、【XXX】小程序性能测试需求的基本信息

    1、测试需求

    1.不同场景下的网络类型覆盖;

    2.不同场景下的响应时间记录;

    3.不能场景下的主要性能参数记录(FPS、内存、CPU占用);

    2、测试项

    1.APP端主要性能数据(内存、CPU占用、FPS)。2.响应时间。3.网络类型覆盖。

    3、测试环境

    手机端型号及版本:一加5 Android 9.0

    安装包:小程序体验版V1.0.0.0.qa6

    4、测试地点

    家中(在家办公)

    5、测试网络

    移动(4G)

    6、测试方法

    详见《性能测试方案》

    7、通过标准

    相关bug都已解决即为通过

    8、测试时间

    2020/3/19

    9、测试人员XX

    X

    10、需求沟通人员

    XX

    2.网络标准

    场景

    网络

    网速

    预置条件

    是否执行

    预期结果

    场景1

    WiFi

    正常网络

    极好网络(大于1MKBytes/S)

    工位上测试(可能有网络干扰)

    /

    场景2

    较好网络(大于500KBytes/S , 小于1000KBytes/S)

    工位上测试(可能有网络干扰)

    /

    场景3

    正常网络(大于300KBytes/S , 小于500KBytes/S)

    工位上测试(可能有网络干扰)

    二期需求

    场景4

    弱网络

    较弱网络(大于100KBytes/S , 小于300KBytes/S)

    工位上测试(可能有网络干扰)

    二期需求

    场景5

    弱网络(大于30KBytes/S , 小于100KBytes/S)

    工位上测试(可能有网络干扰)

    /

    场景6

    极弱网络(小于30KBytes/S )

    工位上测试(可能有网络干扰)

    /

    场景7

    运营商4G

    正常网络

    信号强

    运营商网络

    一期需求

    场景8

    弱网络

    信号弱(信号轻度值<-90dbm)

    /

    3.性能测试方案

    测试描述

    分别测试不同场景(见场景描述)和不同网络环境(WiFi和4G)组合下,其性能参数是否符合标准。若不符合标准,则需给与调优和验证。

    测试标准

    1.小程序参考APP端性能标准:FPS>25,平均CPU占用低于60%,内存<1000M。

    2.响应时间:2S内为良好、2S~5S为勉强接受、8S以上为不能接受。

    测试工具和计算方式

    主要依据微信小程序的H5页面进行测试:

    1.方案一:使用腾讯Perfdog,分别对主场景逐个录制(操作步骤见分场景),并将数据保存到本地和云盘,统计平均值:FPS、内存、CPU占用率。

    2.方案二:微信小程序性能控制面板,实时打印性能参数,以及保存到Trace工具。

    主场景描述

    分场景描述

    网络环境

    性能参数

    是否通过

    BUG ID

    备注

    FPS(Max)

    FPS(Min)

    FPS(AVG)

    内存(Max)

    内存(Min)

    内存(AVG)

    CPU占用率(Max)

    CPU占用率(Min)

    CPU占用率(AVG)

    响应时间(Max)

    响应时间(Min)

    响应时间(AVG)

    主场景1

    分场景1(内容较多,见[性能测试结果]中的C列)

    WiFi(正常)/运营商4G(正常)/WiFi(弱网)

    .....

    分场景n

    ......

    分场景1

    WiFi(正常)/运营商4G(正常)/WiFi(弱网)

    .....

    .....

    主场景n

    分场景1

    WiFi(正常)/运营商4G(正常)/WiFi(弱网)

    .....

    分场景n

    四、性能标准

    备注:后期PerfDog会细分各个类型APP和游戏参考标准。 请参考2019年中国移动游戏质量白皮书: https://wetest.qq.com/white-paper/white-paper-2019

    五、性能报告查看

    1.报告查看与APP端类似:腾讯客户端性能测试利器PerfDog使用

    2.性能数据记录分析

    序号

    优先级

    主场景

    分场景

    网络环境

    结果URL

       

    是否通过

    BUG ID

    备注

    响应时间(AVG

    FPSMax

    FPSMin

    FPSAVG

    内存(Max)

    内存(Min)

    内存(AVG

    CPU占用率(Max%

    CPU占用率(Min%)

    CPU占用率(AVG%

    1

    入口

    1.APP入口进入并授权后,跳转XX小程序。

    运营商4G

    /

    8.81

    /

    /

    /

    /

    /

    /

    /

    /

    /

    483XXX

    APP跳小程序时间较长,开发目前排查跳转是微信SDK导致

    2

    首页展示规则

    2.身份选择后,进入首页

    运营商4G

    4.85

    3

    首页静置1分钟

    首页静置1分钟

    运营商4G

    https://perfdog.qq.com/case_detail/XXXXXX   Password: cvPsrZ

    /

    1.00 

    10.00 

    3.30 

    340.00 

    320.00 

    327.80 

    11.00 

    4.00 

    7.20 

    /

    3.测试结论

    测试总结

    1、测试概述

    1.微信授权后跳转小程序慢(约8.81S)、小程序授权后跳转首页慢(4.85S):开发排查是微信SDK导致,暂无优化控件;

    2.多媒体资源预览慢(依据不通过资源类型和大小在5S以上不等):开发排查,其引用微信自带组件解析,但预览慢,则是网络和内部内容服务器导致,预计需要内部内容服务器先优化;

    3.视频的压缩慢和上传慢(拍摄30S视频,压缩4.47S,上传12.21S):开发排查压缩使用微信自带组件,暂无优化空间。上传采用内部内容服务器组件,预计需要内部内容服务器优化;

    4.内存和CPU占用较多(内存最高968M,CPU占用最高88%):开发排查主要在列表页,数据量较大导致,且退出列表自带GC,暂未出现异常,暂无优化空间;                

    2、已知风险/问题

    暂无竞品对比,方法论平台中暂未体现。

    3、测试结论

    测试不通过,存在加载慢和性能占用较高的情况,具体见[测试概述]。

    4、是否推荐

    请产品负责人根据现有数据评估产品质量,再决定是否使用。

    六、案例分析

    案例一:

    1)BUG描述:【性能】网盘:首次打开图片,iOS端预览图片比Android慢16S+,建议优化。

    解决方案: 图片浏览使用微信图片浏览控件,无优化空间。 开发排查部分iOS设备很快加载,应该是网络,或者内部内容服务器慢导致的。

    案例二:

    1)BUG描述:【性能】在编辑任务中网盘列表滑动内存持续上涨:平均内存729M,最大内存1026。在首页平均内存402M,最大内存447。 

    2)解决方案: 网盘内存占用比首页高的原因是,网盘每个item都带有一个缩略图,且每个NDR文件元信息都含有很多内容。所以会比网盘的内存占用会高。 JS语言自带垃圾回收机制,所以暂无接入内存管理的必要。

    七、小结

    1、工具的特性

    2、性能测试

    3、性能调优

  • 相关阅读:
    初来乍到
    OpenGl基础篇(1.0)
    说说结构化方法和面向对象方法
    浅谈软件项目管理
    测试篇
    结构化与面向对象化之应用比较
    敏捷软件开发VS传统软件开发
    SOSO街景地图 API (Javascript)开发教程(1)- 街景
    阿里实习内推面经
    Android工程开发笔记<一>
  • 原文地址:https://www.cnblogs.com/haixianglan/p/13942916.html
Copyright © 2011-2022 走看看