4.9 KiB
4.9 KiB
商机产线(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 复测)