• 简体中文
  • Midscene Test 概览

    Midscene Test(@midscene/test)是面向 AI 时代设计的自然语言 E2E 测试框架。它将 AI 的灵活性与代码的确定性结合在同一份用例中:用自然语言表达操作意图与预期,用代码承载需要精确控制的业务逻辑。测试流程以清晰、可读的结构呈现,让人和 AI 都能理解、编写和维护,也让测试意图与底层实现能够独立演进。开始使用 Midscene Test

    AI 操作与业务操作写在同一个 YAML 里

    每个 YAML 步骤都对应一个 Node(节点),可以是 AI 操作、平台操作或自定义业务操作。将这些 Node 组合成人和 AI 都能读写、审阅的测试用例。

    cases/refund.yaml
    beforeEach:  - order.prepare: { status: paid }业务  - gotoUrl: ${shopUrl}/orders/latest业务cases:  - name: 已支付订单支持全额退款    steps:      - aiAct: 申请全额退款并提交AI      - aiAssert: 页面显示退款申请已提交AI      - order.checkRefund: { status: refunding }业务afterEach:  - clearCookies: {}业务

    让人和 AI 共同维护测试用例

    随着业务发展,测试工程可以持续积累可复用的业务操作,让用例保持对测试意图的清晰表达。人和 AI 可以基于同一份能力说明理解、编写和修改用例,业务操作的实现则可以独立维护。

    Midscene Test 通过自定义 Node 承载这些业务能力,并根据项目已注册的操作生成 Markdown 格式的 Node Spec,为人和 AI 提供一致的用例编写依据。了解扩展机制

    1. nodes/order.ts
      defineNode({
        name: 'order.prepare',
        description: "创建测试订单",
        inputSchema: z.strictObject({
          status: z.literal('paid'),
        }),
        async execute({ input }) {
          await orders.create(input);
        },
      });
    2. midscene-node-spec.md
      ### order.prepare
      创建测试订单
      - status: "paid"
    3. case.yaml
      steps:
        - order.prepare:
            status: paid

    下一步

    从旧版 YAML 运行器迁移

    旧版 tasks/flow YAML 运行器已进入维护状态,只保留兼容更新和必要修复。新项目和新增用例推荐使用 Midscene Test。已有项目可以继续使用 midscene 命令;切换到 midscene-test 时,请参阅迁移到 Midscene Test。