侧边栏壁纸

点播测试总览

2026年06月10日 25阅读 0评论 0点赞

点播测试用例与结论汇总(五端)

本文档分三章:一、测试矩阵与用例(测什么);二、通过用例描述(哪些过了);三、问题用例与异常现象(哪些有问题、现象是什么)。


第一章 测试矩阵与用例

§1.1 协议

ID协议 / 容器reader 路径关联样本
P1local file MP4(H.264 + AAC)ffmpeg_readerM1 / M3 / M4 / M9
P2HTTPS progressive MP4http_progressive_reader(含 TLS)M1–M11 + M12~M18
P3HLS(VOD + 时移已录完段,TS 分片)hls_readerM19~M23(M22 暂无)

不测:FLV / RTMP / RTSP / HTTP-FLV(直播范畴)、纯 HTTP 明文(业务侧全站 HTTPS)。

§1.2 基础场景 S1–S11

风险场景触发关键验证点
L1 资源🟢S1 open / S2 closeprepare(url) / close()状态序列合法、onMediaInfoReady 阈值、含自然 EOS→ENDED→close
L2 播控🟢S3 play / S4 pausestart() / pause()READY→PLAYING + PAUSED→PLAYING;暂停后位置不增长
L3 终止🟢S5 stopstop()(三态触发)任意非 IDLE → IDLE,不跳过中间态
L4 seek🟡S6 前向 / S7 后向seek(pos±30s)目标 ±100ms;无音频持续丢弃 / 视频无 late drop(I5-A02 基线)
L4 seek🔴S8 高频1s 内 5 次同上;竞态 / callback 队列错位
L5 流切换🔴S9 switch_toswitchToUrl(new_url)新流自动 start、旧 config 保留;token/generation 失效(fef0764/a42bcda 修复区)
L5 流切换🟡S10 reloadreload()起播定位清空、内部状态重置
L6 循环🟡S11 loopsetLoop(true) 播至 EOSEOS→seek(0)→继续 PLAYING,至少 3 轮无异常

基础矩阵 = 协议 × 场景 = 33 格;五端展开 165 cell。

§1.3 扩展场景(业务回归补充)

编号约定:U* UI 行为 / LC* 应用生命周期 / N* 网络中断 / E* 错误注入 / D* 长播稳定性 / NET* 倍速与弱网扩展。

UI 行为(U 系列)

ID风险场景关键判定
U1🟡首帧预渲染显示首帧 + 停在暂停态 + 播放后丝滑、首帧无变动
U2🟢全屏 / 取消全屏切换无重载、无黑边 / 拉伸、音视频连续
U3🟡横竖屏切换自适应、无重载、控件重排
U4 / U5🟢seek 到末尾 / 初始正确跳转、自然 EOS 或从头播
U6 / U7🟢seeking / switching 状态显示UI 显示对应状态且不卡住

应用生命周期(LC 系列)

ID风险场景关键判定
LC1🟢秒压后台恢复后正常播放、无崩溃
LC2🔴长压后台 10min恢复后正常播放、位置 / 倍速 / 音量 config 保留
LC3🟡锁屏解锁 1min恢复后正常播放、UI 状态正确

网络中断(N 系列,拔网→恢复)

ID风险场景关键判定
N1🔴断网恢复重连显示 reconnecting、恢复后自动续播、续播首帧防花屏
N2🟢断网 seek 恢复恢复后在 seek 目标位置续播

倍速与弱网扩展(NET 系列)

ID风险子类场景关键判定
NET1🟡倍速单档 2x / 1.5x / 0.75x / 0.5x速度符合预期、无音画不同步、变速无顿挫
NET2🔴倍速倍速时 seek正确跳转、继续保持倍速(经典坑:被 seek 重置回 1.0x)
NET3🟢倍速倍速 + 高频 seek稳定、流畅、无崩溃
NET4🟢倍速倍速 + 压后台保留返回后依旧倍速(config 保留)
NET5🔴弱网弱网首次起播(限速 200kbps)能缓冲播放、不卡死 BUFFERING > 30s
NET6🟡弱网网络链路切换 Wi-Fi ↔ 4G/5G丝滑、无卡顿、IP 切换不破坏 HTTPS session
NET7🟢弱网弱网 + seek 恢复允许长缓冲,不卡 > 30s,最终回到 PLAYING

