☰
Node构建JSON清单如何做最长连续失败段:用本地脚本建立可复核指标
2026/10/30 19:20:21 网站建设 项目流程

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 可以保留数值类型,不需要从彩色终端输出里猜测字段。

rows=json.loads(raw)ifany(r["ms"]<0forrinrows):raiseValueError()

计算本篇的指标

失败增加当前连续长度,成功立即清零,并维护历史最大值。这个指标严格依赖事件顺序,解析层不能为了整齐先按名称或耗时排序。

best=streak=0forrinrows:streak=streak+1ifr["code"]else0best=max(best,streak)result=best

对照独立期望值

独立期望值按每一段失败分别数出长度,再取最大值。对照时也可用全成功和全失败列表验证清零与累计的两端;如果数据来自多个并发进程,应先解决事件顺序,而不是先调计算公式。

want=1ifresult!=want:raiseValueError(result)print(result)

样本把失败事件分散到成功记录两侧,让总失败数大于最长连续段长度。

若只累计非零退出码,就会得到错误答案;保留原始顺序是这项检查成立的前提,因此读取阶段不做名称排序。

后续替换导出格式时,可以保留相同结构的记录与指标测试;改变指标定义时,则可以重复利用同一份输入样本,分别检查两类变化。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询