Files
PlantAI-rag-new/tests/docgen/run_failover.md
T
jerryandClaude Fable 5 5888e1d5c1 test(docgen): 测试治理资产——131 条验收用例 + 三轮留痕 + E2E/回归套件
- tests/docgen/:DC-UNIT/API/CONF/E2E/UI/REGRESSION/PERF 分组用例与可复跑脚本,报告逐条留痕(R1-R3 全记录)
- 意图 30 条前后端同表双跑(pytest + node)
- Playwright headless:docgen-ui/docgen-regression spec + b3 benchpanel 第 5 TAB 断言更新

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-03 21:13:47 +08:00

2.6 KiB
Raw Blame History

DC-FAILOVER —— vstore 宕机 BFF 兜底演练 runbook(受控)

对应用例:DC-FAILOVER-01~03(test_case_report.md §3.13)。 只有 TL 在场并明确指令时执行。演练对象是 TL 启动的 dev 实例(非生产端口), 严禁触碰生产 8090/8091/5180 与运行中的生产进程。

前置

  1. TL 已启动:dev BFF(非生产端口,指向 vstore)与受控 vstore 实例(加密落盘开启)。
  2. 记录端口:BFF=,vstore=,vault 目录=____(写入轮次记录环境栏)。
  3. 测试 agent 确认有 vstore 进程的启停权限与命令(vstore 启动脚本 deploy/vstore_restart.sh,由 dev1 交付)。

演练步骤(按序执行,逐条留痕到 test_case_report.md 实测列)

DC-FAILOVER-01 入库链路宕机

  1. curl http://BFF/api/health 记录基线(应 200)。
  2. 停止 vstore 进程(记录停的方式与 PID)。
  3. curl -F "file=@样例.docx" http://BFF/api/docgen/library。
    • 检查点:返回错误信封 {"ok":false,"error":{...}}(HTTP 5xx 或 4xx,按契约);不得出现 200 假成功。
    • 检查点:curl http://BFF/api/health 仍 200(BFF 不崩)。
  4. 留痕:状态码、错误 code、BFF health 状态。

DC-FAILOVER-02 生成链路宕机

  1. vstore 保持宕机。
  2. curl -X POST http://BFF/api/docgen/generate -H 'Content-Type: application/json' -d '{"description":"帮我写一份年度工作总结","session_id":"failover-1","library_ids":[]}'。
    • 检查点:检索失败 → 空模版集合,生成跳过模版,不中断(artifact 正常 done,template_name 为空)。
    • 检查点:若指定了已入库 library_ids,document 拉取失败 → 该资料缺失占位提示出现在 md 中("资料缺失"字样),不阻断生成。
    • 检查点:若 LLM 亦不可用,生成返回错误信封(不属于 vstore 兜底断言,单独记录)。
  3. 留痕:artifact status、md 中占位提示、耗时。

DC-FAILOVER-03 恢复

  1. 重启 vstore(记录启动命令与日志路径)。
  2. 再次执行 DC-FAILOVER-01 的入库请求 → 应成功(功能自动恢复,无人工干预)。
  3. 保密断言复验:
    • ls -1 <vault> → 仅 .enc 与 index.json;
    • grep -r <样例明文标志串> <vault> → 无命中。
  4. 留痕:恢复后入库结果、ls 结果、grep 结果。

回填要求

演练结束后,在 test_case_report.md 中 DC-FAILOVER-01~03 三行的实测列各追加本轮留痕(格式 R1: 状态码/现象/结论),并在轮次记录区填写结束汇总。任何与契约不一致的偏差(如错误码不同)记入 FAIL 明细并同步 TL。