Files
012-kaopeilian/tests/test_practice_sessions_api.py
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

118 lines
3.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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()