Midscene Test 概览
Midscene Test(@midscene/test)是面向自然语言的 E2E 测试框架。用 YAML 描述操作和预期,需要精确控制的逻辑交给 TypeScript。开始使用 Midscene Test
AI 操作与业务操作写在同一个 YAML 里
YAML 中的每个步骤都调用一个 Node:AI 操作、平台操作或自定义业务操作,组合起来就是一个用例。
beforeEach: - order.prepare: { status: paid }业务 - gotoUrl: ${shopUrl}/orders/latest业务cases: - name: 已支付订单支持全额退款 steps: - aiAct: 申请全额退款并提交AI - aiAssert: 页面显示退款申请已提交AI - order.checkRefund: { status: refunding }业务afterEach: - clearCookies: {}业务让人和 AI 共同维护测试用例
把可复用的业务逻辑封装成自定义 Node。Midscene Test 会生成 Markdown 格式的 Node 说明书(Node Spec),列出每个 Node 及其参数,测试工程师和 AI Agent 无需阅读 TypeScript 就能编写用例。了解如何开发自定义 Node
测试框架能力
Midscene Test 同样具备测试框架应有的能力:生命周期钩子与资源清理、失败重试与超时、隔离的并发执行,以及精确到步骤的报告。
生命周期钩子与资源清理
通过 setup、fileSetup、beforeAll、beforeEach 及对应的清理钩子,分别在项目、文件和用例层级准备与清理资源。用例失败、超时或按下 Ctrl+C 后,清理流程仍会执行。
项目生命周期失败重试与超时
失败用例可以重试,每次尝试都会重新执行 beforeEach、步骤和 afterEach。可以设置步骤超时,用 continue-on-error 在步骤失败后继续执行,用 bail 提前停止。
失败时如何执行并发与隔离
通过 maxConcurrentFiles 并发运行多个 YAML 文件。fileSetup 为每个文件准备独立的页面、Agent 或设备,并发文件之间不共享状态。
并发与资源隔离精确到步骤的报告
HTML 报告记录每个步骤的截图、输入、输出、错误和 Agent 回放。通过 #runner-step=last-error 链接,可以从 CI 通知或 PR 评论直接打开最近一次失败的步骤;summary.json 和 result.md 则供脚本和 AI Agent 读取。
输出与报告下一步
- 创建测试项目:首次创建、运行、修改用例并查看结果。
- 编写 YAML 用例:日常编写与维护用例。
- 各平台预置 Node:查阅通用 AI 能力与各平台预置操作。
- 配置测试工程:管理环境变量、用例文件和执行项目。
- 开发自定义 Node:封装可复用的业务操作。
- 运行测试与生命周期与并发:控制执行方式、并发策略,并获取测试报告与诊断结果。
- 在 GitHub Actions 中运行:接入 CI 流程。
旧版 tasks/flow YAML 运行器已进入维护状态,仅保留兼容更新和必要修复。新项目和新增用例推荐使用 Midscene Test。已有项目可以继续使用 midscene 命令;如需迁移到 midscene-test,请参阅迁移到 Midscene Test。

