Skip to content

这套测试是什么 ​

我们用 Midscene.js 的测试运行器 @midscene/test 做电商的 UI 自动化。它的特点是用例用自然语言写:

yaml
cases:
  - name: 搜索商品并加入购物车
    steps:
      - aiAct: 在顶部搜索框输入"蓝牙耳机"并回车
      - aiAct: 点击搜索结果里第一个商品
      - aiAct: 点击"加入购物车"
      - aiAssert: 页面出现"已加入购物车"提示,购物车角标数字为 1

运行时由大模型看截图理解页面,找到元素再操作,所以:

  • 不用写选择器,页面改版、换皮肤一般不用改用例。
  • 同一套写法既能跑 Web(Playwright + Chromium),也能跑 Android 真机(adb)。
  • 每一步自动截图进报告,失败时打开报告就知道卡在哪一步、页面长什么样。

两类步骤 ​

类型举例调不调模型适合做什么
AI 节点aiAct、aiTap、aiInput、aiAssert、aiQuery、aiWaitFor调业务操作、页面断言
确定性节点gotoUrl、setViewportSize、launch、terminate、back、home、sleep 以及自己写的节点不调打开页面、拉起 App、重置数据、查后台状态

原则:能确定的事用确定性节点,需要"看"页面的事用 AI 节点。比如打开商品页直接 gotoUrl,不要让 AI 去点导航;判断"订单状态是已支付"用 aiAssert。

一次测试的流程 ​

  1. 拉代码、装依赖、填模型 Key(见环境准备)。
  2. 在 cases/web/ 或 cases/android/ 下写 YAML 用例(见用例写法)。
  3. pnpm test:web 或 pnpm test:android 跑起来。
  4. 打开 midscene_run/report/ 下的 HTML 报告看结果。
  5. 有问题按问题上报规范提单,附报告。

当前覆盖范围 ​

端状态
Web(Chromium)已接入,示例用例跑通
Android 真机已接入,Galaxy A16 冒烟通过
iOS未接入,需要 Mac + Xcode + WebDriverAgent
微信小程序未接入

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