You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.1 KiB
30 lines
1.1 KiB
|
20 hours ago
|
# -*- coding: utf-8 -*-
|
||
|
|
"""stats-incr.py — incr 套件 checks JSON 结构探测与统计"""
|
||
|
|
import json, io, sys
|
||
|
|
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
|
||
|
|
|
||
|
|
data = json.load(open('.scratch/customer-e2e-r2/e2e-incr-checks.json', encoding='utf-8'))
|
||
|
|
print('top type =', type(data).__name__)
|
||
|
|
if isinstance(data, dict):
|
||
|
|
print('top keys =', list(data.keys()))
|
||
|
|
checks = data.get('checks')
|
||
|
|
else:
|
||
|
|
checks = data
|
||
|
|
print('checks type =', type(checks).__name__, 'len =', len(checks) if checks else 0)
|
||
|
|
if checks:
|
||
|
|
first = checks[0]
|
||
|
|
print('item type =', type(first).__name__)
|
||
|
|
if isinstance(first, dict):
|
||
|
|
print('item keys =', list(first.keys()))
|
||
|
|
n = {}
|
||
|
|
for c in checks:
|
||
|
|
v = c.get('verdict')
|
||
|
|
n[v] = n.get(v, 0) + 1
|
||
|
|
print('verdict counts =', n)
|
||
|
|
print('\n--- 非 ✅ 项 ---')
|
||
|
|
for c in checks:
|
||
|
|
if c.get('verdict') != '✅':
|
||
|
|
print(f"{c.get('verdict')} [{c.get('flow')}] {c.get('case')}\n {str(c.get('detail'))[:220]}")
|
||
|
|
else:
|
||
|
|
print('sample =', str(checks[:3])[:400])
|