直播信号

本文还有配套的精品资源,点击获取
简介:直接跑通直播吧App的UI自动化测试流程,包含两个真实可用的.air脚本(test1.air、test2.air),走通‘数据’→‘CBA’核心操作路径;用myRunner.py统一控制执行方式,支持串行或并行批量运行;每次执行完自动生成summary.html聚合报告,点进任一失败用例就能立刻看到对应日志和截图,问题定位不绕弯;项目结构开箱即用,含suite测试集目录、log日志输出、report报告生成、.idea配置和Git提交指引;requirements.txt已列好依赖,PyCharm里配好Airtest环境就能调试运行;所有代码在本地验证通过,配套说明覆盖环境配置、脚本运行、GitHub克隆/添加/提交/推送全流程;压缩包里还有.gitignore、init.py、模板文件和原始资源目录,拿来就能改、就能测、就能交。
你有没有遇到过这样的场景:产品刚提测一个CBA赛程数据页的优化版本,测试同学手动点开App——首页→底部导航“数据”→列表里找“CBA”→等加载、滑动、校验数据……来回三遍,耗时12分钟;第二天又来一版,再点一遍;第三天发现漏测了横屏状态,再补一轮。这不是测试,这是手指体操。而更糟的是,当开发说“我只改了顶部Tab切换逻辑”,你却不敢打包票“其他页面没崩”,因为没人真去点一遍全部入口。这就是典型的手工回归瓶颈——重复、易漏、难留痕、无法沉淀。
这套“直播吧App UI批量测试工程包”,不是又一个Airtest入门Demo,而是我在过去8个月支撑直播吧App三个大版本迭代过程中,从踩坑、重构、压测到最终稳定交付的真实产物。它解决的从来不是“能不能跑起来”的问题,而是“能不能每天早上9:30准时跑完、出报告、发钉钉、让开发5分钟内定位到第3个断言失败在哪张截图上”的生产级问题。核心就四件事:脚本真实、调度可控、失败可溯、报告即用。
两个.air脚本(test1.air、test2.air)不是随便录的点击流。它们严格复现了真实用户路径:从App冷启动开始,等待首页广告弹窗关闭(含超时兜底),点击底部“数据”Tab(适配iOS/Android不同坐标偏移),在滚动列表中精准识别“CBA”文字并点击(非固定坐标,用OCR+图像匹配双校验),进入后等待赛程卡片加载完成,并断言至少3条有效比赛数据可见。每一步都加了但绝不滥用,所有前必带判断,所有都配了和自定义错误信息。这不是为了炫技,是因为直播吧App在低端安卓机上,广告关闭延迟可能达8秒,而CBA列表首次渲染慢时,强行点击会直接点空——这些细节,只有真正在灰度环境里被线上反馈追着打过的人才敢写进脚本。
PyCharm调度不是简单地右键Run,而是通过这个轻量但精密的控制器,把Airtest的底层能力拧成一股绳:它能读取目录下所有.air文件(支持按命名规则过滤),根据命令行参数或切换执行策略,自动分配设备(或),并发时控制最大线程数防OOM,串行时确保log和report目录按用例名隔离不覆盖。最关键的是,它把Airtest原生分散的日志、截图、HTML片段,统一收口到里——这个文件不是静态模板,而是运行时动态注入所有用例结果的聚合页,点击任一红色“FAIL”项,直接跳转到该用例专属的,里面不仅有完整操作日志,还嵌入了失败前最后一张截图(带红框标注匹配区域),以及失败断言的上下文代码行。这种“点一下就见真相”的体验,比翻10个log文件快17倍。整个工程包结构就是为交付设计的:配置好Python解释器路径和Airtest插件,锁死(避开了1.3.4里已知的iOS截图截断bug),和目录设为PyCharm忽略项防止误提交,连里都预置了、和Airtest生成的临时文件。它不是一个教学玩具,而是一套拧上螺丝就能运转的测试产线模块。
很多人看到“UI自动化”,第一反应是Appium+Java+Maven+Jenkins,配置一套下来三天起步,光是WebDriverAgent在iOS真机上的签名问题就能卡死一周。而直播吧App的测试团队现状很现实:3个测试同学,1个懂Python基础,2个只会点鼠标;每日构建窗口只有早9:00-9:30这半小时;测试机是5台借来的旧安卓平板和2台开发闲置的iPhone。在这种约束下,技术选型不是比谁更“高级”,而是比谁更“扛造”、谁更“省心”、谁能让非程序员也敢改脚本。Airtest正是这个场景下的最优解——它的核心优势不在功能多强,而在心智负担极低。
Airtest的脚本本质是Python+图像识别+OCR的封装,文件解压后就是标准Python脚本()加一张截图。这意味着:测试同学用Airtest IDE录完“点CBA”,导出脚本,打开PyCharm,直接在里把改成,加一行,再改个断言文本——全程不用碰任何XML或JSON配置。而PyCharm作为调度中枢,价值在于它把Airtest的碎片能力整合成了可调试、可版本化、可协作的工程。不是替代Airtest,而是给它装上方向盘和仪表盘:它用调起每个.air脚本的独立进程(避免多线程导致Airtest全局状态污染),用控制并发粒度,用把每个用例执行后的子目录安全迁移到对应位置,最后用Jinja2模板引擎把所有用例的路径、截图路径、状态码注入生成最终。这个设计绕开了Airtest原生报告的两大痛点:一是单用例报告分散在各处,二是失败截图没有上下文关联。我们不做重写,只做“粘合”和“增强”。
至于为什么放弃Jenkins这类CI工具?不是它不好,而是它在此场景下是“杀鸡用牛刀”。Jenkins需要单独部署服务器、配置节点、写Groovy Pipeline、处理权限、对接Git Webhook……而直播吧当前的发布节奏是“小步快跑”,平均每周3次热更新,每次更新后由测试负责人手动在本地PyCharm里点一次,3分钟出报告,截图发群里@开发。这个流程里,Jenkins带来的自动化收益远低于它引入的维护成本。我们把复杂性压在了的代码里(总共287行),而不是压在运维环境里。未来如果日构建量涨到50+用例,再平滑迁移到GitHub Actions——用装依赖,拉代码,最后,整个CI配置文件不超过15行。这种渐进式演进,比一开始堆砌重型工具更符合实际。
整个工程包的目录结构,每一层都在回答一个协作问题:目录明确告诉所有人“这里放测试用例,别乱扔”;和分离,确保原始日志可追溯,聚合报告可分享;里预置了(含Airtest插件启用状态)和(含Python SDK路径),新同事克隆代码后双击就能Debug;里和的版本号,是我们在华为P30、小米12、iPhone 13三台主力测试机上反复验证过的黄金组合,避开了1.3.4的iOS截图截断和1.0.92的OCR识别率暴跌。这不是随意拍脑袋的结构,而是用87次失败构建换来的最小可行协作契约。
3.1 PyCharm中Airtest环境配置:避开90%新手的“找不到airtest模块”陷阱
很多同学在PyCharm里新建Python文件,输入,运行就报,然后疯狂百度“PyCharm airtest 配置”,折腾一小时无果。根本原因不是没装airtest,而是PyCharm用错了Python解释器。Airtest必须安装在PyCharm项目所用的Python环境中,而非系统全局Python。实操步骤如下:
第一步,确认你的Python版本。Airtest官方要求Python 3.7+,但实测3.9最稳(3.11在某些Windows机器上有兼容问题)。打开终端,输入,若显示则OK;若显示,建议升级——因为Airtest 1.3.3的依赖在3.8下偶发。升级命令:(Mac/Linux)或下载Python 3.9.16安装包(Windows)。
第二步,在PyCharm中绑定正确的解释器。打开,点击右上角号,选择 → → 点击浏览到你刚装好的Python 3.9路径(Mac示例:;Windows示例:)。此时解释器列表里会出现,选中它,PyCharm会自动检测已安装包。
第三步,安装Airtest及其依赖。在同一个界面,点击左下角号,搜索,勾选,点击。等待安装完成(约2分钟)。注意:不要勾选单独安装——Airtest 1.3.3会自动带它,手动装反而可能版本冲突。安装完毕后,在解释器包列表里应看到和。
第四步,启用Airtest插件(关键!)。,搜索,确保已启用(若未安装,点击标签页搜索安装)。重启PyCharm。此时,当你打开文件时,编辑器上方会出现Airtest专属工具栏,含、、按钮。
提示:若仍报错,检查PyCharm终端是否使用同一解释器。打开PyCharm底部,输入(Mac/Linux)或(Windows),路径必须与Settings里设置的解释器路径一致。不一致则需在Terminal里执行(虚拟环境)或直接切换终端解释器。
3.2 test1.air与test2.air脚本深度解析:不只是“点CBA”,而是如何应对真实世界的不确定性
两个.air脚本看似简单,但每一行都针对直播吧App的实际缺陷做了加固。以为例,核心路径代码如下(已脱敏): 南安普顿直播入口
这段代码的精妙之处在于三层防御:
- 第一层是容错:广告弹窗不是每次都出现,所以用包裹,失败也不中断流程;
- 第二层是冗余:点击“数据”Tab,优先用的UI树查找(快且准),失败则切到Airtest OCR识别(慢但稳),确保在不同分辨率、不同系统UI下都能定位;
- 第三层是语义:断言不是简单看“CBA”文字是否存在,而是检查加载后的比赛数据卡片内容是否包含“vs”,这抓住了业务本质——用户要的是赛程,不是标题。
则侧重压力场景:模拟用户快速连续点击“数据”→“CBA”→返回→再点,检验页面栈和内存泄漏。它用模拟返回,用采集CPU峰值,用限制内存占用。这些都不是Airtest教程里的标准写法,而是我们在发现某次更新后CBA页连续点击5次必闪退后,专门加进去的监控点。
3.3 myRunner.py调度器实现原理:如何让并行执行不打架、日志不混乱
是整个工程包的大脑,其核心逻辑只有三个函数:、和。我们重点拆解的并发控制机制:
这个函数的关键设计点有三:
1. 目录隔离:每个用例执行前创建独立,确保、截图、临时文件互不干扰。这是并行安全的基石。
2. 进程隔离:用而非,每个.air脚本在独立进程中运行,彻底规避Airtest全局变量(如)被多线程篡改的风险。
3. 超时熔断:强制5分钟内结束,防止某个用例卡死拖垮整个批次。返回状态,便于报告中高亮。
的并行模式实际是实现:
这里不是拍脑袋定的。我们在华为P30(8GB内存)上实测:设为4时,Airtest进程频繁OOM崩溃;设为2时,5个用例总耗时12分钟;设为3时,总耗时8分钟且零崩溃。这个数字是硬件资源与Airtest内存占用的精确平衡点。
4.1 本地环境一键初始化:5分钟完成从零到可运行
假设你已安装Python 3.9和PyCharm,以下是完整初始化流程(Windows/Mac通用):
步骤1:克隆代码仓库
打开PyCharm,,VCS选择,URL粘贴你的仓库地址(如),Directory选择本地存放路径(如),点击。PyCharm会自动检出所有文件,包括、等。
步骤2:配置Python解释器
,点击右上角齿轮图标 → → → 浏览到Python 3.9安装路径(Windows示例:),选中后点击。PyCharm会自动加载该环境下的包列表。
步骤3:安装依赖
在界面,点击左下角号,搜索,勾选,点击。等待安装完成(约2分钟)。安装完毕后,包列表中应显示和。
步骤4:连接测试设备
- 安卓设备:开启USB调试,用USB线连接电脑。在终端执行,应看到设备序列号(如)。在中,将参数设为。
- iOS设备:需提前配置WebDriverAgent(WDA)。参考官方文档,确保Xcode能成功编译WDA到手机,并在Safari中访问返回JSON。中设为。
步骤5:首次运行验证
在PyCharm中,右键点击 → 。首次运行会弹出Airtest IDE窗口,自动连接设备并执行。观察控制台输出,若看到,且生成成功,则环境配置完成。
注意:首次运行时,Airtest会自动下载、等安卓依赖,需科学上网(注:此处指网络连接,非敏感含义)。若下载失败,可手动下载放入(Mac)或(Windows)目录。
4.2 批量执行与报告生成:如何用一条命令跑完所有用例并生成可交互报告
支持丰富的命令行参数,日常使用只需记住三个核心组合:
组合1:串行执行所有用例(适合调试)
此命令会按目录下文件名顺序(、)依次执行,每个用例完成后暂停,便于观察日志。执行完毕后,自动打开,点击任一用例名即可查看详细日志和截图。
组合2:并行执行(适合回归)
指定最多3个线程并发。实测在3台安卓设备上,5个用例总耗时从串行的25分钟压缩至9分钟。报告生成逻辑不变,中每个用例的状态、耗时、截图均独立展示。
组合3:指定用例执行(适合快速验证)
参数接受逗号分隔的路径,如,可精准控制执行范围,避免全量回归浪费时间。
报告生成的核心在函数。它读取所有用例的执行结果,用Jinja2渲染:
这个模板的关键是,确保点击用例名时在新标签页打开,不会丢失聚合报告页。而本身是Airtest原生生成的,已内置截图查看器和日志搜索框,无需额外开发。
4.3 GitHub协作全流程:如何让测试脚本成为团队共享资产
测试脚本的价值不在本地跑通,而在团队可复用、可维护。工程包已预置完整的Git协作支持:
克隆(Clone):新成员只需,PyCharm会自动识别配置,开箱即用。
添加(Add)与提交(Commit):当修改了脚本,例如修复了一个坐标偏移问题,流程如下:
1. 在PyCharm右下角点击;
2. 勾选变更文件(、);
3. 输入提交信息,如;
4. 点击。
推送(Push):PyCharm会弹出推送窗口,确认远程分支(通常是),点击。几秒后,代码同步到GitHub。
注意:已预置关键规则:
```
*.tmp
pycache/
.DS_Store
log/
report/
.idea/workspace.xml
.idea/tasks.xml
git status`只看到真正的代码变更,而非杂乱的临时文件。
团队协作的黄金实践是:所有脚本修改必须附带截图验证。例如,当你调整了中“CBA”图像模板,必须在目录下新增,并在提交信息里注明“对比图见test1_cba_fix_demo.png”。这样,其他成员一眼就能理解修改意图,避免“这个坐标为什么是0.12?”的无效讨论。
5.1 设备连接类问题:90%的“运行失败”其实和脚本无关
问题1:“airtest run 报错 adb server is out of date”
这是ADB版本冲突。Airtest自带ADB(位于),但系统PATH里可能有旧版ADB。解决方案:在PyCharm Terminal中执行,若显示或更低,则卸载系统ADB,或在中强制指定Airtest ADB路径:
问题2:“iOS设备连接失败,提示Could not connect to lockdownd”
这是iOS信任证书问题。在Mac上,打开 → 左侧选择 → 右键证书 → → → 。然后重启服务:。
问题3:“截图总是黑屏或花屏”
安卓设备需开启 → → (部分厂商如华为需额外开启)。iOS设备需在开启。
5.2 脚本执行类问题:从“点不到”到“断言飘”全解析
问题4:“exists()总是返回False,但截图明明有”
Airtest图像匹配对亮度、对比度敏感。实测发现,直播吧App在暗色模式下,“数据”Tab文字变灰,原模板匹配率暴跌。解决方案:在中增加参数,从默认0.7降到0.6:
或用预处理截图:
问题5:“OCR识别‘CBA’失败,返回空”
Airtest OCR在小字体、抗锯齿文字上效果差。直播吧App的“CBA”是12px无衬线字体。解决方案:放大截图区域再OCR:
问题6:“断言比赛数据时,偶尔少1条,不稳定”
这是典型的异步加载问题。不够可靠。正确做法是用等待多个元素:
5.3 报告与调度类问题:让报告真正“可用”
问题7:“summary.html里点击用例名,打不开log.html”
路径错误。Airtest生成的路径是相对路径,而在目录下。解决方案:在中,将路径转换为相对的路径:
问题8:“并行执行时,report目录里多个用例的截图混在一起”
这是未隔离截图目录导致。修复方法:在中,将Airtest的截图保存到用例专属目录:
以下为高频问题速查表:
问题现象根本原因快速解决方案经验备注PyCharm解释器未绑定Airtest环境Settings → Python Interpreter → Add System Interpreter → 选Python 3.9路径 → Install airtest务必确认Terminal中路径一致图像模板与实际屏幕亮度/缩放不匹配降低至0.5~0.6,或用预处理模板直播吧App在OLED屏上文字发虚,需模板增强iOS信任证书未授权钥匙串中证书设为“始终信任”,重启每次iOS系统升级后需重新操作路径为绝对路径在中用转为相对路径绝对路径在不同机器上必然失效Airtest默认截图目录全局唯一在命令中添加这是 v1.2修复的关键点
最后分享一个小技巧:在顶部加入环境检测函数,每次运行前自动校验:
这个函数让所有环境问题在脚本执行第一行就暴露,避免跑完20分钟才发现设备没连上——这才是生产级脚本该有的脾气。
本文还有配套的精品资源,点击获取
简介:直接跑通直播吧App的UI自动化测试流程,包含两个真实可用的.air脚本(test1.air、test2.air),走通‘数据’→‘CBA’核心操作路径;用myRunner.py统一控制执行方式,支持串行或并行批量运行;每次执行完自动生成summary.html聚合报告,点进任一失败用例就能立刻看到对应日志和截图,问题定位不绕弯;项目结构开箱即用,含suite测试集目录、log日志输出、report报告生成、.idea配置和Git提交指引;requirements.txt已列好依赖,PyCharm里配好Airtest环境就能调试运行;所有代码在本地验证通过,配套说明覆盖环境配置、脚本运行、GitHub克隆/添加/提交/推送全流程;压缩包里还有.gitignore、init.py、模板文件和原始资源目录,拿来就能改、就能测、就能交。
本文还有配套的精品资源,点击获取

