corp20250923
This commit is contained in:
@@ -0,0 +1,179 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
最终验证脚本(版本2):适应实际的表结构
|
||||
1. 创建测试数据
|
||||
2. 测试update_query_result接口
|
||||
3. 验证数据是否正确保存
|
||||
"""
|
||||
|
||||
import sqlite3
|
||||
import requests
|
||||
import json
|
||||
import logging
|
||||
import datetime
|
||||
|
||||
# 配置日志
|
||||
handlers = [logging.FileHandler('final_verification.log'), logging.StreamHandler()]
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(levelname)s - %(message)s',
|
||||
handlers=handlers
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# API地址
|
||||
BASE_URL = 'http://localhost:99'
|
||||
API_ENDPOINT = f'{BASE_URL}/api/update-query-result'
|
||||
DB_PATH = 'car_info.db'
|
||||
|
||||
def create_test_data():
|
||||
"""
|
||||
在数据库中创建测试数据
|
||||
"""
|
||||
logger.info("开始创建测试数据")
|
||||
|
||||
try:
|
||||
conn = sqlite3.connect(DB_PATH)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# 创建一个测试查询历史记录(根据实际表结构)
|
||||
current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
cursor.execute("""
|
||||
INSERT INTO query_history (query_date, plate_number, phone, results_count, query_ip)
|
||||
VALUES (?, ?, ?, ?, ?)
|
||||
""", (current_time, '测试车牌', '13800138000', 0, '127.0.0.1'))
|
||||
|
||||
# 获取新插入的记录ID
|
||||
query_id = cursor.lastrowid
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
logger.info(f"成功创建测试数据,生成的查询ID: {query_id}")
|
||||
return query_id
|
||||
|
||||
except sqlite3.Error as e:
|
||||
logger.error(f"创建测试数据时发生数据库错误: {str(e)}")
|
||||
return None
|
||||
except Exception as e:
|
||||
logger.error(f"创建测试数据时发生错误: {str(e)}")
|
||||
return None
|
||||
|
||||
def get_existing_query_id():
|
||||
"""
|
||||
获取数据库中已存在的查询历史记录ID
|
||||
"""
|
||||
logger.info("尝试获取已存在的查询历史记录ID")
|
||||
|
||||
try:
|
||||
conn = sqlite3.connect(DB_PATH)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# 获取最近的一条记录
|
||||
cursor.execute("SELECT id FROM query_history ORDER BY query_date DESC LIMIT 1")
|
||||
result = cursor.fetchone()
|
||||
|
||||
conn.close()
|
||||
|
||||
if result:
|
||||
query_id = result[0]
|
||||
logger.info(f"成功获取已存在的查询历史记录ID: {query_id}")
|
||||
return query_id
|
||||
else:
|
||||
logger.warning("数据库中没有查询历史记录")
|
||||
return None
|
||||
|
||||
except sqlite3.Error as e:
|
||||
logger.error(f"获取已存在记录时发生数据库错误: {str(e)}")
|
||||
return None
|
||||
except Exception as e:
|
||||
logger.error(f"获取已存在记录时发生错误: {str(e)}")
|
||||
return None
|
||||
|
||||
def test_update_query_result_with_real_data(query_id):
|
||||
"""
|
||||
使用真实的测试数据测试update_query_result接口
|
||||
"""
|
||||
logger.info(f"使用查询ID {query_id} 测试update_query_result接口")
|
||||
|
||||
# 测试数据
|
||||
test_data = {
|
||||
'id': query_id,
|
||||
'results_count': 2,
|
||||
'cars_info': [
|
||||
{
|
||||
'plate_number': '测试车牌1',
|
||||
'phone': '13800138001',
|
||||
'name': '测试姓名1',
|
||||
'email': 'test1@example.com',
|
||||
'address': '测试地址1'
|
||||
},
|
||||
{
|
||||
'plate_number': '测试车牌2',
|
||||
'phone': '13800138002',
|
||||
'name': '测试姓名2',
|
||||
'email': 'test2@example.com',
|
||||
'address': '测试地址2'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
try:
|
||||
logger.info(f"发送测试请求,数据: {json.dumps(test_data, ensure_ascii=False)}")
|
||||
|
||||
# 发送POST请求
|
||||
response = requests.post(
|
||||
API_ENDPOINT,
|
||||
json=test_data,
|
||||
headers={'Content-Type': 'application/json'},
|
||||
timeout=30
|
||||
)
|
||||
|
||||
logger.info(f"请求完成,状态码: {response.status_code}")
|
||||
|
||||
# 输出响应内容
|
||||
if response.status_code == 200:
|
||||
try:
|
||||
result = response.json()
|
||||
logger.info(f"响应数据: {json.dumps(result, ensure_ascii=False)}")
|
||||
return True, result
|
||||
except json.JSONDecodeError:
|
||||
logger.warning(f"响应不是有效的JSON格式: {response.text}")
|
||||
return False, None
|
||||
else:
|
||||
logger.error(f"请求失败,状态码: {response.status_code},响应内容: {response.text}")
|
||||
return False, None
|
||||
|
||||
except requests.exceptions.RequestException as e:
|
||||
logger.error(f"请求异常: {str(e)}")
|
||||
return False, None
|
||||
|
||||
def main():
|
||||
"""
|
||||
主函数
|
||||
"""
|
||||
logger.info("开始最终验证")
|
||||
|
||||
# 首先尝试获取已存在的查询ID
|
||||
query_id = get_existing_query_id()
|
||||
|
||||
# 如果没有已存在的查询ID,尝试创建新的
|
||||
if not query_id:
|
||||
query_id = create_test_data()
|
||||
|
||||
if not query_id:
|
||||
logger.error("无法获取或创建测试数据,验证失败")
|
||||
return
|
||||
|
||||
# 测试update_query_result接口
|
||||
success, result = test_update_query_result_with_real_data(query_id)
|
||||
if not success:
|
||||
logger.error("update_query_result接口测试失败")
|
||||
else:
|
||||
logger.info("update_query_result接口测试成功!")
|
||||
|
||||
logger.info("最终验证完成")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user