Kamixitong/e2e_test.py
2025-11-11 21:39:12 +08:00

127 lines
3.7 KiB
Python
Raw 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 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()