外观
跑第一个用例
命令
bash
pnpm test # Web 和 Android 都跑
pnpm test:web # 只跑 cases/web/
pnpm test:android # 只跑 cases/android/先跑 Web 自带的 TodoMVC 示例确认环境没问题:
bash
pnpm test:web正常会看到两个用例,一个纯确定性节点、一个 AI 节点,都应该通过。
调试时让浏览器现身
.env 里 HEADLESS=false,再跑一次就能看到 Chromium 窗口里每一步在做什么。
只跑一个文件
运行器按文件调度。只跑某一个用例文件:
bash
pnpm test:file --project web cases/web/cart.yaml单文件运行时报告位置不同
这样跑的时候,报告会生成在用例文件所在目录下的 midscene_run/,比如 cases/web/midscene_run/report/,而不是项目根目录。这个目录已经加进 .gitignore,不会误提交。
一个文件里的多个 case 目前不能单独挑着跑,调试时把其他 case 先注释掉。
标签
用例可以打标签,方便搜索和整理:
yaml
cases:
- name: 下单主流程
tags: [smoke, order]当前版本的运行器(1.17.7)还没有按标签过滤的参数,标签只起标记作用。想单独跑冒烟,把冒烟用例集中放在 cases/web/00-smoke.yaml 这类文件里,用上面的单文件方式跑。
约定的标签:
| 标签 | 含义 |
|---|---|
smoke | 每次发版必跑的冒烟 |
deterministic | 不调模型,可以在没 Key 的机器上跑 |
ai | 需要模型 |
order cart search pay account | 按电商业务模块 |
其他参数:
bash
pnpm exec midscene-test --help看报告
每次运行在 midscene_run/ 下生成:
| 路径 | 内容 |
|---|---|
midscene_run/report/<时间戳>.html | 可视化报告,每步截图、耗时、AI 的思考过程,提单时附这个 |
midscene_run/test-results/<runId>/summary.json | 结构化结果,给 CI 用 |
用浏览器直接打开 HTML 报告。失败的步骤会标红,点开能看到当时的截图和 AI 为什么判定失败。
失败了怎么办
- 看报告里失败步骤的截图:是页面没加载完、弹了广告、还是业务真的出错。
- 页面没加载完 → 在前一步后面加
aiWaitFor或sleep。 - 弹窗挡住 → 在
beforeEach里加一步关弹窗,或者在setAIContext里告诉模型"遇到弹窗先关掉"。 - 业务真的错了 → 按问题上报规范提单。
- 偶发 → 重跑一次。同一步连续两次都挂才算问题。
运行器默认 bail: 1,第一个失败就停下。想一口气跑完看全貌,临时改 midscene.config.ts 里的 test.bail。