Skip to content

Softprobe 测试

录制真实流量。回放时自动 Mock。无需手写用例即可对比。

Softprobe 测试面向 Java 服务的录制回放回归。以 -javaagent 挂载 Softprobe Java Agent,在后台采集入口 API 流量与对外依赖调用,随后在测试环境回放已录制用例:依赖由存储数据 Mock,结果自动对比。

本站三个产品

产品适用场景
平台需要 Istio/Envoy 网格采集、SESSIFY 会话上下文或可观测性仪表盘
测试(本节)需要 Java 录制回放、JVM Agent、策略与回放语义
CLIsp 命令自动化安装、回放与诊断

为什么选择录制回放

传统集成测试需要维护环境、造数与手写用例。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 快速入门
仪表盘 / 工作台(可选)可视化差异与链路查看

录制 → 回放 → 对比(简述)

  1. 录制 — Agent 在应用处理真实请求时采集入口流量(如 HTTP Servlet)与依赖调用(HttpClientDatabaseRedis 等)。
  2. 存储 — 后端持久化每次交互;回放热路径使用 Redis Mock 缓存。
  3. 回放 — 调度服务将录制的入口请求发到测试实例targetEnv URL);Agent 返回录制的依赖响应,不访问真实下游。
  4. 对比 — 引擎对比录制与回放流量;策略定义忽略项与匹配严格度。

详情:如何录制 · 工作原理 · 回放与对比

平台 Agent ≠ Java Agent

平台SP-Istio Agent 运行在 Envoy 侧车,采集网格 HTTP 流量。Softprobe 测试使用以 -javaagent 挂载的 JVM Agent。二者解决的问题不同;在 SaaS 部署中可同时接入同一后端做关联分析。

适合阅读本节的人

  • 首次接触录制回放的 Java 开发者
  • 无需完整下游栈即可做回归的 QA / 发布工程师
  • 在 K8s 或镜像中配置 sp-boot 与 Agent 启动的 平台工程师
  • 自动化作者 — 先理解概念,再看 CLI 概览 中的 --json 约定

快速链接

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