Files
xiaoxia-saas/tests/render_compare/__init__.py
T
CI Bot 376a868ae1
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 33s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1574h30m8s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1574h30m9s
CI/CD Pipeline / Build Production Runtime Images (pull_request) Failing after 1574h30m11s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1574h30m10s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Failing after 1574h30m11s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1575h1m45s
test(render-compare): 灰度对比工具包 + 5个P1修复
新增灰度对比测试工具包 tests/render_compare/,包含:
- video_diff.py: SSIM + PSNR 像素对比
- audio_diff.py: 音频差值对比
- scenarios.py: 10个对比场景
- runner.py: 批量执行器 + StagingAPI + HTML报告
- README.md: 使用文档

5个P1修复:
P1-1 音频差值系统性偏低6dB:amix自动缩放音量导致相似度虚高
  → amix后加volume=2补偿
P1-2 Feature Flag污染线上配置:测试跑完不恢复原值
  → run_all用try/finally保证恢复原始配置,保存失败直接中止
P1-3 SSIM min值计算错误:混入汇总行掩盖最严重差异帧
  → 改为从stats_file(stdout)解析逐帧数据,avg/min都来自真实逐帧
P1-4 probe_has_audio语义反了:探测失败返回True
  → 探测失败返回False,保守认为无音频
P1-5 三套入口阈值不统一:函数默认/Runner默认/CLI默认各不一样
  → 统一到CompareRunner类常量:SSIM=0.95, PSNR=28dB, 音频=0.90
2026-07-13 00:53:07 +08:00

27 lines
807 B
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""灰度对比测试工具包.
用于新旧渲染引擎的批量对比测试,包含:
- video_diff: 视频像素对比(SSIM + PSNR)
- audio_diff: 音频对比(差值 RMS)
- scenarios: 预定义对比场景
- runner: 批量对比执行器 + HTML 报告
"""
from .video_diff import VideoDiffResult, compute_video_diff, save_diff_frame
from .audio_diff import AudioDiffResult, compute_audio_diff, extract_audio, probe_has_audio, probe_duration
from .scenarios import SCENARIOS, CompareScenario, get_scenarios_by_priority
__all__ = [
"VideoDiffResult",
"compute_video_diff",
"save_diff_frame",
"AudioDiffResult",
"compute_audio_diff",
"extract_audio",
"probe_has_audio",
"probe_duration",
"SCENARIOS",
"CompareScenario",
"get_scenarios_by_priority",
]