pipeline-llm 测试用例(部署到测试环境后全部执行)
测试环境:pipeline@pipeline.opencomputing.cn /d/pipeline/pipeline-app
验收标准:浏览器真实执行(curl 不算通过)+ 数据库事实核验
A. 部署与集成(5 例)
| # |
用例 |
步骤 |
预期 |
| A1 |
服务启动 |
重启 pipeline_app |
9090 返回 200,日志有 [pipeline_llm] loaded |
| A2 |
建表完整 |
SHOW TABLES LIKE 'llm_%' |
8 张表齐全 |
| A3 |
菜单入口 |
浏览器登录→主菜单 |
「模型管理」项存在,点击打开 /llm 页面(非空白) |
| A4 |
RBAC |
未登录访问 /llm/index.ui |
401/跳转登录;登录后 200 |
| A5 |
兼容回退 |
现有驾驶舱对话(走旧 llm 表模型) |
正常回复,不因新模块中断 |
B. 供给侧配置(6 例)
| # |
用例 |
步骤 |
预期 |
| B1 |
供应商+端点目录 |
建供应商,endpoints 配国内+国外两端点 |
保存成功,列表可见两端点 |
| B2 |
账号+充值 |
建账号绑定 B1 供应商,选国内端点,充值 100 |
balance=100,total_recharge=100,流水有 recharge 行 |
| B3 |
api_key 加密 |
查库 B2 账号 api_key |
密文(非明文),调用时能解密使用 |
| B4 |
模型注册+挂定价 |
建模型挂 vendor+ppid+capability=t2t |
保存成功,ppid 关联可见 |
| B5 |
适配模板 |
内置 openai-chat profile 存在 |
request/response 模板非空,参数 schema 合法 |
| B6 |
端点探测 |
账号选用不存在的端点下标 |
保存时校验拒绝(防死配置) |
C. 需求侧治理(5 例)
| # |
用例 |
步骤 |
预期 |
| C1 |
组织策略 |
建组织策略:主模型=B4,备模型空,端点 any |
保存成功 |
| C2 |
组织充值 |
组织池充值 50 |
balance=50,流水有记录 |
| C3 |
个人限额 |
建个人配额:额度 10、QPM 5 |
保存成功 |
| C4 |
组织限流 |
同组织 1 分钟内发起 >QPM 次调用 |
超限请求返回「组织限流」明确错误 |
| C5 |
个人限额耗尽 |
个人连续调用至额度用完 |
后续请求返回「个人额度不足」,不影响同组织他人 |
D. 调用门禁链(7 例)
| # |
用例 |
步骤 |
预期 |
| D1 |
正常调用 |
配置齐全后发起一次对话调用 |
成功返回,usage 流水 1 条(双维度金额>0) |
| D2 |
预授权结算 |
D1 调用前后查组织池余额 |
冻结→释放,最终扣减=实际 charge |
| D3 |
账号余额不足跳过 |
账号 A 余额 0、账号 B 有余额 |
调用自动走 B,A 不消耗 |
| D4 |
429 轮转 |
mock 账号 A 端点返回 429 |
自动切同账号另一端点或账号 B,调用成功 |
| D5 |
主备容错 |
主模型全部账号不可用 |
自动降备模型,调用成功,日志记录降级 |
| D6 |
must 端点 |
策略 must_domestic,仅国际端点可用 |
报错冒泡(绝不跨端点),错误信息明确 |
| D7 |
机构未配置 |
无策略无余额的机构调用 |
冒泡提示「未配置模型/余额」,不静默失败 |
E. 记账与用量(4 例)
| # |
用例 |
步骤 |
预期 |
| E1 |
双维度流水 |
D1 后查 llm_usage |
同行含成本侧 cost + 消费侧 charge,ppid 冗余正确 |
| E2 |
账号对账 |
账号余额 = 充值 - Σcost |
数值吻合 |
| E3 |
组织对账 |
组织池余额 = 充值 - Σcharge |
数值吻合 |
| E4 |
用量查询页 |
用量列表按组织/模型/时间筛选 |
筛选结果正确,金额汇总与流水一致 |
F. 回归(3 例)
| # |
用例 |
步骤 |
预期 |
| F1 |
待办动态表单 |
触发冒泡→待办内提交 |
既有功能不受影响 |
| F2 |
工作空间 |
开发产线打开工作空间 |
仓库树正常(本模块改动不波及) |
| F3 |
驾驶舱对话 |
完整一轮开发产线对话 |
正常,模型解析走新链路 |
共计 30 例。执行报告逐条记录:实际命令/截图路径 + 数据库核验结果 + 结论(通过/失败/跳过及原因)。