前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2.4 App性能测试

2.4 App性能测试

原创
作者头像
Heaven645
修改2024-10-12 15:34:11
972
修改2024-10-12 15:34:11

前言

本篇详细讲解了APP性能测试的六大内容:内存、CPU、流量、电量、流畅度以及启动速度。


1 测试环境搭建

环境要求

  • 依赖软件:MuMu模拟器(适用于Windows和Mac)
  • App安装包:通过APK安装包或应用平台进行安装。

2 APP性能测试

①测试内容

APP性能测试关注应用使用期间对硬件资源(CPU、内存、流量、电量)的占用情况,以及应用的稳定性和响应速度。

②测试工具

SoloPi:一款无线Android自动化工具,具备录制回放和性能测试功能。

③功能特点

  • 性能测试:限制CPU、内存和网络环境,以模拟低性能场景。
  • 录制回放:记录用户操作并在不同设备上进行回放。
  • 一机多控:通过一台主机控制多台设备,提高兼容性测试效率。

④测试步骤

  • 打开SoloPi,选择性能测试
  • 选择被测应用,勾选监控指标
  • 点击开始监控,打开被测APP应用开始测试
  • 查看数据采集结果

3 APP性能测试关注点

  • APP使用时对CPU、内存的占用情况
  • APP使用时是否流畅
  • APP使用时电量流量的消耗情况
  • APP的启动时间是否过长
  • APP是否能长时间稳定运行

3.1 内存

①监控指标

  • Private dirty(私有内存):进程独占内存,也就是进程销毁时可以回收的内存容量。
  • PSS(实际使用内存):考虑跨进程共享页的影响, 按比例计算PSS,能比较准确地表示进程占用的实际物理内存。

②常见问题

  • 内存泄漏:无法释放的已申请内存,导致内存使用持续增加。 内存溢出:
  • 内存溢出 :申请内存时没有足够空间,导致程序崩溃。

内存泄漏初期的影响可能微不足道,但随着时间推移,泄漏的内存会逐渐堆积,最终导致内存耗尽,形成内存溢出。当程序实际使用的内存PSS持续增长时,通常意味着存在内存泄漏;而程序崩溃(crash)则往往是由于内存溢出引起的。

3.2 CPU

①监控指标

  • 全局占用CPU:整机的CPU使用率,包括用户态、系统态和空闲态(在 Linux 系统下,CPU 利用率分为用户态、系统态和空闲态)。
    • 用户态:表示 CPU 处于应用程序执行的时间
    • 系统态:表示系统内核执行的时间
    • 空闲态:表示空闲系统进程执行的时间。
    • CPU 使用率 = CPU 执行非系统空闲进程时间 / CPU 总的执行时间
  • 应用进程CPU:自开机以来,应用程序消耗的CPU时间的总数。

②常见问题

当CPU使用率长期维持在90%以上时,可能会导致手机发热、耗电增加以及响应变慢,从而引发应用未响应(ANR)。

3.3 流量

①内容

流量:在使用应用程序时,应用与服务器之间交换的数据总大小。

上行消息:应用发送给服务器的数据

下行消息:应用接收的服务器的数据

②监控指标

上行和下行消息的网络流量消耗。

③优化策略

  • 数据压缩
  • 控制访问的频次
  • 缓存机制

3.4 电量

①常见的耗电量大的场景

  • 定位
  • 网络传输
  • 屏幕亮度
  • wake_locker(锁屏-解锁)

②监控方法

  • 系统自带接口:最新的IOS和Android系统内置的Setting里可以查看各个APP的电池消耗,但是该方案不能检测固定某一时间段内的电池精准消耗。
  • 硬件检测:通过硬件可以精准地获得应用的电量消耗(如 PowerMonitor 硬件设备),该方案测试时需要拆机,成本太高比较麻烦。
  • 软件工具检测:通过第三方的软件来获取应用的电量消耗(如 AccuBattery、360省电王、SoloPi 等),该方案取决于第三方软件的计算准确性。

③结果分析

  • 与基准数据对比:将测试结果与产品经理提供的基准数据或历史数据进行对比,以评估当前版本的电量消耗是否在合理范围内。
  • 横向对比:与竞争产品的电量消耗进行对比,了解自身应用在同类产品中的表现,从而发现优化空间和改进方向。

3.5 流畅度

①内容

流畅度指的是动画播放或图片切换的连贯性

当动画由连续的图像快速切换时,视觉上会呈现出流畅的效果,使用户感知为连续动作。然而,如果切换速度不足,就会导致卡顿现象,显著影响用户体验。因此,确保足够的帧率和流畅的过渡是提升应用交互体验的关键。

②标准

  • 至少需要10-12帧每秒才能让大脑感知为连续动作。
  • 为了达到良好的流畅效果,建议每秒至少24帧。
  • 60帧每秒被视为最佳流畅度,目标是让程序接近这一水平。

③监控指标

帧率FPS:GPU在一秒内绘制的帧数,简单理解为一秒内呈现给用户的图片数。

FPS值越高画面越流畅。 在页面静态时,FPS值较低是正常现象;而在动态加载的数据页面,FPS值应较高,建议保持在24帧以上以确保良好的用户体验。

3.6 启动速度

①内容

启动速度:从启动应用到主页面加载完成的速度。

冷启动:应用从完全关闭状态到启动并加载完成主界面的时间。冷启动通常需要加载更多的资源和初始化应用,因此时间较长。

热启动:应用从后台恢复到前台的时间。由于许多资源已经在内存中,热启动通常会更快。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1 测试环境搭建
  • 2 APP性能测试
  • 3 APP性能测试关注点
    • 3.1 内存
      • 3.2 CPU
        • 3.3 流量
          • 3.4 电量
            • 3.5 流畅度
              • 3.6 启动速度
              相关产品与服务
              云服务器
              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档