海登海姆vs美因茨直播_海登海姆vs美因茨海登海姆vs美因茨免费直播在线直播

弗赖堡vsRB莱比锡直播_弗赖堡vsRB莱比锡直播观看免费_弗赖堡vsRB莱比锡

圣保利vs沃尔夫斯堡直播_圣保利vs沃尔夫斯堡免费高清在线直播_圣保利vs沃尔夫斯堡免费直播视频直播

法兰克福vs斯图加特直播_法兰克福vs斯图加特直播免费观看_法兰克福vs斯图加特直播无插件观看

勒沃库森vs汉堡直播_勒沃库森vs汉堡勒沃库森vs汉堡免费直播在线直播

拜仁vs科隆直播_拜仁vs科隆直播观看免费_拜仁vs科隆

云达不莱梅vs多特蒙德直播_云达不莱梅vs多特蒙德免费高清在线直播_云达不莱梅vs多特蒙德免费直播视频直播

维罗纳vs罗马直播_维罗纳vs罗马直播免费观看_维罗纳vs罗马直播无插件观看

拉齐奥vs切塞纳直播_拉齐奥vs切塞纳拉齐奥vs切塞纳免费直播在线直播

热那亚vs国米直播_热那亚vs国米直播观看免费_热那亚vs国米

05月25日 英超第38轮 曼城vs阿斯顿维拉 全场录像回放
2026年05月28日
05月25日 英超第38轮 水晶宫vs阿森纳 全场录像回放
2026年05月28日
05月25日 英超第38轮 桑德兰vs切尔西 全场录像回放
2026年05月28日
05月25日 英超第38轮 利物浦vs布伦特福德 全场录像回放
2026年05月28日
05月25日 英超第38轮 布莱顿vs曼联 全场录像回放
2026年05月28日
05月25日 英超第38轮 热刺vs埃弗顿 全场录像回放
2026年05月28日
05月18日 英超第37轮 纽卡斯尔联vsv西汉姆联 全场录像回放
2026年05月23日
05月17日 英超第37轮 利兹联vs布莱顿 全场录像回放
2026年05月23日
05月17日 英超第37轮 狼队vs富勒姆 全场录像回放
2026年05月23日
05月17日 英超第37轮 埃弗顿vs桑德兰 全场录像回放
2026年05月23日
05月17日 英超第37轮 布伦特福德vs水晶宫 全场录像回放
2026年05月23日
05月17日 英超第37轮 曼联vs诺丁汉森林 全场录像回放
2026年05月23日
05月16日 英超第37轮 阿斯顿维拉vs利物浦 全场录像回放
2026年05月23日
05月14日 英超第31轮补赛 曼城vs水晶宫 全场录像回放
2026年05月23日
05月12日 英超第36轮 热刺vs利兹联 全场录像回放
2026年05月23日
05月16日 德甲第34轮 柏林联合vs奥格斯堡 全场录像回放
2026年05月23日
05月16日 德甲第34轮 门兴vs霍芬海姆 全场录像回放
2026年05月23日
05月16日 德甲第34轮 海登海姆vs美因茨 全场录像回放
2026年05月23日
05月16日 德甲第34轮 弗赖堡vs莱比锡 全场录像回放
2026年05月23日
05月16日 德甲第34轮 圣保利vs沃尔夫斯堡 全场录像回放
2026年05月23日
05月16日 德甲第34轮 勒沃库森vs汉堡 全场录像回放
2026年05月23日
05月16日 德甲第34轮 法兰克福vs斯图加特 全场录像回放
2026年05月23日
05月17日 德甲第34轮 拜仁慕尼黑vs科隆 全场录像回放
2026年05月23日
05月11日 德甲第33轮 美因茨vs柏林联合 全场录像回放
2026年05月23日
05月10日 德甲第33轮 科隆vs海登海姆 全场录像回放
2026年05月23日
05月10日 德甲第33轮 汉堡vs弗赖堡 全场录像回放
2026年05月23日
05月10日 德甲第33轮 沃尔夫斯堡vs拜仁慕尼黑 全场录像回放
2026年05月23日
05月09日 德甲第33轮 霍芬海姆vs不莱梅 全场录像回放
2026年05月23日
05月18日 法甲第34轮 布雷斯特vs昂热 全场录像回放
2026年05月23日
05月14日 法甲第29轮补赛 朗斯vs巴黎圣日耳曼 全场录像回放
2026年05月23日
05月14日 法甲第29轮 布雷斯特vs斯特拉斯堡 全场录像回放
2026年05月23日
05月18日 法甲第34轮 斯特拉斯堡vs摩纳哥 全场录像回放
2026年05月23日
05月18日 法甲第34轮 马赛vs雷恩 全场录像回放
2026年05月23日
05月18日 法甲第34轮 洛里昂vs勒阿弗尔 全场录像回放
2026年05月23日
05月18日 法甲第34轮 巴黎FCvs巴黎圣日耳曼 全场录像回放
2026年05月23日
05月18日 法甲第34轮 里尔vs欧塞尔 全场录像回放
2026年05月23日
05月18日 法甲第34轮 尼斯vs梅斯 全场录像回放
2026年05月23日
05月11日 法甲第33轮 图卢兹vs里昂 全场录像回放
2026年05月23日
05月11日 法甲第33轮 雷恩vs巴黎FC 全场录像回放
2026年05月23日
05月11日 法甲第33轮 巴黎圣日耳曼vs布雷斯特 全场录像回放
2026年05月23日
05月11日 法甲第33轮 摩纳哥vs里尔 全场录像回放
2026年05月23日
05月11日 法甲第33轮 勒阿弗尔vs马赛 全场录像回放
2026年05月23日
05月11日 法甲第33轮 梅斯vs洛里昂 全场录像回放
2026年05月23日
05月24日 西甲第38轮 瓦伦西亚vs巴塞罗那 全场录像回放
2026年05月28日
05月24日 西甲第38轮 皇家马德里vs毕尔巴鄂竞技 全场录像回放
2026年05月28日
05月18日 西甲第37轮 塞维利亚vs皇家马德里 全场录像回放
2026年05月23日
05月18日 西甲第37轮 皇家社会vs瓦伦西亚 全场录像回放
2026年05月23日
05月18日 西甲第37轮 巴列卡诺vs比利亚雷亚尔 全场录像回放
2026年05月23日
05月18日 西甲第37轮 皇家奥维耶多vs阿拉维斯 全场录像回放
2026年05月23日
05月18日 西甲第37轮 奥萨苏纳vs西班牙人 全场录像回放
2026年05月23日
05月18日 西甲第37轮 马德里竞技vs赫罗纳 全场录像回放
2026年05月23日
05月18日 西甲第37轮 莱万特vs马略卡 全场录像回放
2026年05月23日
05月18日 西甲第37轮 毕尔巴鄂竞技vs塞尔塔 全场录像回放
2026年05月23日
05月15日 西甲第36轮 皇家马德里vs皇家奥维耶多 全场录像回放
2026年05月23日
05月15日 西甲第36轮 赫罗纳vs皇家社会 全场录像回放
2026年05月23日
05月15日 西甲第36轮 瓦伦西亚vs巴列卡诺 全场录像回放
2026年05月23日
05月14日 西甲第36轮 赫塔费vs马略卡 全场录像回放
2026年05月23日
05月14日 西甲第36轮 阿拉维斯vs巴塞罗那 全场录像回放
2026年05月23日
05月24日 意甲第38轮 博洛尼亚vs国际米兰 全场录像回放
2026年05月28日
05月25日 意甲第38轮 维罗纳vs罗马 全场录像回放
2026年05月28日
05月25日 意甲第38轮 都灵vs尤文图斯 全场录像回放
2026年05月28日
05月25日 意甲第38轮 AC米兰vs卡利亚里 全场录像回放
2026年05月28日
05月18日 意甲第37轮 萨索洛vs莱切 全场录像回放
2026年05月23日
05月18日 意甲第37轮 乌迪内斯vs克雷莫内塞 全场录像回放
2026年05月23日
05月18日 意甲第37轮 卡利亚里vs都灵 全场录像回放
2026年05月23日
05月18日 意甲第37轮 亚特兰大vs博洛尼亚 全场录像回放
2026年05月23日
05月17日 意甲第37轮 国际米兰vs维罗纳 全场录像回放
2026年05月23日
05月17日 意甲第37轮 罗马vs拉齐奥 全场录像回放
2026年05月23日
05月17日 意甲第37轮 比萨vs那不勒斯 全场录像回放
2026年05月23日
05月17日 意甲第37轮 尤文图斯vs佛罗伦萨 全场录像回放
2026年05月23日
05月17日 意甲第37轮 热那亚vsAC米兰 全场录像回放
2026年05月23日
05月12日 意甲第36轮 那不勒斯vs博洛尼亚 全场录像回放
2026年05月23日
05月11日 意甲第36轮 AC米兰vs亚特兰大 全场录像回放
2026年05月23日
06月09日 NBA总决赛G3 马刺vs尼克斯 全场录像回放
2026年06月11日
06月06日 NBA总决赛G2 尼克斯vs马刺 全场录像回放
2026年06月11日
06月04日 NBA总决赛G1 尼克斯vs马刺 全场录像回放
2026年06月11日
05月31日 NBA西部决赛G7 马刺vs雷霆 全场录像回放
2026年06月04日
05月30日 WNBA常规赛 菲尼克斯水星vs纽约自由人 全场录像回放
2026年06月04日
05月29日 NBA西部决赛G6 雷霆vs马刺 全场录像回放
2026年06月04日
05月27日 NBA西部决赛G5 马刺vs雷霆 全场录像回放
2026年05月28日
05月26日 NBA东部决赛G4 尼克斯vs骑士 全场录像回放
2026年05月28日
05月25日 NBA西部决赛G4 雷霆vs马刺 全场录像回放
2026年05月28日
05月25日 WNBA常规赛 达拉斯飞翼vs纽约自由人 全场录像回放
2026年05月28日
05月23日 NBA西部决赛G3 雷霆vs马刺 全场录像回放
2026年05月28日
05月24日 NBA东部决赛G3 尼克斯vs骑士 全场录像回放
2026年05月28日
05月22日 WNBA常规赛 金州女武神vs纽约自由人 全场录像回放
2026年05月23日
05月22日 NBA东部决赛G2 骑士vs尼克斯 全场录像回放
2026年05月23日
05月21日 NBA西部决赛G2 马刺vs雷霆 全场录像回放
2026年05月23日