Skip to content
返回

dh-cm-web-e2e

通用正在获取安装数据

进阶:把核心业务流程固化成可重复运行的 Playwright 自动回归用例,并负责运行和修复。日常改动检查请先用 dh-cm-qa-flow。

概述
dh-cm-web-e2e

DH Web E2E 自动测试 ​

把页面负责人的业务判断沉淀为可重复执行的 Playwright Test。AI 负责查代码、生成、运行和诊断;页面负责人只决定业务目标、测试数据、通过标准和允许的写操作。

先用 QA Flow

日常“改完代码测一测”请使用 dh-cm-qa-flow:AI 直接操作页面并出报告,不需要写测试代码。本技能适合核心流程需要长期、稳定、可重复回归的场景,QA Flow 跑通的用例可以作为它的任务卡输入。

选择工作模式 ​

  • 新建:为页面或业务流程新增可重复测试。
  • 运行:执行已有 Playwright 用例并生成证据报告。
  • 修复:诊断失败是产品故障、测试过期还是环境阻塞,只修复真正过期的测试。
  • 一次性检查:只需检查这次改动、不需沉淀 Playwright 用例时,改用 dh-cm-qa-flow。

开始前 ​

  1. 确认项目根目录,阅读适用的 AGENTS.md、CLAUDE.md、项目规则和现有测试文档。
  2. 查找已有 Playwright 配置、用例、登录处理、路由、页面实现、API 和报告命令。已有能力必须复用。
  3. 从代码查明页面入口、字段、按钮、状态、接口和现有测试数据;不要把可检索的事实问给用户。
  4. 读取 task-card.md,在 .ai/web-e2e/<flow-id>.md 创建或更新测试任务卡。
  5. 只就负责人必须决定的缺失项提问,每次只问一个:业务目标、可用数据、通过标准、允许的写入/清理。

新建测试 ​

  1. 任务卡决策不完整时不写用例;不用“页面无报错”代替业务通过标准。
  2. 读取 playwright-delivery.md,复用已有 Playwright Test。项目未安装时,只加入 @playwright/test 和 Chromium;Playwright CLI 或 MCP 仅作编写辅助,不作为用例运行的必需依赖。
  3. 项目已使用 Node 时,把测试放进最近的现有包或根测试工作区。项目完全不使用 Node 时,新增独立运行时前先说明影响并征得用户同意。
  4. 第一版每个页面只实现 1 条主成功路径;只有关键数据、权限、计费、登录或高复发缺陷才增加 1 条核心失败路径。
  5. 优先像真实用户一样操作页面。API 只用于任务卡明确允许的前置数据、触发或精确清理;不直接改数据库。
  6. 创建唯一 runId。写入的数据必须同时包含项目测试前缀和 runId,并在 finally 中只清理本次创建的数据。
  7. 使用角色、标签、占位文字和表格行内容定位。只有真实运行证明无法稳定定位时,才在最少的关键元素上加 data-testid。
  8. 判定业务状态、数据变化和关键结果,不大量检查页面文案、CSS 类名或 mock 调用次数。
  9. 用可见浏览器在目标环境运行。检查实际页面、报告和清理结果;修复后连续运行两次。
  10. 完成后交付任务卡、测试用例、必要配置、使用命令和验证结果。登录状态、报告、截图和录像不得进入仓库。

运行已有测试 ​

  1. 确认目标环境、允许域名、专用账号、登录状态和前置数据。
  2. 默认手动发起,不自动接入 CI 或发布流程。
  3. 运行用户点名的用例;未点名时运行当前模块,不默认全站扫描。
  4. 如跳转登录、验证码、扫码或二次确认,转交用户完成后再继续;不绕过安全校验。
  5. 用 PASS、FAIL、BLOCKED、SKIPPED 区分业务失败、环境阻塞和未执行,说明是否产生且清理了测试数据。

修复失败测试 ​

  1. 读取用例、任务卡、trace、截图、页面错误和相关代码。
  2. 先分类:
    • 产品故障:业务期望未满足。保持用例失败,报告产品问题。
    • 测试过期:已确认的产品行为未变,仅定位、等待或测试数据变化。做最小修复。
    • 环境阻塞:登录过期、环境不可用、权限或前置数据缺失。标记 BLOCKED,不改用例伪造通过。
  3. 不删除关键判定、改成更宽的匹配、增加无条件重试或延长固定等待来隐藏故障。
  4. 业务通过标准确实改变时,先让页面负责人更新任务卡,然后同步修改用例。
  5. 修复后在同一环境连续运行两次,再报告恢复。

安全底线 ​

  • 只访问任务卡允许的环境和域名。
  • 默认只读;生产环境禁止写入测试。
  • 新增、修改或删除前确认任务卡已授权,并使用专用账号和测试数据。
  • 删除、发布、批量修改和不可逆操作必须人工确认;测试清理只能按本次前缀和 runId 精确执行。
  • 账号、密码、token、Cookie、登录状态和真实个人数据不得写入代码、任务卡、命令输出或报告。
  • 默认使用本地浏览器,不上传登录状态和业务页面到云端。

完成标准 ​

  • 任务卡和用例同时存在,且业务期望一致。
  • 用例在目标环境的可见浏览器中连续运行两次。
  • 成功运行生成报告;临时制造一次不改业务数据的断言失败时,能看到失败截图和 trace,然后恢复断言。
  • 写数据用例在通过和中途失败后都不残留本次测试数据。
  • 最终说明测试数量、通过/失败/阻塞、数据清理结果、报告位置和仍存限制。

Power By 数字海南