E2E 测试框架
End-to-End Testing Framework
用轻量级 bash+curl 实现全面的 API E2E 测试,覆盖多用户场景和数据隔离
子问题
1.测试用户和数据注入
2.多用户场景覆盖
3.数据隔离验证
4.幂等性测试
5.CI 集成
6.软删除级联效应的端到端验证
7.Pack 安装去重的多用户组合测试
8.CI 环境与本地环境的测试数据差异化管理
各项目的解法1 solutions
Signals
横向对比
| 维度 | ClawFeed |
|---|---|
| 测试工具链 | 纯 bash+curl+sqlite3,零 npm devDependencies |
| 认证绕过 | SQLite 直接 INSERT 测试用户和 session,绕过 Google OAuth |
| 多用户覆盖 | 4 角色用户(创建者/竞争者/消费者/验证者)覆盖所有交互模式 |
| 数据隔离验证 | check+check_not 组合断言,正向确认+反向排除双重验证 |
| 断言机制 | 3 函数断言库(包含/排除/状态码),软失败最后汇总 |
| CI 集成 | GitHub Actions 3 job 并行(lint+test+audit),健康检查循环等待 |
| 测试数据管理 | ID 段隔离(100-199),setup→test→teardown 可重复循环 |
| 软删除测试 | 7 个用例覆盖 is_deleted 标记、级联影响、Pack 跳过僵尸源 |
最佳实践
1.SQLite 直接注入测试数据绕过 OAuth
2.测试用户 ID 段隔离(100-199)
3.setup→test→teardown 可重复循环
4.check+check_not 组合实现数据隔离双重验证
5.python3 替代 jq 做 JSON 解析减少 CI 依赖
6.CI 用独立 seed.sql(ID 从 1 开始,session 过期 2099)
7.角色化测试用户(创建者/竞争者/消费者/验证者)覆盖所有交互模式