4. 操作流畅度测试
适用场景
操作流畅度测试适用于DVT阶段中对所有用户可交互功能模块的实时响应性能验证。当产品涉及手势滑动、页面滚动、列表加载、动画过渡、弹窗弹出/关闭、输入框光标跟随等操作时,必须进行该项测试。典型场景包括:
- 首次启动引导页滑动流畅度
- 主界面列表快速翻页/滚动
- 弹窗/对话框从触发到完全显示的时间
- 输入框内连续输入汉字的表情预测/联想响应
- 多媒体资源(图片、视频)加载过程中的UI无阻塞
前置条件
- 待测产品已完成软件集成并处于稳定运行状态(无持续Crash)。
- 测试环境网络延迟≤10ms,后台进程除必要系统服务外全部关闭。
- 测试工具:视频录制工具(屏幕录制帧率≥60fps,推荐使用
OBS Studio 或内置录屏工具 )、时间戳分析器(如FFmpeg逐帧解析或专用流畅度分析仪)。 - 记录模板:预制操作流畅度测试记录表(含时间轴、操作类型、预期指标)。
- 测试人员已签署保密协议并熟悉操作任务清单。
操作步骤
- 准备录制:将测试手机/平板固定于支架,打开屏幕录制(设置分辨率1080p,帧率60fps),确认录制时间戳可见。
- 执行基准操作:按操作任务清单依次执行以下子任务,每项重复执行5次:
- 滑动主界面列表(从顶部到底部,匀速)
- 快速点击导航栏切换Tab
- 连续输入中文短语(不少于15字符)
- 弹出/关闭系统弹窗
- 停止录制:保存视频文件,命名规则为
流畅度_设备ID_日期_序号.mp4。 - 逐帧分析:使用FFmpeg逐帧导出JPG序列,统计每帧时间戳,计算:
操作耗时 = 操作完成帧时间戳 - 操作开始帧时间戳 流畅度指标 = 1 / (操作耗时 / 帧间隔) (帧间隔=16.67ms@60fps) 丢帧数 = 实际帧数 - 期望帧数(期望帧数 = 耗时 / 16.67ms) - 记录数据:将每次操作的耗时、丢帧数、流畅度指标填入记录表。
- 异常判定:对超出阈值的数据标注异常标记,并截图保存关键帧。
输入输出物
| 输入物 | 说明 |
|---|---|
| 操作任务清单 | 由测试计划定义的10~15项标准操作描述 |
| 设备固件版本号 | 待测产品的当前软件版本 |
| 屏幕录制工具 | OBS / 系统录屏 + 时间戳设置 |
| FFmpeg 环境 | 用于帧序列提取 |
| 输出物 | 说明 |
|---|---|
| 操作流畅度测试记录表(Excel) | 含原始帧分析数据、指标计算、异常标记 |
| 异常关键帧截图 | 每项异常操作取2张截图(开始帧+结束帧) |
| 测试报告摘要 | 概括各操作类型的平均耗时、丢帧率、合格/不合格项 |
责任边界
- DVT工程师:负责搭建测试环境、执行录制、进行帧分析、填写记录表、输出异常截图。
- 开发团队:提供被测软件版本,配合修复影响流畅度的代码逻辑(如长列表复用、动画性能)。
- 测试经理:审核记录表的完整性、异常判定的合理性,审批测试报告。
- 禁止:DVT工程师不得在测试过程中修改系统参数或注入加速代码;所有操作必须在同一物理环境下完成,避免外接设备干扰。
记录材料
操作流畅度测试记录表(示例行):
| 操作编号 | 操作类型 | 操作耗时(ms) | 丢帧数 | 流畅度指标(%) | 异常标记 | 备注 |
|---|---|---|---|---|---|---|
| F001 | 列表滑动 – 第1次 | 120 | 1 | 98.3% | 正常 | —— |
| F001 | 列表滑动 – 第2次 | 180 | 3 | 95.0% | 异常 | 滑动中途卡顿0.5s,截图见附件F001-2 |
| F002 | Tab切换 | 85 | 0 | 100% | 正常 | —— |
| F003 | 连续输入(15字) | 1050 | 2 | 98.1% | 正常 | 首字延迟稍高,后续正常 |
异常处理
异常判断规则:
- 丢帧数≥2 且 流畅度指标<95% → 标记为“异常”。
- 单次操作耗时超过同类操作历史均值的1.5倍 → 标记为“潜在异常”需复测。
- 同一操作类型在5次测试中超过3次异常 → 判定为“该操作类型流畅度不合格”,需提交Bug。
- 若出现单次操作耗时超过500ms(用户感知明显卡顿),即使丢帧数=0也标记为“异常”。
异常处理流程:
- 在记录表异常标记列标注“异常”并提供截图。
- 登录Bug管理系统,填写标题、复现步骤、判断依据(帧分析数据)。
- 指派给开发团队,预期解决后回归验证。
- 回归测试重复该操作5次,若仍异常则升级至测试经理评审。
验收标准
- 所有必测操作类型的流畅度指标≥95%,且丢帧数≤1。
- 单次操作耗时中位数不超过同类操作基线(基线由初次DVT建立)的1.2倍。
- 无因操作流畅度导致的用户误触或界面错乱(如点击后无响应、界面重叠)。
- 所有标记异常项均已在Bug管理系统关闭,且回归通过。
- 测试记录表数据完整,关键帧截图归档至项目共享目录。
✏️ 讲义要点:操作流畅度测试的核心是“帧间隔一致性”。丢帧≠掉帧,丢帧指期望帧数(理论帧数)与实际帧数的差值;保持60fps录制是准确分析的前提。FFmpeg逐帧提取命令:
ffmpeg -i screen_recording.mp4 -vf "select=not(mod(n\,1))" -vsync vfr frames_%04d.png
💡 小技巧:如果测试场景包含大量列表滚动,可在录制前打开开发者选项中的“GPU渲染模式分析”条形图(Android系统),辅助肉眼识别卡顿。iOS可使用Xcode Instruments的Core Animation调试。
⚠️ 常见错误:录制帧率低于30fps时无法准确测量丢帧数;操作过程中不可暂停录制或插入系统弹窗;若使用第三方录屏APP,需确认其不会因为性能开销而影响待测应用的流畅度(推荐使用硬件录屏卡或内置ADB录屏)。