|
|
@@ -10,6 +10,10 @@ r"""P12-A:Java 后端迁移的**裁判**——契约端点逐一比对 Java
|
|
|
用法:
|
|
|
python scripts/java_contract_parity.py [--gateway URL] [--python-base /detail] [--java-base /java]
|
|
|
[--require kpi,fleet,...] [--limit N]
|
|
|
+ [--java-kinds detail_api]
|
|
|
+
|
|
|
+★预热:比对前两侧各 GET 一次(丢弃结果)再取第二次 —— 带"按窗重算/进程内缓存"的端点(如 /api/fleet)
|
|
|
+ 冷启时点不同会报假差异(实逮 13≠15,预热后均 15)。
|
|
|
"""
|
|
|
from __future__ import annotations
|
|
|
|
|
|
@@ -111,6 +115,10 @@ def main() -> int:
|
|
|
# ★ 一律真的问两侧:Java 走 /java 前缀、Python 走 /detail 前缀(灰度期两个并存入口)
|
|
|
jurl = a.gateway.rstrip('/') + a.java_base + path
|
|
|
purl = a.gateway.rstrip('/') + a.python_base + path
|
|
|
+ # ★预热:该端点可能带"按窗重算 + 进程内缓存"(如 /api/fleet),冷启时点不同会报假差异。
|
|
|
+ # 各取一次丢弃结果,再取第二次做真正比对 —— 这样比的是**稳态**行为。
|
|
|
+ get(jurl)
|
|
|
+ get(purl)
|
|
|
js, jb = get(jurl)
|
|
|
ps, pb = get(purl)
|
|
|
# ★只按 HTTP 状态判定(曾按正文里是否有 "404" 判 ⇒ 把"已实现但正文含该字样"的端点误判为未实现)
|