diff --git a/tools/soak/run_soak.py b/tools/soak/run_soak.py index c3f9302..3838222 100644 --- a/tools/soak/run_soak.py +++ b/tools/soak/run_soak.py @@ -175,13 +175,15 @@ def _scoreboard(args: argparse.Namespace, env: dict[str, str]) -> None: except AssertionError as exc: verdicts.append((name, f"FAIL — {exc}")) - # 行数下界=请求数(每请求至少 1 行),上界容重试放大(每请求 ≤ max_attempts 行) + # 行数下界=请求数(每请求至少 1 行);上界 = 逐次尝试放大(每请求 ≤ max_attempts 行) + # + 终态行(scope 级失败/取消由 TelemetryMW 额外记一行,P5 全失败跑实证) + terminal_rows = sum(r["stats"]["failed"] + r["stats"]["cancelled"] for r in results) _check( "遥测完备(行数≥请求数,重试容差内)", sb.inv_rows_match_calls, rows, expected_calls=calls, - tolerance=calls * max(max_attempts - 1, 0) + sum(r["stats"]["cancelled"] for r in results), + tolerance=calls * max(max_attempts - 1, 0) + terminal_rows, ) _check("call_id 唯一", sb.inv_call_ids_unique, rows) rpm_conf = {}