简介:功能决定现在,性能决定未来。欢迎大家围观《云上的移动性能测试平台》, 了解EMAS性能测试平台的能力与规划。
1. 功能决定现在,性能决定未来
性能测试在移动测试领域一直是一个大难题,它最直观的表现是用户在前台使用 App 时的主观体验,然而决定体验优劣的背后,涉及到了许许多多的技术变迁。
- 当我们习惯于诺基亚时,智能机出现了;当我们学会native开发时,hybrid来了;当各种 hybrid 框架下的巨型应用倾向成熟时,小程序出现在了我们眼前;紧接着直播、iot、ar、vr、人工智能,新的技术与应用场景正在以无法想象的速度向前发展。性能测试技术在快速变化的场景与开发技术面前,面临着巨大的挑战,当我们还在纠结如何测试 a 时,b 就已经出来了。
- 性能测试本身,有发展日渐成熟的解决方案,如线上性能监控APM、线下性能采集工具;有基于各个应用场景衍生的测试技术,如压力测试、稳定性测试、功耗测试等;也有基于各项性能指标(内存、cpu、电量、流量)而来的各种专项测试能力。
我们致力于打造线上线下一体的性能解决方案,希望能够帮助开发者发现、定位与解决一系列移动端性能问题。本文将着重介绍 EMAS 性能测试平台的能力与规划,还是那句话,功能决定现在,性能决定未来。
2. 云上的性能测试工具
通常我们在进行专项测试(内存、cpu、电量、流量等)时,需要准备测试机型、测试包、测试环境、测试数据,会遇到以下问题:
- 机型样本数不够多。
- debug包不一定真实反应生产包的性能,但Android Studio需要debug包才能测试。
- Android/iOS 测试环境的搭建与跨平台困难。
- 大量测试数据整理分析。
以上这些问题很容易导致整个测试效率的低下,甚至无法实施落地。
基于EMAS云真机的调试能力,MQC在云上提供了更加完美便捷的性能测试工具。
云真机天然提供多达600+款测试机型,支持调试测试所有已安装应用,不依赖任何本地环境配置,测试数据一键上传统计。
同时,EMAS性能测试工具有以下特点:
- 基于 app_process 与 instruments 协议实现的移动双端、跨平台性能采集;
- 无侵入、短间隔(采集间隔稳定1s),低延迟(性能数据延迟小于100ms)、低功耗(对设备性能影响低于1%);
- 应用+进程的测试方案,满足hybrid、小程序的测试需求。
3. 云上数据看板
性能数据的意义在于它将我们常见的各种问题通过技术的手段进行度量与量化,可以帮助我们在产品功能上线前,尽可能的发现潜在的性能问题和风险。MQC性能测试平台将存储于云上的数据,以尽可能多的维度可视化给用户,把好版本发布前的关口。
3.1 任务
用户使用云真机进行的每一次测试任务与性能数据,都会直接保存成测试任务,方便再次查看与确认历史数据。
3.2 用例
在实际的测试过程中,我们很容易发现,不同应用场景的性能数据是完全没有可比性的,在统计方法上只看性能数据的平均值也很难直接给出定性和定量的判断,没办法影响开发、产品的决策。
即便看似相同的场景,不同的产品决策也可能带来很大的性能数据差距:比如大多数云盘的相册基于流量与性能的考虑,显示的都是压缩后的图片;而我们的本地的一些相册软件,显示的基本都是原图,这样产品上的选择便导致了内存开销上巨大的差异。
数据看板在最初设计的时候就吸取了功能自动化用例平台时的建设经验,将每一次性能测试任务分用例存储,并且按照不同的用例维度对性能数据进行统计。在 EMAS 移动测试 控制台,不同子账号查看和管理相同的app与用例,满足多用户云端协作的需求。
3.3 多维度聚合
在用例维度的基础上,MQC 性能测试平台提供了多个维度的数据统计、聚合与分析能力。
• 设备分级
根据设备硬件性能打分,划分为高、中、低三个级别。
由于不同等级机型对 APP 实际性能指标的影响较大,这个因子可以较大程度减少硬件性能对指标置信度的影响。
• 应用版本
对于性能指标来说,通常有三种问题判断标准:
基于行业技术经验定义的基线指标,这通常是技术决策者基于用户体验、性能要求、大数据分析给开发提出的底线标准;
同行业 APP 性能指标横向对比,学习行业内优秀的技术实现一直是互联网快速发展的重要原因之一;
同 APP 不同版本间的纵向对比,快速的发现新版本的优化效果,新功能对 APP 的影响等。
• 指标分布
指标分布可以帮助开发者快速判断指标区间,定位可能的异常任务与异常指标区间,更加有针对性的去查阅任务报告。
- 未来规划
• 丰富指标:我们将继续完善更多性能指标的采集方案,如电量、GPU、温度等;
• 行业指标:MQC 将基于云上开发者数据、专家测试数据,整理并统计各个行业性能指标作为参考分享出来;
• 性能基线:上文提到,通常性能指标的观察标准有三,同行业APP性能指标;同APP不同版本性能指标;基于技术方案与行业数据的性能标准。性能基线的定义可以更好的约束开发者对极致性能体验的追求,最大可能降低性能问题出现的概率,如OOM、ANR问题。
原文链接
本文为阿里云原创内容,未经允许不得转载。