一、背景
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) |
FPS(Max) |
FPS(Min) |
FPS(AVG) |
内存(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、性能调优