Maestro record 上手:1 条命令产出 1080p 测试演示视频
【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro
发版评审、给开发提 bug 报告,你多半都遇到过这种事:需要一段 App 操作录屏,手动开系统录屏、跑完流程、再剪掉片头片尾,还得确认录屏和测试结果对得上,折腾一轮才发出去。Maestro 的record命令(Maestro record)把这件事压成一条命令:它会执行你指定的 YAML flow(flow 就是 Maestro 里描述测试步骤的脚本文件),把执行过程录成一段带说明画面的 1080p 视频。
一、🎬 功能定位:它录的是什么
Maestro record 输入是一个已有的 flow 文件和一台连接好的设备,产出是一个 MP4 视频。
视频内容不是裸的屏幕录像,而是设备画面被合成为画中画,配上渐变背景和每步操作的文字说明(合成背景就是仓库里的 record-background.jpg),适合直接放进演示或报告。
Maestro record 输出视频的合成背景(1920×1080),设备画面叠加其上
二、📲 上手流程:从安装到取回视频
1. 安装 Maestro CLI
先确认 Java 17 及以上(java -version),然后在 macOS、Linux 或 WSL 上执行:
curl -fsSL "https://get.maestro.mobile.dev" | bash装完跑maestro --version能看到版本号即可。
2. 启动一次录制会话
命令签名是maestro record <flow文件> [输出文件]:
maestro record login_flow.yaml要求设备上已连接 Android 模拟器/真机或 iOS 模拟器,且目标 App 已安装。注意 Web flow 目前不支持 record,会直接报错。
3. 观看执行过程
终端会逐步打印每个指令的执行状态:全绿表示 flow 跑通,出现红色失败信息说明某步断言没通过。期间 Maestro 已在后台抓取每一帧画面,你不用做任何操作。
4. 取回渲染好的视频
视频默认生成在~/.maestro/tests/<时间戳目录>/maestro-recording.mp4,和本次运行的日志放在一起。想指定位置就加--local(本机渲染,Beta)并给出第二个参数:
maestro record --local login_flow.yaml ./demo.mp4--local走本机 Skia 帧渲染器,固定输出 1920×1080、25fps 的 MP4。实现代码在 RecordCommand.kt。
三、📄 两个贴业务的用法
Bug 报告的证据链。线上反馈"结算页金额算错",你写好复现 flow,maestro record一遍。视频里能看到点进结算页、价格断言失败的瞬间,开发不用再问"具体怎么点的"。
发版演示素材。选一条覆盖主路径的 flow(如注册、下单、查看订单),record 产出的视频天然带步骤标注,直接贴进 release notes 或给客户看,比事后补 PPT 截图省事。
四、✍️ 和手写/手动录屏比
| 维度 | 手动录屏 | maestro record |
|---|---|---|
| 步骤数 | 开工具→开始→跑流程→停止→裁剪→配截图,至少 6 步 | 1 条命令 |
| 结果对应 | 录屏与测试结果靠人工对齐 | 同一会话产出,天然一致 |
| 维护成本 | 流程改了要重新录、重新剪 | flow 更新后重跑命令即可 |
可读性方面,视频里的步骤说明直接来自 flow 指令,别人看完视频就能猜到脚本长什么样。
五、🔩 为什么产出的视频不容易"飘"
- 视频、帧、结果同会话。record 回放的是你提交的那个 YAML,画面和终端结论来自同一次执行,不存在"录屏看着成功、报告说失败"的错位。
- 等待交给引擎。Maestro 的指令本身带智能等待(tapOn 会等元素出现再点),网络慢、动画慢不需要你在脚本里堆 sleep,这一步稳了视频就稳了。
- 渲染不依赖设备。
--local模式下每帧由本机合成到 1080p 画布,同一台电脑出片观感一致,不会因为设备帧率不同而忽快忽慢。
六、❓ 新手常问的三个问题
Q:record 支持哪些设备?A:Android 与 iOS 的模拟器和真机。Web flow 暂不支持 record,会直接报错提示。
Q:视频默认存在哪里?A:~/.maestro/tests/下按时间戳命名的会话目录里,文件名是maestro-recording.mp4。加--local并给出第二个参数可指定任意路径。
Q:能从视频反推回 YAML 脚本吗?A:目前不行。record 是"脚本到视频"的单向产出;想"操作反推脚本"属于 Maestro Studio 可视化录制的能力,不在这个开源 CLI 里。
maestro record不追求花哨,它把"跑一次 + 录一次 + 合成一次"合并掉。下一步:挑一条现有 flow,执行maestro record 你的flow.yaml,然后去~/.maestro/tests/里把最新一段视频拖进报告里。
【免费下载链接】MaestroPainless E2E Automation for Mobile and Web项目地址: https://gitcode.com/GitHub_Trending/ma/Maestro
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考