一、背景
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、性能调优
|
请发表评论