Skip to content

策略概览

Softprobe 测试用声明式 YAML 策略apiVersion: softprobe.ai/v1)控制行为,而非临时请求参数。策略按应用匹配、按 metadata.priority 合并,由 sp-boot 在运行时生效。

操作流程策略配置分开阅读:

阶段操作文档策略配置
1 · 录制如何录制本节 RecordingPolicy
2 · 回放回放与对比本节 MockPolicyCompareRulePolicy

逐字段说明与完整 YAML 示例:策略 YAML 指南 · CLI 策略索引

CLI 速查

bash
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(并发录制实例上限,省略 = 不限)
  • 时间窗口daysOfWeekfrom / to(Agent JVM 本地时区)
  • 操作过滤exclude(黑名单 Glob);非空 include 时变为白名单模式
  • 序列化跳过serializeSkip 按类名与字段名
  • timeMock — 录制时固定 java.time.*

如何录制(操作步骤): 如何录制

YAML 字段与示例: 策略 YAML 指南 · RecordingPolicy

说明

  • spec.sensitiveData 在 Agent 录制路径尚未生效;Mock 键噪声用 matchTolerance,查看脱敏用 SensitivePolicy(见 YAML 指南相关配置)。
  • 修改 operations 包含/排除会影响回放调度的操作范围,无需单独改调度文档。
bash
sp policy recording validate -f my-recording.yaml --json

MockPolicy

阶段 2 · 回放之前

控制回放时依赖是否 Mock、Mock 键容差、跨应用依赖与无匹配 Mock 时的回退。

  • mockByDefault — 默认 Mock 全部依赖(skipMock 为例外),或反之以 forceMock 为例外
  • Category:operationGlob — 如 HttpClient:/payment/**不是 Servlet 等入口类型)
  • matchTolerance — 忽略易变头、查询参数、body 路径
  • multiServiceDependencies — 同会话内下游应用 Mock
  • fallbackFAIL(默认)、PASS_THROUGHRETURN_DEFAULT

内置全局策略 强制 Mock DynamicClass:SystemTime.** / RandomSource.**;用户 skipMock 无效。

YAML 字段与示例: 策略 YAML 指南 · MockPolicy

完整依赖分类列表


CompareRulePolicy

阶段 2 · 回放之前

控制回放差异对比中的噪声(非 Mock 行为)。

  • excludePaths / includePaths — JSON Pointer(支持 Glob)
  • defaults.timeToleranceMs 与 CEL validations — 按规则丢弃差异(含按 category 忽略,如 DATABASE body)
  • operationSpecs — 按入口操作覆盖(不要selector 上写操作名)

YAML 字段与示例: 策略 YAML 指南 · CompareRulePolicy

回放后用 sp replay diff 排查,再收紧策略而非改业务代码。


动态类(非 RecordingPolicy)

本地缓存等方法在动态类配置(控制台/API)登记,不在 RecordingPolicy 中。回放 Mock 通过 MockPolicyUserDynamic / DynamicClass 规则控制。见 策略 YAML 指南 · 相关配置

相关文档

零代码改动 · 全上下文可见性 · 成本优化