Skip to content

跑第一个用例 ​

命令 ​

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 为什么判定失败。

失败了怎么办 ​

  1. 看报告里失败步骤的截图:是页面没加载完、弹了广告、还是业务真的出错。
  2. 页面没加载完 → 在前一步后面加 aiWaitFor 或 sleep。
  3. 弹窗挡住 → 在 beforeEach 里加一步关弹窗,或者在 setAIContext 里告诉模型"遇到弹窗先关掉"。
  4. 业务真的错了 → 按问题上报规范提单。
  5. 偶发 → 重跑一次。同一步连续两次都挂才算问题。

运行器默认 bail: 1,第一个失败就停下。想一口气跑完看全貌,临时改 midscene.config.ts 里的 test.bail。

内部文档,仅供测试团队使用