|
|
@@ -186,6 +186,13 @@ with open(trend, 'a', encoding='utf-8') as f:
|
|
|
f.write(f"{ts}\ttotal={total}\tBIZ_OK={ok}\trate={rate}%\t"
|
|
|
f"fixed={len(fixed)}\tregressed={len(regressed)}\t"
|
|
|
f"NOT_FOUND={cats.get('NOT_FOUND',0)}\tSERVER_ERR={cats.get('SERVER_ERR',0)}\n")
|
|
|
+
|
|
|
+# 导出真实指标供 bash 提交信息使用(修复 rate/fixed/regressed 在子进程不可见导致
|
|
|
+# commit 失败 + 假通过率 ?%;bash 侧 set -u 下 unbound variable 亦会导致整条命令展开失败)
|
|
|
+_metrics_path = os.path.join(os.path.dirname(trend), 'interface_test_metrics.env')
|
|
|
+with open(_metrics_path, 'w', encoding='utf-8') as _mf:
|
|
|
+ _mf.write(f"RATE={rate}\nFIXED_COUNT={len(fixed)}\nREGRESSED_COUNT={len(regressed)}\n")
|
|
|
+
|
|
|
print(report)
|
|
|
print(f"\n[趋势] 已写入 {trend}")
|
|
|
PY
|
|
|
@@ -198,10 +205,14 @@ git add -f ops_interface_smoke.py
|
|
|
# EXTRA_CASES 仅在存在且有内容时才加入,避免缺失路径使整个 git add 失败(旧逻辑缺陷)
|
|
|
git add -f INTERFACE_TEST_REPORT.md interface_test_report.tsv cfc-frontend/INTERFACE_TEST_MATRIX.md
|
|
|
[ -s "$EXTRA_CASES" ] && git add -f "$EXTRA_CASES"
|
|
|
+# 读取 Python 计算出的真实指标(修复 set -u 下 unbound variable 致 commit 失败 + 假通过率 ?%)
|
|
|
+RATE="?"; FIXED_COUNT=0; REGRESSED_COUNT=0
|
|
|
+METRICS_ENV="$REPO_DIR/interface_test_metrics.env"
|
|
|
+[ -f "$METRICS_ENV" ] && . "$METRICS_ENV"
|
|
|
if git diff --cached --quiet; then
|
|
|
log "无测试结果变更,跳过提交"
|
|
|
else
|
|
|
- git commit -m "test(interface): 接口冒烟闭环 $(date '+%Y-%m-%d %H:%M') — 通过率 ${rate:-?}% (fix=$(echo $fixed|wc -l) reg=$(echo $regressed|wc -l))" \
|
|
|
+ git commit -m "test(interface): 接口冒烟闭环 $(date '+%Y-%m-%d %H:%M') — 通过率 ${RATE}% (fix=${FIXED_COUNT} reg=${REGRESSED_COUNT})" \
|
|
|
>>"$LOG_DIR/interface_cron.log" 2>&1 && log "已提交测试结果"
|
|
|
fi
|
|
|
|