测试方案:深枭演示应用(登录)
本文件是手工维护的示例方案,格式与
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)
- goto
/ - fill(用户名)→
admin - fill(密码)→
123456 - click(登录)
- 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)
- goto
/ - fill(用户名)→
admin - fill(密码)→
wrong-password - click(登录)
- 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)
- goto
/ - click(注册新账号)
- expectUrl
register.html - expectVisible(手机号)
- 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 注册