105 lines
3.1 KiB
Python
105 lines
3.1 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
日记系统前端功能自动化测试
|
|
每次修改前端后必须运行此测试
|
|
"""
|
|
import requests
|
|
import sys
|
|
|
|
BASE_URL = 'http://127.0.0.1:8001'
|
|
API_BASE = f'{BASE_URL}/api'
|
|
|
|
def test_api_endpoints():
|
|
"""测试 API 接口"""
|
|
print("📡 测试 API 接口...")
|
|
|
|
tests = [
|
|
('日记统计', f'{API_BASE}/entries/stats/', 200),
|
|
('日记列表', f'{API_BASE}/entries/', 200),
|
|
('今日日记', f'{API_BASE}/entries/today/', 200),
|
|
('最近日记', f'{API_BASE}/entries/recent/', 200),
|
|
('经验总结', f'{API_BASE}/experiences/recent/', 200),
|
|
]
|
|
|
|
passed = 0
|
|
failed = 0
|
|
|
|
for name, url, expected_status in tests:
|
|
try:
|
|
resp = requests.get(url, timeout=5)
|
|
if resp.status_code == expected_status:
|
|
print(f" ✅ {name}: {resp.status_code}")
|
|
passed += 1
|
|
else:
|
|
print(f" ❌ {name}: 期望 {expected_status}, 实际 {resp.status_code}")
|
|
failed += 1
|
|
except Exception as e:
|
|
print(f" ❌ {name}: {str(e)}")
|
|
failed += 1
|
|
|
|
return passed, failed
|
|
|
|
def test_frontend_page():
|
|
"""测试前端页面"""
|
|
print("\n🌐 测试前端页面...")
|
|
|
|
try:
|
|
resp = requests.get(BASE_URL, timeout=5)
|
|
if resp.status_code == 200:
|
|
content = resp.text
|
|
|
|
# 检查关键功能是否存在
|
|
checks = [
|
|
('日历组件', 'calendar'),
|
|
('统计面板', 'stat-'),
|
|
('Tab 切换', 'tab-'),
|
|
('日记列表', 'diary'),
|
|
('经验总结', 'experience'),
|
|
('选择日期函数', 'selectDate'),
|
|
('渲染日历函数', 'renderCalendar'),
|
|
]
|
|
|
|
passed = 0
|
|
failed = 0
|
|
|
|
for name, keyword in checks:
|
|
if keyword in content:
|
|
print(f" ✅ {name}: 存在")
|
|
passed += 1
|
|
else:
|
|
print(f" ❌ {name}: 缺失 (关键词:{keyword})")
|
|
failed += 1
|
|
|
|
return passed, failed
|
|
else:
|
|
print(f" ❌ 页面访问失败:{resp.status_code}")
|
|
return 0, 1
|
|
except Exception as e:
|
|
print(f" ❌ 页面访问错误:{str(e)}")
|
|
return 0, 1
|
|
|
|
def main():
|
|
print("=" * 60)
|
|
print("🧪 日记系统前端功能测试")
|
|
print("=" * 60)
|
|
|
|
api_passed, api_failed = test_api_endpoints()
|
|
page_passed, page_failed = test_frontend_page()
|
|
|
|
total_passed = api_passed + page_passed
|
|
total_failed = api_failed + page_failed
|
|
|
|
print("\n" + "=" * 60)
|
|
print(f"📊 测试结果:{total_passed} 通过,{total_failed} 失败")
|
|
print("=" * 60)
|
|
|
|
if total_failed > 0:
|
|
print("\n⚠️ 有功能测试失败,请检查后再部署!")
|
|
sys.exit(1)
|
|
else:
|
|
print("\n✅ 所有测试通过,可以部署!")
|
|
sys.exit(0)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|