测试方案:深枭演示应用(登录)

本文件是手工维护的示例方案,格式与 deepowl plan 生成的方案一致: 人类可读部分供评审,deepowl-case 围栏内的 JSON 是执行器唯一读取的机器可执行部分。

1. 测试范围

演示应用 examples/demo-app 的登录页与注册页:正常登录、密码错误提示、注册页可达性。 被测基址由 runner.baseUrl 决定(默认 http://127.0.0.1:4173)。

2. 需求追溯矩阵

需求ID 需求描述 对应用例 覆盖状态
RQ-LOGIN-001 正确凭据登录后进入首页并显示「欢迎回来」 TC-LOGIN-001 covered
RQ-LOGIN-002 密码错误时提示「用户名或密码错误」且不跳转 TC-LOGIN-002 covered
RQ-LOGIN-003 登录页可跳转到注册页 TC-LOGIN-003 covered

3. 测试用例清单

TC-LOGIN-001 登录成功

  • 优先级:P1
  • 模块:登录
  • 来源:examples/requirements/login.md#验收标准
  • 标签:正常场景
  • 前置条件:演示应用已启动,内置账号 admin/123456 可用

步骤(意图说明,机器可执行部分见下方 JSON)

  1. goto /
  2. fill(用户名)→ admin
  3. fill(密码)→ 123456
  4. click(登录)
  5. expectText 欢迎回来

预期结果:页面出现「欢迎回来」,不再停留在登录表单

{"id":"TC-LOGIN-001","module":"登录","title":"登录成功","priority":"P1","precondition":"演示应用已启动,内置账号 admin/123456 可用","steps":[{"action":"goto","url":"/"},{"action":"fill","target":"用户名","value":"admin"},{"action":"fill","target":"密码","value":"123456"},{"action":"click","target":"登录"},{"action":"expectText","text":"欢迎回来"}],"expected":"页面出现「欢迎回来」,不再停留在登录表单","source":"examples/requirements/login.md#验收标准","tags":["正常场景"]}

TC-LOGIN-002 密码错误提示

  • 优先级:P1
  • 模块:登录
  • 来源:examples/requirements/login.md#验收标准
  • 标签:异常场景
  • 前置条件:演示应用已启动

步骤(意图说明,机器可执行部分见下方 JSON)

  1. goto /
  2. fill(用户名)→ admin
  3. fill(密码)→ wrong-password
  4. click(登录)
  5. expectText 用户名或密码错误

预期结果:出现错误提示,且仍停留在登录页

{"id":"TC-LOGIN-002","module":"登录","title":"密码错误提示","priority":"P1","precondition":"演示应用已启动","steps":[{"action":"goto","url":"/"},{"action":"fill","target":"用户名","value":"admin"},{"action":"fill","target":"密码","value":"wrong-password"},{"action":"click","target":"登录"},{"action":"expectText","text":"用户名或密码错误"},{"action":"expectVisible","target":"登录"}],"expected":"出现错误提示,且仍停留在登录页","source":"examples/requirements/login.md#验收标准","tags":["异常场景"]}

TC-LOGIN-003 注册页可达

  • 优先级:P2
  • 模块:登录
  • 来源:examples/requirements/login.md
  • 标签:正常场景
  • 前置条件:演示应用已启动

步骤(意图说明,机器可执行部分见下方 JSON)

  1. goto /
  2. click(注册新账号)
  3. expectUrl register.html
  4. expectVisible(手机号)
  5. screenshot register-page

预期结果:进入注册页,出现「手机号」输入框

{"id":"TC-LOGIN-003","module":"登录","title":"注册页可达","priority":"P2","precondition":"演示应用已启动","steps":[{"action":"goto","url":"/"},{"action":"click","target":"注册新账号"},{"action":"expectUrl","value":"register.html"},{"action":"expectVisible","target":"手机号"},{"action":"screenshot","name":"register-page"}],"expected":"进入注册页,出现「手机号」输入框","source":"examples/requirements/login.md","tags":["正常场景"]}

4. 执行计划

# 启动演示应用(另开终端)
bun run examples/demo-app/serve.ts

# 无头执行全部用例
deepowl run examples/test-plan.example.md

# 分片并行 + 只看失败
deepowl run examples/test-plan.example.md --shards 3

# 夜间任务:推荐 cron 0 2 * * *(每天 02:00),Windows 用 deepowl task install 注册