test_auth.py
1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import os
import sys
from typing import Tuple
from client import ApiClient
BASE_URL = os.environ.get('API_BASE_URL', 'http://localhost:8083')
def login_and_print_token(username: str, password: str) -> Tuple[bool, str]:
"""
认证登录API测试 - 详细测试以下接口:
1. POST /api/auth/login - 用户登录认证
"""
print("🚀 开始认证登录API测试")
print("=" * 50)
print(f"API基础URL: {BASE_URL}")
print()
client = ApiClient(BASE_URL)
# 测试用户登录认证接口 - POST /api/auth/login
print("🔍 测试用户登录认证接口...")
print(f" 用户名: {username}")
print(f" 密码: {'*' * len(password)}")
resp = client.post('/api/auth/login', {
'username': username,
'password': password
}, auth=False)
try:
data = resp.json()
except Exception:
print(f"❌ FAIL 用户登录认证")
print(f" 登录接口返回非JSON格式")
print(f" 响应内容: {resp.text}")
return False, ''
if resp.status_code == 200 and isinstance(data, dict) and data.get('code') == 200:
token = (data.get('data') or {}).get('token')
if token:
print(f"✅ PASS 用户登录认证")
print(f" 登录成功,获取到JWT Token")
print(f" Token: {token}")
client.set_token(token)
print(f" Token已保存到本地文件,后续请求将自动携带")
print()
print("=" * 50)
print("📊 测试结果: 1/1 通过")
print("🎉 认证登录API测试通过!")
return True, token
print(f"❌ FAIL 用户登录认证")
print(f" 登录成功但未返回token")
print(f" 完整响应: {data}")
return False, ''
print(f"❌ FAIL 用户登录认证")
print(f" 登录失败")
print(f" 错误信息: {data}")
return False, ''
if __name__ == '__main__':
# 默认账户可根据实际系统修改
username = sys.argv[1] if len(sys.argv) > 1 else 'admin'
password = sys.argv[2] if len(sys.argv) > 2 else 'password'
success, _ = login_and_print_token(username, password)
sys.exit(0 if success else 1)