Skip to content

审查回放差异

回放 跑完后,工作台会显示哪些用例失败了、为什么失败。本页讲在网页控制台里人工审查的流程——读一处 diff,接受那些不是真 bug 的差异。更喜欢命令行?sp replay case list --plan <planId>sp diagnose replay <planId> 给出同样的失败数据(见 回放与对比)。

大多数差异不是 bug。时间戳、随机 token、ID 每次调用都在变——它们永远会「不一样」,但并没有出错。你要做的,是接受它们,让真正的失败露出来。

接受一处差异:只改这一次,还是永久

让一处差异不再计数有两种方式,选对哪一种是关键:

  • 在这条用例上标记通过 —— 「这一次回放里,这条差异没问题。」 立即生效,只影响这一次回放。用于:你看过某条用例、确认它不是真 bug。
  • 配一条对比规则 —— 「以后每次回放,都别比这个字段。」 永久生效,影响所有未来回放。用于:某字段天生每次都不同(时间戳、随机 ID),本就不该参与比对。

一句话选:只想改这一次的结果 → 标记通过;想一劳永逸 → 配规则。

标记通过对比规则
作用范围只这一次回放以后每一次回放
持续多久一次性——下次回放就没了永久——存在策略里
用于你已经看过并接受的一条用例一个总在变的字段

规则只在下次回放才生效

一条对比规则不会动一次已经跑完的回放。要把新规则应用到你正在看的这次回放、又不重放,用 重新比对

打开一条用例,读它的差异

  1. 打开一次回放,选一个失败用例——左侧面板用红点列出它们。
  2. 点右边调用树里的一个 span

diff 打开:左边是录制响应,右边是回放响应。不一致的字段被高亮;头部显示这条用例有几处差异。

diff 在调用树旁打开

忽略一个字段

这是你最常用的操作。 像时间戳这样的字段每次回放都不同,你根本不想比它。

  1. 在 diff 里悬停那一行差异。左边缘会出现一个 eye-off 图标——点它。(或者右键那一行,或用顶部的 忽略规则 按钮。)
  2. 忽略此字段的差异
  3. 仅此用例

字段被划上删除线、差异消失、用例通过率更新。

忽略菜单

忽略得更大范围

仅此用例 只改你眼前这一条。但一个时间戳会在每一条用例上都不同,一条条忽略太累。要更大范围地不再比一个字段,在同一个菜单里选更大的范围:

忽略这个字段的范围何时生效
仅此用例只这一条用例立即
仅此接口这个接口的每一条用例下次回放
所有接口整个应用下次回放

后两个更大的范围会写一条对比规则,它下次回放才生效——所以你正在看的这次回放暂时不变。Softprobe 会给一个 重新比对 按钮,让你现在就应用它;见 重新比对

忽略所有同名字段

菜单里还有 忽略所有 "…" 字段——当同一个字段名(比如 updatedAt)出现在好几个地方、你想一次全清掉时很方便。

标记一条用例通过

有时差异是真的,但你能接受——一次故意的变更,或一次 Softprobe 造成的假差异。与其一个个忽略字段,不如接受整条用例

  1. 在失败用例上,点 标记通过
  2. 选一个原因:差异符合预期(设计如此),或 Softprobe 采集/对比问题
  3. 可选加个备注,然后确认。

用例移到通过、通过率更新。你的原因和备注会存下来供日后查看。

标记通过表单

重新比对:把规则应用到本次回放

你刚写的规则只在下次回放才起作用——它不会改变一次已经跑完的回放。重新比对 把你最新的规则应用到你正在看的这次回放,重新检查它已存的响应。它重放任何流量。

当你从 diff 里加了或删了一条规则,run 头部会出现一个 重新比对 按钮。点它。Softprobe 重新检查这次回放,把用例列表、计数、通过率一起更新。

重新比对完成,显示多少用例变了

重新比对不是回放

回放会把流量重新发到你的服务。重新比对只对已经存下的响应、按你当前的规则重新判定——什么都不会打到你的服务。

取消一次忽略

改主意了?右键那条删除线行,选 取消忽略(恢复比对)。字段就回到参与对比。

你不需要记得当初是怎么忽略的——Softprobe 会删掉挡着这处差异的东西(用例上的标记,或那条规则),并告诉你删了什么。如果规则配在全局默认里,它会指引你去对比规则页处理,而不是让你卡住。

查看已经忽略的一切

不用逐个打开 span,就能看到一条用例上忽略了什么:点用例顶部的 「N 处已忽略」 chip。一个面板会按调用分组,列出每个被忽略字段和挡下它的规则。悬停任一行就能就地取消忽略。

忽略总览面板

下一步

同一个字段在每条用例上都要忽略一遍?该把它沉淀成规则了 → 配置对比规则:一次配置,以后每次回放都不再误报。

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