Files
chunyu_project/test_all_apis.py
T
2026-08-05 23:59:15 +08:00

97 lines
3.3 KiB
Python

import requests
import json
BASE_URL = "http://localhost:8000"
def test_api(name, method, path, params=None, data=None, expected_status=None):
url = f"{BASE_URL}{path}"
try:
if method == "GET":
r = requests.get(url, params=params, timeout=10)
else:
r = requests.post(url, json=data, timeout=10)
status = r.status_code
try:
body = r.json()
except:
body = r.text[:200]
ok = "✅" if expected_status is None or status == expected_status else "❌"
print(f"{ok} {name}: {status}")
if status != 200:
print(f" Response: {body}")
return status == 200 if expected_status is None else status == expected_status
except Exception as e:
print(f"❌ {name}: Error - {e}")
return False
print("=" * 60)
print("API 接口测试报告")
print("=" * 60)
results = []
# 1. 空气质量API
print("\n--- 空气质量API ---")
results.append(test_api("空气质量(GET)", "GET", "/api/air-quality/", params={"city": "北京"}))
results.append(test_api("空气质量(POST)", "POST", "/api/air-quality/", data={"city": "上海"}))
results.append(test_api("空气质量(缺少参数)", "GET", "/api/air-quality/", expected_status=400))
# 2. IP定位API
print("\n--- IP定位API ---")
results.append(test_api("IP定位", "GET", "/api/getIpData/"))
# 3. 百度翻译API
print("\n--- 百度翻译API ---")
results.append(test_api("百度翻译(语言列表)", "GET", "/api/baiduFanyi/getAllLangType/"))
results.append(test_api("百度翻译(自动检测)", "GET", "/api/baiduFanyi/getAutoLangType/"))
# 4. 天气API
print("\n--- 天气API ---")
results.append(test_api("天气查询", "GET", "/api/weather/", params={"city": "北京"}))
# 5. 汇率API
print("\n--- 汇率API ---")
results.append(test_api("汇率(最新)", "GET", "/api/currency/rates/"))
results.append(test_api("汇率(货币列表)", "GET", "/api/currency/currencies/"))
# 6. 短链接API
print("\n--- 短链接API ---")
results.append(test_api("短链接(创建)", "POST", "/api/shorturl/shorten/", data={"url": "https://example.com"}))
# 7. 验证码API
print("\n--- 验证码API ---")
results.append(test_api("滑块验证码(生成)", "GET", "/api/captcha/generate/"))
results.append(test_api("图片验证码", "GET", "/api/image-captcha/"))
# 8. API接口大全
print("\n--- API接口大全 ---")
results.append(test_api("API分类列表", "GET", "/api/apidirectory/categories/"))
results.append(test_api("API项目列表", "GET", "/api/apidirectory/items/"))
# 9. 工具API
print("\n--- 工具API ---")
results.append(test_api("工具分类列表", "GET", "/api/tool/categories/"))
results.append(test_api("工具列表", "GET", "/api/tool/list/"))
# 10. 用户API
print("\n--- 用户API ---")
results.append(test_api("用户注册", "POST", "/user/login-register/", data={
"username": "test_api_user",
"email": "test_api@example.com",
"password": "Test123456"
}))
results.append(test_api("用户登录", "POST", "/user/login/", data={
"account": "test_api_user",
"password": "Test123456"
}))
# 11. 签到API
print("\n--- 签到API ---")
results.append(test_api("签到状态", "GET", "/user/wallet/checkin/status/"))
print("\n" + "=" * 60)
print(f"测试结果: {sum(results)}/{len(results)} 通过")
print("=" * 60)