Files
TEMP_spec_system_V3/test_api.py
beabigegg 4f7f46b07a 2ND
2025-08-28 08:59:46 +08:00

72 lines
2.4 KiB
Python

#!/usr/bin/env python3
"""
測試 LDAP API 端點功能
"""
import requests
import json
def test_api_search():
"""測試 API 搜尋功能"""
print("=== 測試 LDAP API 搜尋功能 ===")
# 測試不同的搜尋詞
test_terms = ["liu", "", "PE", "管理", "admin"]
base_url = "http://127.0.0.1:5000"
# 先登入獲取 session cookie
session = requests.Session()
print("正在登入系統...")
login_data = {
'username': 'ymirliu@panjit.com.tw',
'password': input("請輸入 ymirliu@panjit.com.tw 的密碼: ")
}
# 嘗試登入
login_response = session.post(f"{base_url}/login", data=login_data)
if login_response.status_code == 200 and "總表檢視" in login_response.text:
print("✅ 登入成功")
for term in test_terms:
print(f"\n🔍 測試搜尋: '{term}'")
print("-" * 40)
api_url = f"{base_url}/api/ldap-search"
params = {'q': term}
try:
response = session.get(api_url, params=params)
print(f"HTTP 狀態: {response.status_code}")
if response.status_code == 200:
try:
data = response.json()
print(f"找到 {len(data)} 個結果:")
for i, result in enumerate(data, 1):
print(f" {i}. {result.get('text', 'N/A')}")
print(f" 值: {result.get('value', 'N/A')}")
print(f" 類型: {result.get('type', 'N/A')}")
except json.JSONDecodeError:
print("❌ 回應不是有效的 JSON")
print(f"回應內容: {response.text[:200]}")
else:
print(f"❌ API 請求失敗: {response.status_code}")
print(f"回應: {response.text[:200]}")
except requests.RequestException as e:
print(f"❌ 請求錯誤: {e}")
else:
print("❌ 登入失敗")
print(f"HTTP 狀態: {login_response.status_code}")
if __name__ == "__main__":
try:
test_api_search()
except KeyboardInterrupt:
print("\n\n測試已中斷")
except Exception as e:
print(f"\n測試發生錯誤: {e}")