- 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>
2.6 KiB
2.6 KiB
DC-FAILOVER —— vstore 宕机 BFF 兜底演练 runbook(受控)
对应用例:DC-FAILOVER-01~03(test_case_report.md §3.13)。 只有 TL 在场并明确指令时执行。演练对象是 TL 启动的 dev 实例(非生产端口), 严禁触碰生产 8090/8091/5180 与运行中的生产进程。
前置
- TL 已启动:dev BFF(非生产端口,指向 vstore)与受控 vstore 实例(加密落盘开启)。
- 记录端口:BFF=,vstore=,vault 目录=____(写入轮次记录环境栏)。
- 测试 agent 确认有 vstore 进程的启停权限与命令(vstore 启动脚本 deploy/vstore_restart.sh,由 dev1 交付)。
演练步骤(按序执行,逐条留痕到 test_case_report.md 实测列)
DC-FAILOVER-01 入库链路宕机
curl http://BFF/api/health记录基线(应 200)。- 停止 vstore 进程(记录停的方式与 PID)。
curl -F "file=@样例.docx" http://BFF/api/docgen/library。- 检查点:返回错误信封
{"ok":false,"error":{...}}(HTTP 5xx 或 4xx,按契约);不得出现 200 假成功。 - 检查点:
curl http://BFF/api/health仍 200(BFF 不崩)。
- 检查点:返回错误信封
- 留痕:状态码、错误 code、BFF health 状态。
DC-FAILOVER-02 生成链路宕机
- vstore 保持宕机。
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 兜底断言,单独记录)。
- 留痕:artifact status、md 中占位提示、耗时。
DC-FAILOVER-03 恢复
- 重启 vstore(记录启动命令与日志路径)。
- 再次执行 DC-FAILOVER-01 的入库请求 → 应成功(功能自动恢复,无人工干预)。
- 保密断言复验:
ls -1 <vault>→ 仅.enc与index.json;grep -r <样例明文标志串> <vault>→ 无命中。
- 留痕:恢复后入库结果、ls 结果、grep 结果。
回填要求
演练结束后,在 test_case_report.md 中 DC-FAILOVER-01~03 三行的实测列各追加本轮留痕(格式 R1: 状态码/现象/结论),并在轮次记录区填写结束汇总。任何与契约不一致的偏差(如错误码不同)记入 FAIL 明细并同步 TL。