Skip to content

sp replay diff:差异与对比 ​

AI 代理何时使用: 深挖一条失败用例 —— 差异消息体、对比 JSON。查关联日志用 sp logs。

子命令 ​

子命令说明
diff get <diffId>基准与本次的消息体(产物文件)
compare全链路对比结果
mock-tree <replayId>该次回放的 Mock 树
noise query查询噪音规则
noise exclude排除噪音(-f + --confirm)
realtime …实时回放队列(见下文)

示例 ​

bash
sp replay diff get diff-abc --out-dir .sp-work --json
sp replay compare --trace-id t1 --replay-id r1 --out-dir .sp-work --json
sp logs --trace-id <trace-id> --since 2026-06-27T10:00:00Z --until 2026-06-27T10:05:00Z --json
sp replay mock-tree replay-uuid --json

JSON 输出(diff get) ​

json
{
  "ok": true,
  "command": "replay diff get",
  "data": {
    "diffId": "abc",
    "artifact": ".sp-work/diff-abc.json",
    "summary": {
      "diffId": "abc",
      "diffResultCode": 1,
      "categoryName": "ResponseBody"
    }
  }
}

产物文件中是解码后的 baseMsg 和 testMsg(能解析时为 JSON)。

JSON 输出(compare) ​

json
{
  "ok": true,
  "command": "replay compare",
  "data": {
    "replayId": "r1",
    "traceId": "t1"
  }
}

带 --plan-item 时,全链路对比详情会写入 --out-dir:

json
{
  "ok": true,
  "command": "replay compare",
  "data": {
    "artifact": ".sp-work/compare-t1.json",
    "replayId": "r1",
    "traceId": "t1",
    "summary": {
      "planItemId": "item-abc"
    }
  }
}

JSON 输出(mock-tree) ​

json
{
  "ok": true,
  "command": "replay mock-tree",
  "data": {
    "replayId": "replay-uuid",
    "artifact": ".sp-work/mock-tree-replay-uuid.json"
  }
}

调用树总是写到 data.artifact 指向的文件里,不会直接放在输出中。

JSON 输出(noise query) ​

json
{
  "ok": true,
  "command": "replay noise query",
  "data": {
    "interfaceNoiseItemList": [
      {
        "categoryName": "ResponseBody",
        "operationName": "GET /api/orders/{id}",
        "path": "data.timestamp",
        "reason": "Dynamic timestamp"
      }
    ]
  }
}

JSON 输出(noise exclude) ​

json
{
  "ok": true,
  "command": "replay noise exclude",
  "data": true
}

REST 接口对照 ​

子命令方法路径
diff getGET/api/report/queryDiffMsgById/{id}
comparePOSTschedule /api/compareCase + 报告接口
mock-treeGET/api/storage/replay-mock-tree/{replayId}
noise queryGET/api/queryNoise
noise excludePOST/api/excludeNoise

实时回放 ​

子命令路径
realtime createPOST /api/createRealTimePlan
realtime queue pause <planId>GET /api/queue/control/pause?planId=...(--confirm)
realtime queue resume <planId>GET /api/queue/control/resume?planId=...(--confirm)
realtime logPOST /api/realtime/log/query

替代 sp_api ​

sp_apisp
diff_detailsp replay diff get
compare_resultsp replay compare
replay_log_overviewsp logs --trace-id …
download_replay_logssp logs --trace-id … → 写文件 + grep

捕获 Session · 审查 Steps · 改进关键所在