策略概览
Softprobe 测试用声明式 YAML 策略(apiVersion: softprobe.ai/v1)控制行为,而非临时请求参数。策略按应用匹配、按 metadata.priority 合并,由 sp-boot 在运行时生效。
操作流程与策略配置分开阅读:
| 阶段 | 操作文档 | 策略配置 |
|---|---|---|
| 1 · 录制 | 如何录制 | 本节 RecordingPolicy |
| 2 · 回放 | 回放与对比 | 本节 MockPolicy、CompareRulePolicy |
逐字段说明与完整 YAML 示例:策略 YAML 指南 · CLI 策略索引
CLI 速查
sp policy recording validate -f recording.yaml --json
sp policy recording apply -f recording.yaml --json
sp policy mock apply -f mock.yaml --json
sp policy compare apply -f compare.yaml --json冲突时 metadata.priority 更高者生效。内置 priority 0 全局默认;应用策略请设 priority > 0。
按生命周期分阶段
| 阶段 | Kind | 何时配置 | CLI |
|---|---|---|---|
| 1 · 录制 | RecordingPolicy | 产生流量之前 | sp policy recording |
| 2 · 回放 | MockPolicy | 执行 sp replay run 之前 | sp policy mock |
| 2 · 回放 | CompareRulePolicy | 执行 sp replay run 之前 | sp policy compare |
完整生命周期:快速开始
RecordingPolicy
阶段 1 · 产生流量之前
控制 Agent 录什么:采样、时间窗口、操作包含/排除、序列化跳过、录制时时间 Mock。
- 采样 —
ratePerHundredSeconds(每 100 秒上限;0= 不录)、machineCountLimit(并发录制实例上限,省略 = 不限) - 时间窗口 —
daysOfWeek、from/to(Agent JVM 本地时区) - 操作过滤 —
exclude(黑名单 Glob);非空include时变为白名单模式 - 序列化跳过 —
serializeSkip按类名与字段名 timeMock— 录制时固定java.time.*
如何录制(操作步骤): 如何录制
YAML 字段与示例: 策略 YAML 指南 · RecordingPolicy
说明
spec.sensitiveData在 Agent 录制路径尚未生效;Mock 键噪声用matchTolerance,查看脱敏用SensitivePolicy(见 YAML 指南相关配置)。- 修改
operations包含/排除会影响回放调度的操作范围,无需单独改调度文档。
sp policy recording validate -f my-recording.yaml --jsonMockPolicy
阶段 2 · 回放之前
控制回放时依赖是否 Mock、Mock 键容差、跨应用依赖与无匹配 Mock 时的回退。
mockByDefault— 默认 Mock 全部依赖(skipMock为例外),或反之以forceMock为例外Category:operationGlob— 如HttpClient:/payment/**(不是Servlet等入口类型)matchTolerance— 忽略易变头、查询参数、body 路径multiServiceDependencies— 同会话内下游应用 Mockfallback—FAIL(默认)、PASS_THROUGH、RETURN_DEFAULT
内置全局策略 强制 Mock DynamicClass:SystemTime.** / RandomSource.**;用户 skipMock 无效。
YAML 字段与示例: 策略 YAML 指南 · MockPolicy
CompareRulePolicy
阶段 2 · 回放之前
控制回放差异对比中的噪声(非 Mock 行为)。
excludePaths/includePaths— JSON Pointer(支持 Glob)defaults.timeToleranceMs与 CELvalidations— 按规则丢弃差异(含按category忽略,如 DATABASE body)operationSpecs— 按入口操作覆盖(不要在selector上写操作名)
YAML 字段与示例: 策略 YAML 指南 · CompareRulePolicy
回放后用 sp replay diff 排查,再收紧策略而非改业务代码。
动态类(非 RecordingPolicy)
本地缓存等方法在动态类配置(控制台/API)登记,不在 RecordingPolicy 中。回放 Mock 通过 MockPolicy 的 UserDynamic / DynamicClass 规则控制。见 策略 YAML 指南 · 相关配置。
