52 lines
2.0 KiB
Python
52 lines
2.0 KiB
Python
import csv
|
||
from datetime import datetime
|
||
|
||
today = datetime.now().strftime('%Y%m%d')
|
||
filename = f'图片接口性能测试_{today}.csv'
|
||
|
||
print("="*100)
|
||
print("图片管理接口性能测试结果")
|
||
print("="*100)
|
||
|
||
try:
|
||
with open(filename, 'r', encoding='utf-8-sig') as f:
|
||
reader = csv.DictReader(f)
|
||
rows = list(reader)
|
||
|
||
print(f"\n{'接口':<60} {'方法':<8} {'状态码':<10} {'耗时(ms)':<12} {'成功':<8}")
|
||
print("-"*100)
|
||
|
||
for row in rows:
|
||
endpoint = row['endpoint'][:58]
|
||
method = row['method']
|
||
status = row['status_code']
|
||
time_ms = row['elapsed_time_ms']
|
||
success = '✓' if row['success'] == 'True' else '✗'
|
||
|
||
print(f"{endpoint:<60} {method:<8} {status:<10} {time_ms:<12} {success:<8}")
|
||
|
||
print("-"*100)
|
||
|
||
# 统计
|
||
times = [float(r['elapsed_time_ms']) for r in rows if r['elapsed_time_ms'] != '0']
|
||
if times:
|
||
print(f"\n平均耗时: {sum(times)/len(times):.2f}ms")
|
||
print(f"最大耗时: {max(times):.2f}ms")
|
||
print(f"最小耗时: {min(times):.2f}ms")
|
||
|
||
success_count = sum(1 for r in rows if r['success'] == 'True')
|
||
success_rate = success_count / len(rows) * 100 if rows else 0
|
||
print(f"\n成功率: {success_rate:.1f}%")
|
||
|
||
if success_rate == 100:
|
||
print("服务健康: ✓ 所有接口正常运行")
|
||
elif success_rate >= 80:
|
||
print("服务健康: ⚠ 大部分接口正常,部分接口异常")
|
||
elif success_rate > 0:
|
||
print("服务健康: ⚠ 部分接口异常,需要检查权限配置")
|
||
else:
|
||
print("服务健康: ✗ 所有接口异常(可能是企业ID获取失败)")
|
||
except FileNotFoundError:
|
||
print(f"\n✗ 未找到文件: {filename}")
|
||
print("请先运行: python 测试图片接口性能.py")
|