Skip to main content

文档域测试策略

本页描述文档域(上传、处理、分块、版本管理等)的测试方法和关键用例。

测试分层

关键测试用例

上传与处理

测试场景覆盖范围关注点
单文件上传multipart 解析 + DB 写入文件类型/大小校验
URL 导入URL 校验 + SSRF 防护validate_url_for_ingest()
批量上传多文件并发部分失败处理
手动创建纯文本文档content 非空校验
处理流水线parsing → chunking → embedding → write各阶段状态转换
取消/重试状态机转换前置条件检查

分块与向量

测试场景覆盖范围关注点
Separator 分块SeparatorChunkerchunk 大小/overlap
Chunk CRUD手动创建/更新/删除权限 + vector_id 同步
Reembed重新向量化Milvus 更新一致性
Chunk 禁用/启用disabled_at 字段检索时过滤
Chunk Preview预览不入库quality_gate 计算

权限与安全

测试场景覆盖范围关注点
文档级 ACLaccess_mode 各值Security Trimming
批量权限更新batch/access部分失败处理
租户隔离跨租户不可见tenant_id 过滤

版本管理

测试场景覆盖范围关注点
版本列表GET /versionspipeline_hash 唯一
版本激活POST /activatechunks 切换
版本差异GET /versions/diff前后对比
版本删除DELETE /versions/{hash}级联清理

运行测试

# 文档域全量测试
pytest tests/ -k "document" -v

# 仅解析器测试
pytest tests/parsing/ -v

# 仅分块器测试
pytest tests/chunking/ -v

# 冒烟测试
python scripts/api_smoke.py --tag documents
测试依赖
  • 集成测试需要 PostgreSQL + Milvus + 对象存储
  • 解析器测试可能需要特定后端(如 mineru)
  • 环境变量 TEST_DATABASE_URL 必须配置

相关链接