当前位置: 首页 > 科技观察

技术栈!10款主流移动端性能测试工具概述及横向对比分析!

时间:2023-03-16 19:58:35 科技观察

1。移动端性能监控的主要方式移动端性能监控主要有三种方式:一是开发工具自带的监控工具,比如xcode自带的instrument,Androidstudio自带的Androidmonitor;另一种是使用第三方SDK;三是自行开发检测代码。这三种方法都各有利弊。开发工具内置监控工具,包含众多强大的监控功能,并持续迭代更新,简单易用,为开发阶段的性能测试提供有力支持。但它只能在开发工具内部使用,不能在其他产品周期中独立使用。Bugly、OneAPM、听云、Firebase等专用于性能监控、用户行为、属性分析的第三方SDK可以接入项目进行性能监控。这些第三方工具的工作原理大同小异:引入SDK和相关库,在程序入口处开始监控,自动记录并报告关键功能前后的关键功能。但是,使用第三方SDK的弊端也非常明显。首先,可定制性差。有些我们需要的指标是采集不到的,SDK采集的也不是我们完全需要的。安装包很可能会因为几个简单的值而被放大。许多。除了性能指标外,我们并不完全了解SDK是否统计了其他数据,这涉及到安全问题。自己在项目中植入监控代码的好处是安全可靠,指标可以自定义,有针对性。缺点是需要开发成本,在代码本身监控App的性能也可能造成额外的性能损失。2、移动端App核心性能指标表现问题包括崩溃、网络请求错误或超时、响应速度慢、列表滚动卡顿、流量过大、耗电等。App性能不佳的原因有很多。排除设备硬件和软件的外部因素,大部分是开发者对线程、锁、系统函数、编程范式、数据结构的错误使用造成的。即使对于最有经验的程序员,也很难避免在开发过程中导致性能不佳的所有“陷阱”。因此,解决性能问题的关键在于能否尽早发现并定位这些“坑”。衡量一款App性能的指标有很多,不同App的特性对指标的侧重程度也会有所不同。其中,核心性能检测指标(一般监控指标)包括:内存使用率(MEM)CPU使用率(CPU)页面刷新帧率(FPS)网络状态(Net)流量消耗(Flow)卡顿(Flag)Crash启动时间3.不同迭代周期对移动端性能测试的需求App的迭代生命周期大致可以分为开发阶段、测试阶段和上线阶段。开发期间,需要能够检查性能异常并通知开发人员;测试期间,需要使用测试工具生成性能测试报告;在线期间,通过监控平台上报性能数据,实现在线问题定位和跟踪。不同的迭代周期对测试工具有不同的要求:开发测试阶段:为了直观的看到性能测试的结果,一个能够全面检测App性能指标的本地监控工具可以满足要求。上线阶段:我们无法像测试阶段的应用那样控制用户使用的应用,所以我们需要在运行阶段将用户设备上运行的应用的性能指标上传到监控平台,引入一个性能监控SDK,便于监控应用线的性能,定位问题。4.主流移动端性能测试工具简介(1)Xcode-InstrumentInstrument是苹果官方提供的一套功能强大的内置于xcode中的性能调试工具。其中,活动监视器(ActivityMonitor):监控进程级别的CPU、内存、磁盘、网络使用情况,可以获取手机运行时应用的总内存大小;CoreAnimation(图形性能):该模块显示程序显卡性能、CPU使用率和页面刷新帧率;网络:使用链接工具分析程序如何使用TCP/IP和UDP/IP链接;能源日志:监控功耗。Instrument主要是用来在调试过程中随时发现问题,及时优化,但这个工具只能供有应用源代码的程序员使用,无法衡量用户在真实使用场景中的表现。(2)Android监控AndroidStudio内置了四种性能监控工具MemoryMonitor、NetworkMonitor、CPUMonitor、GPUMonitor,您可以使用这些工具来监控App的状态。MemoryMonitor工具主要用于监控App的内存分配情况,判断是否存在内存泄漏;NetworkMonitor用于显示App网络请求的状态;GPUMonitor工具可以显示UI渲染所花费的时间;可以检测代码中的CPU监视器方法。(3)MatrixMatrix是微信开发的日常使用的应用性能接入框架,支持iOS、macOS和Android。Matrix通过对接各种性能监控方案,对性能监控项的异常数据进行采集和分析,并输出相应的问题分析、定位和优化建议,从而帮助开发者开发出更高质量的应用。数据监测结果存储在后台,没有直观的展示界面。Matrix-iOS/macOS主要监控崩溃、卡顿和内存爆裂。Matrix-android的监控范围包括:应用安装包大小、帧率变化、启动时间、卡顿、慢方法、SQLite操作优化、文件读写、内存泄漏等。(4)GTGT(portabletuning)是一个直接在手机上运行的“集成调试环境”。使用GT,只需一部手机,无需连接网络,即可在App上快速进行性能测试(CPU、内存、流量、功耗、帧率/流畅度等)、开发日志查看、Crash日志查看、网络数据电脑。抓包,调试app内部参数,统计真机耗时代码等。GT支持iOS和Android两种手机平台,其中:iOS版本是Framework包,必须嵌入到App工程中,编译后即可使用带有GT的App;支持iPhone和iPad应用程序。Android版本由可直接安装的GTConsoleApp和GTSDK组成。GT控台可独立安装使用;SDK需要嵌入到被调试的应用程序中,使用GT控制台进行信息展示和参数修改。(5)EmmageeEmmagee是一款实用、方便的针对指定AndroidApp的性能测试工具,可以监控CPU、内存、网络流量、电池电流和状态(部分设备不支持)。此外还支持自定义采集数据的时间间隔、悬浮窗呈现实时进程状态等,安装完成后打开Emmagee会显示系统当前安装的应用(时间间隔可在设置中配置).选择应用后,点击“开始测试”按钮,Emmagee会自动启动被测应用,并在最上方显示流量、CPU、内存等数据。在此状态下,被测应用可以任意使用,Emmagee会自动执行相关数据,测试结束后,会生成相应的报告,保存在Android目录下。(6)SoloπSoloπ是支付宝在移动端实现的一套无线、非侵入、免root的Android专项测试方案。直接控制手机,实现自动功能、性能、兼容性、稳定性测试。支持实时获取CPU、内存、FPS、流量等常规指标。还支持记录性能数据,存储在本地并以报表的形式展示,支持性能压测。(7)TestinTestin性能测试,通过自动化测试工具,在上线前模拟正常、高峰、异常等各种场景,测试App的各项性能指标。包括:负载测试、压力测试、配置测试、并发测试、容量测试、可靠性测试。负载测试:通过逐渐增加系统负载,测试系统性能的变化,最终确定在满足性能指标的情况下系统所能承受的最大负载。压力测试:通过逐渐增加系统负载,测试系统性能的变化,最终判断系统性能在何种负载条件下处于失效状态,获得系统所能提供的最大服务水平。配置测试:通过对被测软件的硬件和软件配置进行测试,得到不同配置的性能指标,用于选择最佳设备和参数配置。并发测试:测试多个用户同时访问同一个应用程序、同一个模块或数据记录时是否存在死锁或其他性能问题。容量测试:在一定的软硬件条件下,构造一定数量的虚拟用户访问,得到不同级别的服务器性能指标,以确定数据库能够处理的最大会话容量和容量。可靠性测试:使用系统所能支持的最大并发用户数,持续执行一段时间(7*24小时),通过综合分析执行指标和判断系统处理最大工作量的性能资源监测指标。(8)BuglyBugly是腾讯推出的免费崩溃收集工具。为移动开发者提供专业的Crash监控、崩溃分析等质量跟踪服务。移动开发者(Android/iOS)可以通过监控快速发现用户在使用过程中发生的Crash(崩溃)、AndroidANR(应用无响应)、iOS卡顿,并根据上报信息快速定位并解决问题。用户只要登录Bugly网站,就可以清楚地看到被监控的产品发生了多少次崩溃,影响了多少用户,并可以根据Bugly提供的崩溃日志修复问题。(9)OneAPMMi是OneAPM针对移动设备上的App推出的一款移动应用性能监控工具。小米展示了移动应用的交互性能,崩溃率、HTTP错误率、网络错误率等核心性能指标,用户访问轨迹、用户动作等行为数据,以及活跃用户等运营数据。从用户操作、网络请求、崩溃三个核心指标评估用户体验,从应用版本、操作系统、设备、地域等多个维度提供用户分布概览。完整记录每个用户的访问轨迹,通过回溯过程中查看单个用户访问、慢动作、错误请求和崩溃。详细展示某类崩溃的设备、操作系统、应用版本、发生次数、受影响用户等信息,还原崩溃痕迹,定位崩溃代码行。(10)听云App听云App是听云平台提供的一款手机性能监控工具。监控真实用户使用过程中出现的死机、错误、卡顿、网络性能差等问题。可跟踪App应用移动设备用户在屏幕上操作时的交互表现;统计各种错误类型,直观定位到具体的错误URL,以及崩溃发生时的堆栈信息;深度追踪HTTP错误、网络错误和崩溃的原因,提升App质量。5、主流移动端性能测试工具横向对比针对不同的产品迭代周期,我们选取??了业界相对成熟的工具,对比了各自的优缺点。各工具性能指标覆盖率对比如下表所示:6.结论不同的移动端性能测试工具各有优缺点。在选择工具时,需要综合考虑主要监控性能指标和工具的优势。适用于研发测试阶段的工具,GT、Emmagee、soloπ可以直接在andriod端安装apk进行测试,方便快捷。对于在线用户使用情况的监测,有些工具指标涵盖的比较全面,但有些指标的监测不够深入,可以考虑结合使用一种或多种其他工具。