错误注入(E 系列)

ID风险场景关键判定
E1🟢错误 URL无法播放、UI 不崩、错误提示友好
E2🟢切换错误 URLURL2 切换失败、URL1 继续
E3🟢切换空 URL切换被拒、URL1 继续
E4🔴不解密播加密UI 正常、无法播放、不崩、不花屏

长播稳定性(D 系列)

ID风险场景关键判定
D1🟡20 分钟连播末段音画同步无漂移、UI 无崩、内存稳定

§1.4 弱网 profile 定义与验证

profile 类别特征验证方法通过判据
weak1_high / weak1_mid / weak1_low带宽 + 丢包curl 测下载速度实测速度 < profile 带宽上限的 1.5×
weak2_jitter_low / weak2_jitter_high固定 delayping 测 RTT实测 RTT ≥ 预期 jitter 的 80%(low ≥160ms / high ≥400ms)
weak2_sudden1Mbps 基线 + 周期断网curl 测基线 + 等首次断网基线带宽受限,且 sudden-loop.log 出现至少一条 sudden-down

NET5~NET7 跑前先用对应 profile 验证方法确认环境真到位(防透明代理 / 网关绕过限速误判)。工具链复用 network_test_matrix.md §2.2。

§1.5 样本媒体

样本 ID(M)= 媒体素材编号,与协议(P)/ 场景(S*)正交:一个用例 = 协议 × 场景 × 样本。下表逐 ID 给出含义(源:vod_test_matrix.md §样本表 + vod_test_overview.md §2.3.1 / §2.3.2)。

业务侧基础(M1–M11,mp4)

ID类别含义分辨率B 帧加密地址
M1A音画同步测试视频 1(主跑样本)720phttps://video.aicastech.com/vod/avsync.mp4
M2A音画同步测试视频 2720phttps://video.aicastech.com/vod/avsync2.mp4 ⚠️ 原表链接 typo 指向 avsync.mp4,待确认
M3B多 B 帧(seek 最易暴露缺陷)1080phttps://video.aicastech.com/vod/MBFrames.mp4
M4B无 B 帧(对照 M3)1080phttps://video.aicastech.com/vod/NoBFrame.mp4
M5B多分辨率 + 多帧率https://video.aicastech.com/kun/mr_mf_unencrypt.mp4
M6C多分辨率 + 多帧率(加密,对照 M5)https://video.aicastech.com/kun/mr_mf_encrypt.mp4
M7C单分辨率 + 单帧率(加密)https://video.aicastech.com/kun/sr_sf_encrypt.mp4
M8A音乐 MV720phttps://video.aicastech.com/vod/mv_00.mp4
M9A足球比赛长片段1080phttps://storage.googleapis.com/mp-f3-assets/recordings/2026/05/11/4357106_20260511_202006.mp4
M10D仅视频、无音频https://video.aicastech.com/kun/only_video_encrypt.mp4
M11D仅音频、无视频https://video.aicastech.com/kun/only_audio_encrypt.mp4

