自动测试¶
RulEuler 内置自动测试系统,能自动为知识包生成测试用例并执行验证。
工作原理¶
自动测试通过解析决策流 DAG 中所有节点的条件表达式,基于路径覆盖 + MC/DC 策略自动生成测试数据:
- 解析决策流中所有节点的条件(DecisionNode、RuleNode、ForkNode)
- 遍历 DAG 的所有 start→end 路径
- 为每条路径生成"命中数据"(满足所有条件)和"不命中数据"(逐个翻转条件)
- 执行测试用例,记录结果
测试层级¶
| 层级 | 名称 | 说明 |
|---|---|---|
| L0 | 静态冲突检测 | 检测决策表行重叠、规则集条件重叠、决策树分支不完备 |
| L1 | 条件覆盖测试 | 解析所有规则类型(规则集、决策表、决策树、评分卡),生成覆盖用例 |
| L2 | 输出分布回归 | 记录输出分布,后续运行自动比对变化 |
使用方式¶
在管理后台中,进入项目 → 自动测试页面:

- 点击"生成测试用例",系统自动分析知识包并生成用例
- 点击"运行"执行测试
- 查看测试报告,包含通过率、输出分布、变化明细
测试用例包¶
测试用例打包为不可变的"用例包",支持:
- 自动生成(基于规则分析)
- 手动导入(CSV/JSON 格式)
- 多次运行同一用例包进行回归比对
回归测试¶
首次运行自动标记为 baseline,后续运行与 baseline 比对:
- 输出一致 → SAME
- 输出变化 → CHANGED(高亮差异字段)
- 按输出变量统计分布变化百分比
当规则修改后重新运行测试,可以快速发现哪些输出发生了变化。
API¶
| 接口 | 说明 |
|---|---|
POST /api/autotest/generate |
生成测试用例包 |
POST /api/autotest/run |
执行测试运行 |
GET /api/autotest/run-status?runId=X |
查询运行进度 |
GET /api/autotest/report?runId=X |
查询测试报告 |