JSON 解码只能确认格式不代表字段齐全把第三方日志转换成本文中间格式时应另外核对键名、单位和类型。本文从Node构建JSON清单的受控中间格式读取记录统一使用毫秒和退出码。为构建步骤设置一个明确耗时预算可以直接找出违反约定的执行。先固定可回放的数据前端构建包装器可在一次运行结束后把各阶段结果整理为受控中间格式交给离线看板回放。这里采用对象数组保存完整快照故意留下两次同名测试使失败尝试不会被后来的成功覆盖。验收先确认数组成员仍是独立事件再检查耗时与退出状态没有被显示层改写。importjson raw[{step:build,ms:120,code:0},{step:test,ms:40,code:1},{step:test,ms:60,code:0},{step:pack,ms:80,code:2}]恢复结构并统一字段清单顶层是记录数组每条记录包含步骤名、毫秒数和退出码。读取结构化 JSON 可以保留数值类型不需要从彩色终端输出里猜测字段。rowsjson.loads(raw)ifany(r[ms]0forrinrows):raiseValueError()计算本篇的指标只有严格超过一百毫秒的记录才算越界正好等于预算仍符合要求。预算与输入采用相同单位输出保留全部命中执行。budget100result[r[step]forrinrowsifr[ms]budget]对照独立期望值期望名称列表来自逐条比较耗时与预算。修改阈值后要一并调整独立期望并额外补一条正好等于阈值的样本如果只检查输出数量即使返回了错误任务名称也可能被掩盖。want[build]ifresult!want:raiseValueError(result)print(result)输入包含预算两侧的耗时值且保留执行结果不同的任务。是否超预算与是否执行成功是两个维度失败任务也可能很快成功任务也可能超时因此这个筛选条件不查看退出码。预算是本地演示阈值不是所有项目的性能标准。生产阈值需要结合任务职责、运行环境和历史分布决定并保留变更记录。扩展耗时预算越界检查之前补充空输入、单条记录与重复步骤的测试再核对单位和排序方式。