STS 录制扩展(M12–M18,mp4) — 源:STS 录制后端,复用 kun/* 路径

ID类别含义分辨率 × 帧率加密大小地址
M12BSTS 未加密多×多多 × 多300 MBhttps://video.aicastech.com/kun/mr_mf_unencrypt.mp4
M13FSTS 加密长样本(单帧率解码路径)单 × 单1.91 GBhttps://video.aicastech.com/kun/sr_sf_encrypt.mp4
M14FSTS 加密长样本(多帧率解码路径)单 × 多1.99 GBhttps://video.aicastech.com/kun/sr_mf_encrypt.mp4
M15CSTS 加密多分辨率多 × 单585 MBhttps://video.aicastech.com/kun/mr_sf_encrypt.mp4
M16CSTS 加密多分辨率多帧率多 × 多710 MBhttps://video.aicastech.com/kun/mr_mf_encrypt.mp4
M17DSTS 加密仅视频(边界)多 × –https://video.aicastech.com/kun/only_video_encrypt.mp4
M18DSTS 加密仅音频(边界)https://video.aicastech.com/kun/only_audio_encrypt.mp4

STS 时移 HLS 扩展(M19–M23,TS 分片)

ID类别含义分辨率 × 帧率加密地址
M19BHLS 未加密多×多多 × 多https://video.aicastech.com/timeshift/4459572/playlist.m3u8
M20CHLS 加密单×单单 × 单https://video.aicastech.com/timeshift/4426349/playlist.m3u8
M21CHLS 加密单×多单 × 多https://video.aicastech.com/timeshift/3890419/playlist.m3u8(URL 路径与比赛 ID 不一致,以 URL 为准)
M22CHLS 加密多×单(暂无源,占位)多 × 单
M23C/BHLS 加密多×多(S9 × M23 = P0 高风险)多 × 多https://video.aicastech.com/timeshift/4393495/playlist.m3u8

按类别归并:A 音画同步基线(M1/M2/M8/M9)· B 编码特性(M3/M4/M5/M12/M19)· C 加密路径(M6/M7/M15/M16/M20/M21/M23)· D 边界轨道(M10/M11/M17/M18)· E 弱网组合(A/B 类样本 × 6 个弱网 profile,非新样本)· F 长稳定性(M13/M14)。

加密样本走 --decrypt=v2:<HEX64> + crypt_version;跨源需白名单(kun/* = 7.0.10241430recordings/* = 026530e)。M22 暂无源(保留编号占位);M10/M11 业务侧未提供。另文中出现的 M-HLS(非加密 HLS 主跑)/ M-ext-enc(跨源加密"足球 2")/ DEC-HLS(加密 HLS)为移动端证据里的别名,对应上表 HLS 与加密类样本。

§1.6 风险分级(裁剪依据)

  • 🔴 P0 必跑:S8(高频 seek)· S9(switch_to 流切换)· LC2(长压后台)· N1(断网恢复)· NET2(倍速时 seek)· NET5(弱网首播)· E4(不解密播加密);高风险组合 S9×M15/M16(流切换 × mp4 加密多分辨率)· S9×M23(流切换 × HLS 加密多分辨率)
  • 🟡 P1 建议跑:S6(前向 seek)/ S7(后向 seek)/ S10(reload)/ S11(loop)/ U1(首帧预渲染)/ U3(横竖屏切换)/ LC3(锁屏解锁)/ NET1(单档倍速)/ NET6(网络链路切换)/ D1(20 分钟连播)
  • 🟢 P2 选跑:其余稳定路径

第二章 通过用例描述

口径:桌面 / macOS 走 scenario DSL 自动采集(report.json + events.ndjson + 自动 verdict);iOS 走 Xcode 手动 Run + 人眼观察(无客观指标)。各端通过项以最大 NNN 的 verdict 为准。

§2.1 Windows 11 / Linux Ubuntu 26.04 — 桌面基线 33/33 PASS(各端)

P1/P2/P3 × S1–S11 全 PASS,error_count 全 0,first_frame_ms 全端 ~100ms。

proto通过场景备注
P1 localS1–S11 全 PASSlocal indexed MP4 seek ~100ms;S11 loop 30s 样本 ×2 轮事件计数 Win=Lin(2 eos + 2 seek pair + 3 playing)
P2 HTTPS MP4S1–S11 全 PASSS8 高频 seek 调超时到 45s 后通过;seek p50 Win ~2.6s / Lin ~3.3s(Pass*)
P3 HLS-VODS1–S11 全 PASSS8 段边界 seek ~2.1–2.4s(Pass*)

证据:evidence/windows/5e1c9a4/evidence/linux/5e1c9a4/

长稳定性(D1):Windows 用 M13(加密长样本 1.91GB)GUI 连播 ~58.8min、M14(1.99GB)headless ~59.3min,全程无崩溃、跑满时长——这一项已覆盖(长样本不缺)。但加密长连播视频丢帧率 ~80%、内存曲线采集失败,属问题项(见 §3.1 VP06)。证据 evidence/windows/5e1c9a4/long_stability/

§2.2 macOS 26.3.1 — 61/61 PASS

scenario DSL 自动采集,与桌面同口径,error_count 全 0,first_frame_ms ~100–104ms。

Phase内容结果
A33-cell 基线 P1/P2/P3 × S1–S1133/33 PASS
B4 个 S9 多组合(M1→M3 / M1→M-HLS / M-HLS 自切 / M-HLS→M1)4/4 PASS
C24 个加密 case(M-ext-enc + M7/M14/M15/M16/M17/M18 + M-HLS-enc;含 S9×M15/M16/M-HLS-enc P0 组合)24/24 PASS

特记:M18 audio-only first_frame_ms=-1 为预期;HLS S8 seek p95 >500ms 标 Pass*。证据:evidence/macos/e093f7b/

§2.3 Android(Xiaomi 23116PN5BC)— 解阻后通过子集

demo 修复 92fc074(load 幂等 + quit/set_loop)后跑通的项:

协议 / 样本通过场景备注
P3 HLS(M-HLS 非加密)S6(前向 seek)/ S7(后向 seek)/ S9(switch_to)/ S10(reload)/ S11(loop)verdict=pass、quit_fired=yes;⚠️ 但 first_frame=no(见 §3,黑屏问题)
加密 HLS(DEC-HLS)S3(play)/ S8(高频 seek)/ S9(switch_to)/ S11(loop)verdict=pass,first_frame=yes(加密 HLS 有首帧)
错误注入 E 系列E1a(错误 URL)/ E2(切换错误 URL)/ E3(切换空 URL)/ E4-hls(不解密播加密 HLS)错误路径符合预期
VP-fix 验证(P2/P3)P2(HTTPS MP4)S3/S6/S7/S9/S10/S11 + P3(HLS)S3/S6/S7/S9/S10logcat 留证,证明 DSL 解阻(06-08)

证据:evidence/android/5e1c9a4/evidence/android/a1538bd-and-vp-fix/:P3 非加密虽 verdict=pass,但无首帧出图,属"pass 但黑屏",实际不可用(§3 VP-AND06)。

§2.4 iOS(iPhone 16e 真机)— 表现正常子集

协议 / 样本正常场景观察
P1 本地 MBFramesS1(open)/ S2(close)/ S4(pause)/ S5(stop)/ S6(前向 seek)/ S7(后向 seek)/ S10(reload)/ S11(loop)正常播放、seek 位置正确、音画同步
P2 非加密 M1S1(open)/ S2(close)/ S4(pause)/ S5(stop)/ S6(前向 seek)/ S7(后向 seek)/ S8(高频 seek)/ S10(reload)/ S11(loop)正常播放
E4 不解密播加密E4(不解密播加密)UI 正常、画面黑屏、不崩溃(符合 P0 预期)
NET1 单档倍速0.5× / 0.75×音画同步、无爆破音

证据:evidence/ios/e093f7b/(observation.md 人眼记录)。iOS 其余场景见第三章。

§2.5 通过情况总览

通过口径数量
Windows 11scenario DSL 自动 verdict33/33 PASS
Linux Ubuntu 26.04同上33/33 PASS
macOS 26.3.1同上61/61 PASS
Android Xiaomiverdict=pass(P3 非加密含黑屏)P1/P2 基础场景为主
iOS iPhone 16e人眼观察"正常"P1/P2 基础场景为主

第三章 问题用例与异常现象

编号沿用 vod-problem-set.md:通用 / 桌面 VP01–06、Android VP-AND01–07、iOS VP-IOS01–07、macOS VP-MAC01。

§3.1 通用 / 桌面(VP01–VP06)

编号用例异常现象状态
VP01(S8 网络源超时偏紧)S8(高频 seek)·P2(HTTPS MP4)/P3(HLS)网络源默认 scenario-timeout 20s 不足,首跑 verdict=timeout已规避(调 45s)
VP02(P2-S11 跨端 displayed 差异)S11(loop)·P2(HTTPS MP4)·Win vs Linuxvideo_displayed Win 1814 / Lin 404,相差 4.5×(不影响 verdict)待定(疑 Wayland render_callback 节流)
VP03(长样本长稳定性,原"缺样本"作废)D1(20 分钟连播 / 长稳定性)·M13(加密单分辨率单帧率 1.91GB)/ M14(加密单分辨率多帧率 1.99GB)长样本已测:M13 GUI 连播 ~58.8min(29 张截图)、M14 headless ~19.3min,均无崩溃✅ 已覆盖
VP06(加密长连播丢帧 ~80% + 内存采集缺失)D1(长稳定性)·M13 / M14 加密长样本M13 丢帧率 79.90%(55203/69086)、M14 ~79.8%(drop 17290/D 4376);音频正常、不崩溃;memory_timeline.csv 仅表头(内存采集失败)待评估
VP04(WSL2 S8 崩溃无复现)S8(高频 seek)·Linux WSL2issue 描述的 WSL2 高频 seek 崩溃,本机无 WSL2 环境未复现缺环境
VP05(seek_latency 测量失真)S6(前向 seek)/S7(后向 seek)/S8(高频 seek)scenario_session.ts_ms 是 drain-time,seek_latency 派生恒为 0(测量失真)已规避(Pass* + interval 代理)

§3.2 Android(VP-AND01–07)

已修复(commit 92fc074,曾阻塞自动化):

编号用例原异常现象状态
VP-AND01(首位 load 触发 invalid_state)DSL 首位 load(各场景启动)scheduleInitialAutoLoad 重复触发,第二次 load 被拒 invalid_state,后续 action 中断✅ 已修复(load 幂等)
VP-AND03(不支持 quit action)DSL 末尾 quit(退出语义)demo 不支持 quit action,被静默忽略✅ 已修复(加 quit→finish)
VP-AND04(不支持 set_loop action)S11(loop)的 set_loopdemo 不支持 set_loop action,S11(loop)跑不通✅ 已修复(加 set_loop)

待处理

编号用例异常现象状态
VP-AND05(postDelayed schedule 模型差异)网络源场景 DSL 鲁棒性postDelayed 静态 schedule(无 wait_for),HTTPS 抖动下 wait:N 盲等不可靠待评估
VP-AND06(P3 HLS 无首帧黑屏)P3(HLS · M-HLS 非加密)S6(前向 seek)/S7(后向 seek)/S8(高频 seek)/S9(switch_to)/S10(reload)/S11(loop)6 个 P3 cell 全部 first_frame=no(黑屏),verdict 却 pass;同机加密 HLS 反而有首帧待修 P0
VP-AND07(加密 HLS seek 崩溃)加密 HLS(DEC-HLS)S6(前向 seek)/S7(后向 seek)2 case 崩溃(verdict=crash)待修 P0

§3.3 iOS(VP-IOS01–07)

编号用例异常现象状态
VP-IOS01(P3 HLS 渲染全失败黑屏)P3(HLS)全部场景(14 case)声音正常、画面全程黑屏;S7(后向 seek)/S8(高频 seek)多次 seek 后崩溃待修 P0
VP-IOS02(加密样本起播卡顿)加密样本 M16(加密多分辨率多帧率 mp4)/ M-ext-enc(跨源加密 足球2)(7 case)起播后 6–40s 严重卡顿;M16 二次 seek 卡死 loading待修 P0
VP-IOS03(加密 switchURL 后黑屏)S9(switch_to)加密(S9-002 / S9-003)切换后画面黑屏不再播放,新流不呈现待修 P0
VP-IOS04(断网不自动续播)N1(断网恢复)恢复网络后不自动续播,start 无效,须手动点"载入"待修
VP-IOS05(后台画面冻结)LC2(长压后台)后台 2s 即画面冻结(音频继续),pause/start 不恢复,仅 seek 恢复待修
VP-IOS06(EDGE 弱网首播失败)NET5(弱网首播)·EDGEEDGE preset 5min 加载不出(LTE/DSL 可播)待评估
VP-IOS07(倍速 UI 误显 / 输入爆破音)NET2(倍速时 seek)/ S9(switch_to)输入 URL倍速保持但 UI 误显示 1×;输入 URL 时音频爆破音demo 层(不涉 SDK)

证据逐 case 见 evidence/ios/e093f7b/scenarios/<case>/observation.md

§3.4 macOS(VP-MAC01)

编号用例异常现象状态
VP-MAC01(跨源加密 crypt_version 误判)跨源加密 M-ext-enc(跨源加密 足球2,crypt_version=026530e首跑 unsupported crypt_version → exit=3;误判非加密去 decrypt 后 verdict=pass 但丢帧 69%;加白名单后正确解密已规避

教训:headless verdict=pass ≠ 内容播放正常;dropped > 50% 必须人眼 / ffmpeg 复核。

§3.5 跨端共性问题(需联合排查)

  1. HLS 视频出图失败(Android + iOS):VP-AND06(Android P3 HLS 黑屏)与 VP-IOS01(iOS P3 HLS 黑屏)同症状,桌面 / macOS 同协议正常出帧。Android 加密 HLS 有首帧、非加密 HLS 无首帧,说明两条 HLS 渲染 codepath 不同 → 建议合并"HLS 出图链路"专项 issue。
  2. 加密路径 seek / 切流不稳(Android + iOS):VP-AND07(加密 HLS seek 崩溃)、VP-IOS02(加密卡顿 / seek 卡死)、VP-IOS03(加密 S9 黑屏)方向一致,桌面 / macOS 加密全 PASS → 移动端 decrypt + decoder / 分片切换协同缺陷。
  3. 自动化 verdict 盲区:Android first_frame=no 仍判 pass、macOS 丢帧 69% 仍判 pass,说明 verdict 未把"首帧 / 丢帧比例"纳入判定。建议给 verdict 增加 first_frame 必检 + dropped_ratio 阈值。

附:状态与下一步

状态
桌面 Win / Linux 33+33✅ 完整 PASS
macOS 61✅ 完整 PASS
长稳定性(D1)长样本✅ 已覆盖(M13 ~59min / M14 ~19min,不崩溃);遗留 VP06
VP06(加密长连播丢帧 ~80% + 内存采集缺失)⏳ 人眼复核截图 + 修内存采集重跑 + 补非加密长样本对照
Android demo 自动化阻塞✅ 已解除(92fc074)
Android 完整 66 cell
iOS 客观指标⏳ 待 scenario DSL 移植 Swift demo
VP-AND06(Android P3 HLS 黑屏)+ VP-IOS01(iOS P3 HLS 黑屏)HLS 出图专项⏳ 建议合并起 issue
VP-AND07(加密 HLS seek 崩溃)/ VP-IOS02(加密起播卡顿)/ VP-IOS03(加密切流黑屏)移动端加密缺陷⏳ 联合排查
verdict 增加 first_frame / dropped_ratio 判定⏳ 待评估开 issue

本文档由 AI 起草于 2026-06-10,基于五端实证证据与 problem-set;草稿状态,待 ryan_code review + 定稿。

0

—— 评论区 ——

昵称
邮箱
网址
取消
博主栏壁纸
29 文章数
0 标签数
2 评论量