From dd6d6167448546059ba1de47bf672dfc608a418d Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 28 Aug 2026 17:28:02 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= =?UTF-8?q?=E6=96=B9=E6=A1=88=E2=80=94=E2=80=9427=E7=94=A8=E4=BE=8B?= =?UTF-8?q?=E8=A6=86=E7=9B=9622=E5=8A=9F=E8=83=BD=E7=82=B9(=E5=86=92?= =?UTF-8?q?=E7=83=9F5/=E6=95=B0=E6=8D=AE7/=E9=97=AD=E7=8E=AF8/UI5/RBAC2)?= =?UTF-8?q?=EF=BC=8Ctest=20agent=E7=BB=8Frun=5Fshell+playwright=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E6=B5=8F=E8=A7=88=E5=99=A8=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/test-cases.md | 87 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 docs/test-cases.md diff --git a/docs/test-cases.md b/docs/test-cases.md new file mode 100644 index 0000000..937e7a9 --- /dev/null +++ b/docs/test-cases.md @@ -0,0 +1,87 @@ +# 商机产线(pipeline-opportunity)测试用例方案 + +执行者:test agent(pipeline_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_general;appcodes 含 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=pending(NOT NULL 列 task_id/step_name/version 正确填充) | +| R5 | 人工确认回流 | 人工任务置 done → 报告 draft→confirmed,confirmed_by 落库 | +| R6 | 审批门禁 | draft 状态直接 initiate_approval → 拒绝「须先人工确认」(非法迁移拦截) | +| R7 | 发起审批 | confirmed 后发起 → opp_approvals initiated + 报告 approval_initiated + opp_dev_approval 人工任务 | +| R8 | 审批结论 | resolve approved→报告 approved;resolve rejected→报告 rejected 且可退回 draft 重来 | + +## 四、UI/CRUD(真浏览器,5 条) +| # | 用例 | 断言 | +|---|------|------| +| U1 | 报告列表页 | 登录后浏览器打开 /pipeline-opportunity/opp_reports/index.ui:200 且 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 等),无裸中文键 | + +## 五、RBAC(2 条) +| # | 用例 | 断言 | +|---|------|------| +| 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 | + +## 问题归属 +- 冒烟失败 → 报部署 Bug(description 写明部署/环境根因),冒泡给 deploy_test +- 功能 fail → report_bug 落库,交 develop 走 Bug 闭环(develop 修复 → test 复测)