34 lines
1.8 KiB
Markdown
34 lines
1.8 KiB
Markdown
# 测试报告
|
||
|
||
## 性能测试
|
||
|
||
| 测试项 | 性能指标 (v1.1.6) | 备注 |
|
||
| :--- | :--- | :--- |
|
||
| **BenchmarkTableSet** | ~760,000 ns/op | 包含 Schema 验证、身份注入、1-RTT 写入及自动 ID 生成 |
|
||
| **鉴权开销 (RTT)** | 1-RTT | 核心鉴权逻辑已合并至主查询/写入 SQL,无额外网络往返 |
|
||
| **内存展平查询** | $O(1)$ | 字段有效性验证与策略检索均通过内存缓存实现,无递归开销 |
|
||
|
||
## 覆盖场景
|
||
|
||
1. **零开销 ABAC 鉴权引擎**
|
||
- 验证了在开启 `enableRLS` 时,系统自动注入 `creator = ? OR (conditions)`。
|
||
- 验证了 `checkAuth` 在单条操作(Get/Remove)时的 1-RTT 性能闭环。
|
||
2. **多级权限继承与环状检测**
|
||
- 测试通过了 `Manager -> Clerk` 的权限继承,Manager 自动获得 Clerk 的所有表级访问权。
|
||
- 验证了循环继承(A -> B -> A)场景下系统依然能保持稳定运行,不发生内存溢出或死锁。
|
||
3. **自主授权体系**
|
||
- 验证了普通用户(非 `_system`)只有在对目标表拥有 `full` 权限时,才能通过 `SetPolicy` 为第三方授权。
|
||
- 验证了 `inherit` 类型的策略被严格限制在 `SystemUserID` 权限下操作。
|
||
4. **结构化数据操作与隔离**
|
||
- 测试通过了包含和排除 system userID 时的增删改查。
|
||
- `Auth` 方法通过携带不同 userID 后实现了 `creator` 的数据隔离限制。
|
||
5. **生命周期 Hook 触发机制**
|
||
- `OnUpdatingRow` 触发并允许修改将要入库的行数据。
|
||
- `OnUpdatedRows` 在更新结束后被触发。
|
||
- `OnRemovedRows` 在成功移除后被触发返回对应的 ID 集合。
|
||
6. **SQL注入黑盒测试**
|
||
- Table 名称注入被验证并阻止。
|
||
- Field 查询字段注入被验证并阻止。
|
||
- Join On 条件验证被拦截。
|
||
- OrderBy 查询的语句结构注入被拦截。
|