- 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>
45 lines
2.6 KiB
Markdown
45 lines
2.6 KiB
Markdown
# 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。
|