Kamixitong/e2e_test.py

127 lines
3.7 KiB
Python
Raw Normal View History

2025-11-11 21:39:12 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
端到端测试修复后的账号创建功能
"""
import requests
import json
# API基础URL
BASE_URL = "http://127.0.0.1:5000/api/v1"
def e2e_test():
"""端到端测试"""
# 创建会话
session = requests.Session()
# 先登录
print("=== 登录 ===")
login_data = {
"username": "admin",
"password": "admin123"
}
# 设置AJAX请求头
login_headers = {
"X-Requested-With": "XMLHttpRequest"
}
login_response = session.post("http://127.0.0.1:5000/login", data=login_data, headers=login_headers)
print(f"登录响应状态码: {login_response.status_code}")
if login_response.status_code != 200:
print("登录失败,无法继续测试")
return
try:
login_json = login_response.json()
if not login_json.get('success'):
print("登录返回失败状态")
return
print("登录成功!")
except:
print("登录响应不是有效的JSON格式")
return
# 测试1: 创建账号时没有发送password字段模拟前端密码为空的情况
print("\n=== 测试1: 没有password字段 ===")
url = f"{BASE_URL}/admins"
data1 = {
"username": "e2e_test_user1",
"email": "e2e_test_user1@example.com",
"role": 0,
"status": 1
# 注意没有password字段模拟前端密码为空的情况
}
headers = {
"Content-Type": "application/json"
}
print(f"发送POST请求到: {url}")
print(f"请求数据: {json.dumps(data1, indent=2, ensure_ascii=False)}")
response1 = session.post(url, json=data1, headers=headers)
print(f"响应状态码: {response1.status_code}")
if response1.content:
try:
response_data1 = response1.json()
print(f"响应JSON: {json.dumps(response_data1, indent=2, ensure_ascii=False)}")
except json.JSONDecodeError:
print(f"响应文本: {response1.text}")
# 测试2: 创建账号时发送空密码
print("\n=== 测试2: 发送空密码 ===")
data2 = {
"username": "e2e_test_user2",
"email": "e2e_test_user2@example.com",
"password": "", # 空密码
"role": 0,
"status": 1
}
print(f"发送POST请求到: {url}")
print(f"请求数据: {json.dumps(data2, indent=2, ensure_ascii=False)}")
response2 = session.post(url, json=data2, headers=headers)
print(f"响应状态码: {response2.status_code}")
if response2.content:
try:
response_data2 = response2.json()
print(f"响应JSON: {json.dumps(response_data2, indent=2, ensure_ascii=False)}")
except json.JSONDecodeError:
print(f"响应文本: {response2.text}")
# 测试3: 创建账号时发送有效密码
print("\n=== 测试3: 发送有效密码 ===")
data3 = {
"username": "e2e_test_user3",
"email": "e2e_test_user3@example.com",
"password": "E2ETestPass123!", # 有效密码
"role": 0,
"status": 1
}
print(f"发送POST请求到: {url}")
print(f"请求数据: {json.dumps(data3, indent=2, ensure_ascii=False)}")
response3 = session.post(url, json=data3, headers=headers)
print(f"响应状态码: {response3.status_code}")
if response3.content:
try:
response_data3 = response3.json()
print(f"响应JSON: {json.dumps(response_data3, indent=2, ensure_ascii=False)}")
except json.JSONDecodeError:
print(f"响应文本: {response3.text}")
print("\n=== 测试完成 ===")
if __name__ == "__main__":
e2e_test()