2026/10/30 19:22:53

Node构建JSON清单如何做最长连续失败段:用本地脚本建立可复核指标

Node构建JSON清单如何做最长连续失败段:用本地脚本建立可复核指标 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()计算本篇的指标失败增加当前连续长度成功立即清零并维护历史最大值。这个指标严格依赖事件顺序解析层不能为了整齐先按名称或耗时排序。beststreak0forrinrows:streakstreak1ifr[code]else0bestmax(best,streak)resultbest对照独立期望值独立期望值按每一段失败分别数出长度再取最大值。对照时也可用全成功和全失败列表验证清零与累计的两端如果数据来自多个并发进程应先解决事件顺序而不是先调计算公式。want1ifresult!want:raiseValueError(result)print(result)样本把失败事件分散到成功记录两侧让总失败数大于最长连续段长度。若只累计非零退出码就会得到错误答案保留原始顺序是这项检查成立的前提因此读取阶段不做名称排序。后续替换导出格式时可以保留相同结构的记录与指标测试改变指标定义时则可以重复利用同一份输入样本分别检查两类变化。