- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
118 lines
3.5 KiB
Python
118 lines
3.5 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
测试陪练记录列表API
|
||
"""
|
||
import requests
|
||
import json
|
||
|
||
# API基础地址
|
||
BASE_URL = "http://120.79.247.16"
|
||
|
||
def login(username: str, password: str):
|
||
"""登录获取token"""
|
||
url = f"https://aiedu.ireborn.com.cn/api/v1/auth/login"
|
||
data = {
|
||
"username": username,
|
||
"password": password
|
||
}
|
||
print(f"正在登录: {username}")
|
||
response = requests.post(url, json=data, verify=False)
|
||
print(f"登录响应: {response.status_code}")
|
||
result = response.json()
|
||
print(f"登录结果: {json.dumps(result, ensure_ascii=False, indent=2)}")
|
||
|
||
if response.status_code == 200 and result.get('code') == 200:
|
||
token = result['data'].get('access_token')
|
||
print(f"✓ 登录成功,Token: {token[:20]}...")
|
||
return token
|
||
else:
|
||
print(f"✗ 登录失败")
|
||
return None
|
||
|
||
def get_practice_sessions(token: str):
|
||
"""获取陪练记录列表"""
|
||
url = f"https://aiedu.ireborn.com.cn/api/v1/practice/sessions/list"
|
||
headers = {
|
||
"Authorization": f"Bearer {token}"
|
||
}
|
||
params = {
|
||
"page": 1,
|
||
"size": 20
|
||
}
|
||
|
||
print(f"\n正在获取陪练记录列表...")
|
||
print(f"请求URL: {url}")
|
||
print(f"请求参数: {params}")
|
||
|
||
response = requests.get(url, headers=headers, params=params, verify=False)
|
||
print(f"响应状态码: {response.status_code}")
|
||
|
||
result = response.json()
|
||
print(f"响应结果: {json.dumps(result, ensure_ascii=False, indent=2)}")
|
||
|
||
if response.status_code == 200 and result.get('code') == 200:
|
||
data = result['data']
|
||
print(f"\n✓ 获取成功")
|
||
print(f"总记录数: {data.get('total', 0)}")
|
||
print(f"当前页记录数: {len(data.get('items', []))}")
|
||
|
||
# 打印前5条记录
|
||
items = data.get('items', [])
|
||
if items:
|
||
print(f"\n前{min(5, len(items))}条记录:")
|
||
for i, item in enumerate(items[:5], 1):
|
||
print(f"{i}. {item.get('session_id')} - {item.get('scene_name')} - {item.get('start_time')}")
|
||
else:
|
||
print("\n⚠️ 记录列表为空!")
|
||
else:
|
||
print(f"\n✗ 获取失败")
|
||
|
||
def get_practice_stats(token: str):
|
||
"""获取陪练统计数据"""
|
||
url = f"https://aiedu.ireborn.com.cn/api/v1/practice/stats"
|
||
headers = {
|
||
"Authorization": f"Bearer {token}"
|
||
}
|
||
|
||
print(f"\n正在获取陪练统计数据...")
|
||
response = requests.get(url, headers=headers, verify=False)
|
||
print(f"响应状态码: {response.status_code}")
|
||
|
||
result = response.json()
|
||
print(f"响应结果: {json.dumps(result, ensure_ascii=False, indent=2)}")
|
||
|
||
def main():
|
||
print("=" * 60)
|
||
print("测试陪练记录列表API")
|
||
print("=" * 60)
|
||
|
||
# 测试多个用户
|
||
test_users = [
|
||
("admin", "admin123"), # admin
|
||
("consultant_001", "admin123"), # consultant_001
|
||
("consultant_002", "admin123"), # consultant_002
|
||
]
|
||
|
||
for username, password in test_users:
|
||
print(f"\n{'=' * 60}")
|
||
print(f"测试用户: {username}")
|
||
print(f"{'=' * 60}")
|
||
|
||
# 登录
|
||
token = login(username, password)
|
||
if not token:
|
||
print(f"用户 {username} 登录失败,跳过")
|
||
continue
|
||
|
||
# 获取陪练记录
|
||
get_practice_sessions(token)
|
||
|
||
# 获取统计数据
|
||
get_practice_stats(token)
|
||
|
||
print("\n")
|
||
|
||
if __name__ == "__main__":
|
||
main()
|
||
|