一、流畅度
1. 流畅度介绍
- 定义: 流畅度指的是在测试APP时,滑动操作是否顺畅,无卡顿或重叠现象。
- 类比: 动画片由一张张图片连贯执行产生连续动作的效果,当图片切换速度足够快时,眼睛会认为是连续动作。
2. 流畅度的监控指标
- 帧率(FPS): 即Frames per second,GPU在一秒内绘制的帧数,简单理解为一秒内呈现给用户的图片数。
- 流畅度标准:
- 每秒至少10-12帧,大脑才会认为动作是连续的。
- 达到流畅效果,至少需要每秒24帧。
- 60帧每秒是最佳流畅度,测试目标接近60帧每秒。
- 注意事项:
- 页面多为静态时,FPS值较小是正常的。
- 页面数据多为动态加载时,FPS值较大(建议在24帧以上)。
- 流畅度标准:
3. 性能流畅度测试案例
1)目标应用
- 目标应用: TP商城单商户
2)操作步骤
- 需求: 打开TP商城单商户,进入首页-我要拼团,上下滑动动态2分钟(下滑1分钟,再上滑1分钟),记录FPS值。
- 测试方法:
-
- 打开SoloPi工具,勾选帧率。
- 进入TP商城单商户APP,操作上述业务,观察运行时的流畅度指标。
- 查看流畅度运行结果。
- 保存流畅度详细数据后,可以查看详细的数据统计。
- 数据保存位置: 点击保存按钮会保存记录数据到手机本地GT/GW/<ALT名>/GW_DATA目录下,后续将数据导入到电脑上,用于分析数据。
- 实际操作: 在TB shop中划订单、平台或首页,通过SoloPi工具监测帧率。
- 设置要求: 在开发者选项中开启GPU呈现模式分析。
二、稳定性测试
1. 稳定性测试介绍
- 定义: 稳定性测试是通过长时间对应用程序进行无序操作,检验应用程序是否会出现异常,如闪退(crash)、无响应(ANR)等。
- 工具: Monkey是一个命令行工具,由安卓官方提供,用于模拟用户的触摸、点击、滑动以及系统按键等操作,实现对APP的压力测试和稳定性测试。
2. 常用的ADB命令介绍
1)APP性能测试分类
- 专项性能: APP对手机硬件资源的使用消耗,包括CPU、内存、流畅度、流量、电量等。
- 稳定性测试: 检验APP是否会出现崩溃、闪退等问题,使用Monkey工具进行测试。
- 服务器性能: 多人使用APP时,服务器的处理情况,如接口性能。
2)稳定性测试的工具
- Monkey工具:
- 来源: 由Android系统自带,路径为/system/framework/monkey.jar。
- 操作: 模拟用户的触摸、点击、滑动及系统按键等,操作事件随机。
- 日志分析: 测试人员结合Monkey打印的日志和系统打印的日志,修改测试中出现的问题。
3)稳定性测试的时机
- 时机选择: 一般需要等产品相对稳定,bug较少的时候,再使用Monkey去测试待测试应用的稳定性。
4)Monkey命令参数拓展
- 事件类型参数:
- -pet-touch: 调整触摸事件的百分比。
- -pet-motion: 调整动作事件的百分比。
- -pet-anyevent: 调整其它类型事件的百分比。
- 其它参数:
- -kill-process-after-error: 发生错误后停止运行并保持当前状态。
- -throttle: 设定用户操作(事件)间的时延,单位是毫秒。
5)Monkey测试错误分析步骤
- 查看日志:
- 程序无响应(ANR): 在日志中搜索“ANR”。
- 崩溃问题: 在日志中搜索“NullPointerException”。
6)Monkey命名由来
- 原因: Monkey命名源于其操作的无序性,类似于猴子乱抓乱拖的行为。
三、总结
1. APP客户端测试指标
- CPU: 使用CPU使用率来衡量。
- 内存: 通过pss(可能是指某种内存监控工具或指标)来监测。
- 流畅度: 专业术语叫做FPS,即每秒帧数,用来衡量应用的流畅程度。
- 流量: 监测网络的上传和下载量。
- 电量: 运行时的平均电流来反映电量消耗。
2. 启动速度测试
- 冷启动与热启动: 启动速度分为冷启动速度和热启动速度。
- ADB命令: 使用ADB(Android Debug Bridge)命令来进行启动速度的测试。此处老师提到先了解命令,后续会详细讲解和执行。
3. 稳定性测试
- Monkey测试: 使用Monkey工具来模拟用户长时间运行应用,以测试应用的稳定性。
- 模拟闪退与压崩: Monkey工具通过设定参数,可以模拟应用闪退或压崩的情况,以检验应用的稳定性。
- 日志分析: 通过查看日志来确定应用在多少次操作后崩溃,从而评估应用的稳定性。
四、知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
流畅度定义 | 流畅度指APP滑动时的顺畅程度,帧数决定流畅度 | 流畅度与帧数的对应关系 | 🌟 |
每秒10-12帧为动画效果,24帧为流畅,60帧为非常流畅 | 帧数与流畅度的具体标准 | 🌟🌟 | |
流畅度测试方法 | 使用工具录制TB shop等APP的滑动过程,查看每秒帧数 | 如何进行流畅度测试 | 🌟 |
帧率查看与分析 | 在开发者选项中开启GPU成像模式分析,查看帧率数据 | 如何查看并分析帧率数据 | 🌟🌟 |
平均帧率26,最大30,与60帧目标有差距,需优化 | 帧率的实际数据与优化需求 | 🌟 | |
稳定性测试简介 | 稳定性测试属于专项测试,使用monkey工具进行无序操作测试 | 稳定性测试的概念与工具 | 🌟 |
monkey通过模拟触摸、点击等无序操作,检验程序是否出现异常 | monkey工具的工作原理 | 🌟🌟 | |
稳定性测试后续 | 后续将详细讲解monkey的使用与日志分析 | 后续课程内容预告 | 🌟 |
性能测试总结 | 性能测试包括CPU、内存、流畅度、电量、流量和启动速度等 | 性能测试的全面了解 | 🌟 |
CPU使用率、内存使用PSS、流畅度FPS、电量平均电流等为关键指标 | 性能测试的关键指标 | 🌟🌟 | |
启动速度测试 | 启动速度测试需通过ADP命令进行 | 启动速度测试的方法 | 🌟 |
对比维度 | 时间线/优先级/成本效益 | - | |
流畅度与稳定性测试的重要性对比 | 两者在性能测试中的优先级 | 🌟 | |
不同帧率对用户体验的影响对比 | 帧率提升的成本效益分析 | 🌟 |