pipeline-opportunity/docs/test-cases.md

88 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 商机产线pipeline-opportunity测试用例方案
执行者test agentpipeline_role_submit role=test
浏览器能力run_shell + playwright headless chromium 脚本(真浏览器);
curl + Cookie(session-ticket) 做接口/页面级验证。
前置准备(部署侧):测试环境 venv 安装 playwright + chromium当前缺失
## 统计
- 测试用例27 条(冒烟 5 / 数据能力 7 / 报告闭环 8 / UI-CRUD 5 / RBAC 2
- 覆盖功能点22 个(见文末映射表;状态机/人工任务/边界类功能点由多条用例交叉覆盖)
## 一、冒烟测试验证部署5 条)
| # | 用例 | 断言 |
|---|------|------|
| S1 | 应用端口与外网 | 9090 监听https://pipeline.opencomputing.cn/ 返回 200 |
| S2 | 能力包加载 | 启动日志含 `[pipeline_opportunity] v0.1.0 loaded` |
| S3 | 表结构 | opp_reports/opp_approvals 存在,列与 models/*.json 一致 |
| S4 | 种子数据 | pipelines 表含 id=opportunity_generalappcodes 含 opp_report_status/opp_approval_status 全枚举 |
| S5 | 爬虫平台连通 | 内网 192.168.16.2:9085无 token→401带 token→/api/stats 200 |
## 二、数据能力消费爬虫平台7 条)
| # | 用例 | 断言 |
|---|------|------|
| D1 | /hot 热点推荐 | 驾驶舱执行返回排名:含 category/tender_count/total_budget_wan/top_regions数量与爬虫库一致 |
| D2 | /ai 每日AI招标 | 返回当日清单count/with_budget/total_budget_wan 与 /api/ai_tenders 一致 |
| D3 | 关键词搜索 | opp_search_tenders(keyword=大模型) 返回项标题含关键词 |
| D4 | 详情来源完整性 | opp_tender_detail 返回含 url 和 source_url 两个来源链接(双链接缺一不可) |
| D5 | 采集健康度 | opp_crawler_stats 返回 total/ai_related/collected_24h/recent_runs |
| D6 | 鉴权降级 | params 表 token 置错 → 工具返回友好错误信息,无 500、无堆栈泄漏 |
| D7 | 空结果 | 搜索不存在的关键词 → count=0 正常返回,不报错 |
## 三、报告/审批闭环8 条,状态机核心)
| # | 用例 | 断言 |
|---|------|------|
| R1 | 创建报告 | opp_create_report → opp_reports 新增 status=draft |
| R2 | 草稿可改 | opp_update_report 更新 content 成功 |
| R3 | 非草稿禁改 | confirmed 状态调 update → 拒绝「仅草稿可编辑」 |
| R4 | 提交确认 | opp_submit_report → pipeline_human_tasks 新增 task_type=opp_report_confirm, status=pendingNOT NULL 列 task_id/step_name/version 正确填充) |
| R5 | 人工确认回流 | 人工任务置 done → 报告 draft→confirmedconfirmed_by 落库 |
| R6 | 审批门禁 | draft 状态直接 initiate_approval → 拒绝「须先人工确认」(非法迁移拦截) |
| R7 | 发起审批 | confirmed 后发起 → opp_approvals initiated + 报告 approval_initiated + opp_dev_approval 人工任务 |
| R8 | 审批结论 | resolve approved→报告 approvedresolve rejected→报告 rejected 且可退回 draft 重来 |
## 四、UI/CRUD真浏览器5 条)
| # | 用例 | 断言 |
|---|------|------|
| U1 | 报告列表页 | 登录后浏览器打开 /pipeline-opportunity/opp_reports/index.ui200 且 Tabular 渲染playwright 截图+DOM 断言,非仅 curl |
| U2 | 报告 CRUD | 页面新增/编辑/删除走 add/update/delete_opp_reports.dspy 成功,数据库同步 |
| U3 | 审批列表页 | /pipeline-opportunity/opp_approvals/index.ui 渲染正常 |
| U4 | 产线菜单 | 商机产线项目驾驶舱菜单含「研发报告」「研发审批」弹窗项menus 配置) |
| U5 | i18n 双语 | 切英文后菜单/表头文案走 en/msg.txt 翻译研发报告→R&D Report 等),无裸中文键 |
## 五、RBAC2 条)
| # | 用例 | 断言 |
|---|------|------|
| A1 | 未登录拦截 | 无 Cookie 访问 opp_reports/index.ui 与 CRUD dspy → 401 |
| A2 | logined 放行 | 登录后同路径 → 200权限缓存刷新后 |
## 功能点覆盖映射22 个功能点)
| 功能点 | 覆盖用例 |
|--------|---------|
| 1 能力包注册/加载 | S2 |
| 2 opp_reports 表 | S3, U2 |
| 3 opp_approvals 表 | S3, R7 |
| 4 产线种子数据 | S4 |
| 5 爬虫平台接入(内网+token) | S5, D6 |
| 6 热点软件推荐 | D1 |
| 7 每日AI招标展示 | D2 |
| 8 招标搜索 | D3, D7 |
| 9 详情+来源双链接 | D4 |
| 10 采集健康度 | D5 |
| 11 报告创建 | R1 |
| 12 报告更新+状态保护 | R2, R3 |
| 13 人工确认门禁(任务创建) | R4 |
| 14 确认回流 | R5 |
| 15 审批发起门禁 | R6, R7 |
| 16 审批结论回流 | R8 |
| 17 人工任务真实表结构 | R4, R7 |
| 18 报告列表页 | U1 |
| 19 报告 CRUD 全链 | U2 |
| 20 审批列表页+菜单 | U3, U4 |
| 21 i18n 双语 | U5 |
| 22 RBAC 鉴权 | A1, A2 |
## 问题归属
- 冒烟失败 → 报部署 Bugdescription 写明部署/环境根因),冒泡给 deploy_test
- 功能 fail → report_bug 落库,交 develop 走 Bug 闭环develop 修复 → test 复测)