使用腾讯PerfDog对微信小程序进行性能测试

2,974 阅读5分钟

一、背景

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、测试人员XXX
10、需求沟通人员XX

2.网络标准

场景网络网速预置条件是否执行预期结果
场景1WiFi正常网络极好网络(大于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
......分场景1WiFi(正常)/运营商4G(正常)/WiFi(弱网)
.....
.....
主场景n分场景1WiFi(正常)/运营商4G(正常)/WiFi(弱网)
.....
分场景n

四、性能标准

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

五、性能报告查看

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

2.性能数据记录分析

序号优先级主场景分场景网络环境结果URL是否通过BUG ID备注
响应时间(AVG)FPS(Max)FPS(Min)FPS(AVG)内存(Max)内存(Min)内存(AVG)CPU占用率(Max,%)CPU占用率(Min,%)CPU占用率(AVG,%)
1入口1.APP入口进入并授权后,跳转XX小程序。运营商4G/8.81/////////483XXXAPP跳小程序时间较长,开发目前排查跳转是微信SDK导致
2首页展示规则2.身份选择后,进入首页运营商4G4.85
3首页静置1分钟首页静置1分钟运营商4Gperfdog.qq.com/case_detail…   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、性能调优