127 lines
3.7 KiB
Python
127 lines
3.7 KiB
Python
|
|
#!/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()
|