#!/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()