Softprobe 测试
录制真实流量。回放时自动 Mock。无需手写用例即可对比。
Softprobe 测试面向 Java 服务的录制回放回归。以 -javaagent 挂载 Softprobe Java Agent,在后台采集入口 API 流量与对外依赖调用,随后在测试环境回放已录制用例:依赖由存储数据 Mock,结果自动对比。
本站三个产品
| 产品 | 适用场景 |
|---|---|
| 平台 | 需要 Istio/Envoy 网格采集、SESSIFY 会话上下文或可观测性仪表盘 |
| 测试(本节) | 需要 Java 录制回放、JVM Agent、策略与回放语义 |
| CLI | 用 sp 命令自动化安装、回放与诊断 |
为什么选择录制回放
传统集成测试需要维护环境、造数与手写用例。Softprobe 测试则:
- 零业务代码改动 — 通过
sp-agent.jar做字节码织入 - 真实流量带来高覆盖 — 生产或预发请求直接成为回放用例
- 回放环境隔离 — 数据库、HTTP 客户端、Redis、RPC、缓存等由录制数据 Mock,测试环境无需真实下游
- WRITE 路径更安全 — 回放依赖行为不会污染共享库表
- 降低对比噪声 — 对比规则、时间 Mock、忽略节点处理时间戳、随机 ID 与环境差异字段
组件分工
| 组件 | 作用 |
|---|---|
| 你的 Java 服务 | 被测应用,以 -javaagent:…/sp-agent.jar 启动 |
| Softprobe Java Agent | 运行时录制与回放;回放阶段 Mock 依赖 |
sp-boot 后端(:8090) | 存储用例(MongoDB)、下发策略、执行回放计划、计算差异 |
sp CLI(可选) | 注册应用、应用策略、发起回放、排查失败 — 见 CLI 快速入门 |
| 仪表盘 / 工作台(可选) | 可视化差异与链路查看 |
录制 → 回放 → 对比(简述)
- 录制 — Agent 在应用处理真实请求时采集入口流量(如 HTTP
Servlet)与依赖调用(HttpClient、Database、Redis等)。 - 存储 — 后端持久化每次交互;回放热路径使用 Redis Mock 缓存。
- 回放 — 调度服务将录制的入口请求发到测试实例(
targetEnvURL);Agent 返回录制的依赖响应,不访问真实下游。 - 对比 — 引擎对比录制与回放流量;策略定义忽略项与匹配严格度。
平台 Agent ≠ Java Agent
平台 的 SP-Istio Agent 运行在 Envoy 侧车,采集网格 HTTP 流量。Softprobe 测试使用以 -javaagent 挂载的 JVM Agent。二者解决的问题不同;在 SaaS 部署中可同时接入同一后端做关联分析。
适合阅读本节的人
- 首次接触录制回放的 Java 开发者
- 无需完整下游栈即可做回归的 QA / 发布工程师
- 在 K8s 或镜像中配置
sp-boot与 Agent 启动的 平台工程师 - 自动化作者 — 先理解概念,再看 CLI 概览 中的
--json约定
快速链接
- 快速开始 — 生命周期与前置条件
- 如何录制 — 阶段 1:产生用例
- Java Agent — 挂载、JVM 参数、生产安全
- 策略概览 — 按阶段配置 YAML
- 回放与对比 — 阶段 2:回归运行
- Webhook 与 CI/CD — 部署后触发回放与流水线门禁
- 支持的框架
- 用
sp端到端实践
