背景
从用户角度来讲,app 启动以及页面加载越流畅,体验越好,越有可能决定用户是否继续使用此产品;从 RD 角度来讲,在页面进行重构(比如 native 换成 rn 时),相对于原有页面加载时间是否有较大变化,体验大幅度下降?从 QA 角度来讲,页面加载时间一直都是专项测试及竞品评测中一个很重要的指标。
方案调研
方案 | 公司 Android 产品 | 公司 iOS 产品 | 竞品 Android 产品 | 竞品 iOS 产品 |
---|---|---|---|---|
adb | 支持(但不能统计页面多阶段的时间) | 不支持 | 支持 | 不支持 |
tidevice | 不支持 | 不支持 | 不支持 | 不支持 |
插装埋点 | 支持 | 支持 | 不支持 | 不支持 |
图像识别 | 支持 | 支持 | 支持 | 支持 |
tidevice 获取性能数据可参考https://github.com/YueChen-C/py-ios-device/blob/main/README_CN.mdApp 启动时间及页面加载时间。,无法获取页面的加载时间,故最终选用基于录屏分帧图像识别的方案来得到
实际示例
以字节公开的一篇文章来讲, 移动端耗时类指标检测:基于图像匹配和 OCR 检测的智能分帧算法:https://mp.weixin.qq.com/s/NvNOPdhKb1ywZSN-_zbyUg
问题
1、视频解帧的帧率如何选取(既要保证得到的耗时结果比较准确,也要保证耗时计算任务整体执行时间比较短)?
2、图像识别得到的耗时数据的置信度如何衡量呢?
3、如何选取动态页面里的特征作为起始帧或者结束帧呢?以爱奇艺 App 的首页为例,首页中 banner 和热播中的封面一直在动态变化,完全加载时间的结束帧如何计算呢?录屏:https://b23.tv/Hx5YUdH
4、在对场景自动化录屏过程中,因为录屏在页面加载前后都是开启的,是不是也会对实际的页面加载时间数据有影响呢?影响是怎么样的呢?
5、一般页面加载时间都是发版前后或者竞品测试时进行,即可能一两周才全量跑一次,每周任务执行的高峰时间可能集中在一两天,如果计算是放在服务端的,服务端的架构如何设计比较好呢?
6、如果作为工具的提供方,可以从哪些方面较少业务的接入成本呢?
7、识别算法得分阈值如何设置比较好?
大家在进行移动端耗时类评测时都遇到哪些问题呢?可以一起交流交流
1、游戏产品,引擎端开始到页面完全加载的时间。
2、线上问题反馈/处理流程。