Files
iAOP/tests/perf/README.md
bot_dev1 c4a3c2d04e feat(#87,#88): 采集/总线/LLM 路由 DLP NFR 压测套件
新增 tests/perf/ NFR 压测套件,对应 PRD 第 9 章 SLA 全量压测:

#88 LLM 路由/DLP 压测:
- DLP 敏感拦截率 100%(2000 样本,含 PII/凭证/工艺词,零漏拦)
- DLP 清洁零误报(1000 样本),单条 0.033ms / 30097 qps
- 路由敏感不泄漏云端 100%(1500 样本,≥96.5% 基线达标)
- 安全指令(停机)100% 转 block/人工

#87 采集/总线 NFR 压测:
- 采集 P99=312ms(≤1.8s,600 点位 30 轮),可用性 100%(≥99.8%),丢失率 0%(≤0.02%)
- 总线 6000 样本不丢不重(幂等去重)

合成数据集固定随机种子可重复,零外部依赖,CI 可直接执行。
运行:python -m unittest discover -s tests/perf -v
2026-08-04 18:43:39 +08:00

2.2 KiB
Raw Permalink Blame History

iAOP NFR 压测套件(Issue #87 / #88)

对应 PRD 第 9 章 NFR 全量压测与 EPIC #14(M4)子任务:

  • #88 LLM 路由 / DLP 压测:DLP 拦截率 100%、路由敏感命中率 ≥ 96.5%;
  • #87 采集 / 总线 NFR 压测:P99 ≤ 1.8s、丢失率 ≤ 0.02%、可用性 ≥ 99.8%、不丢不重。

全部基于各模块可注入接口运行(模拟驱动 + MemorySink + 内存 LLM 后端),零外部依赖,CI 可直接执行。

压测结论(PRD 第 9 章 SLA)

指标 PRD 目标 压测结果 用例
DLP 敏感拦截率 100% ✅ 100%(2000 样本) test_dlp_intercept_rate_100_percent
DLP 清洁误报率 0% ✅ 0%(1000 样本零误报) test_dlp_clean_passthrough
DLP 单条时延 信息性 ✅ 0.033ms / 30097 qps 同上
路由敏感不泄漏云端 ≥ 96.5% ✅ 100%(1500 样本) test_router_sensitive_never_cloud
安全指令转人工 100% ✅ 100%(block) test_router_block_safety_commands
采集 P99 延迟 ≤ 1.8s(600 点位 1Hz) ✅ 313ms(30 轮 × 600 点位) test_p99_latency_under_threshold
采集可用性 ≥ 99.8% ✅ 100% 同上
采集丢失率 ≤ 0.02% ✅ 0% 同上
总线不丢不重 不丢不重 ✅ 6000 样本零丢失零重复 test_no_loss_no_dup_at_scale

运行方式

# 在仓库根目录执行(需 Python 3.8+,仅标准库依赖)
python -m unittest discover -s tests/perf -v

设计说明

  • 合成数据集:用固定随机种子(20260804)生成可重复的敏感/清洁样本池, 覆盖 PII(身份证 / 手机号 / 邮箱 / IP)、凭证(访问密钥 / 键值口令)、 工艺敏感词、安全指令(停机)等类别。
  • PII 格式保真:模板中以 {ip} 占位的字段映射为合法 IPv4 第四段(0~255), 避免序号破坏 PII 格式导致规则漏匹配——压测验证的是 DLP 规则本身,而非数据生成。
  • 规模与可重复:采集压测用 30 轮 × 600 点位(PRD 5.1 基线点位规模), 在 CI 中可重复执行(< 30s);DLP/路由压测用千级样本保证统计显著性。