123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- """
- Redis集成修复验证测试
- 这个脚本用于快速验证Redis集成的修复是否有效
- """
- import requests
- import json
- import time
- def test_ask_agent_basic():
- """测试基本的ask_agent功能"""
- base_url = "http://localhost:8084/api/v0"
-
- print("=== Redis集成修复验证测试 ===\n")
-
- # 测试1:第一次请求(应该成功)
- print("1. 测试第一次请求...")
- print(" (注意:第一次请求可能需要较长时间,请耐心等待...)")
- response1 = requests.post(
- f"{base_url}/ask_agent",
- json={"question": "服务区有多少个?"},
- timeout=120 # 增加到120秒,适应较慢的响应
- )
-
- print(f" 状态码: {response1.status_code}")
- result1 = response1.json()
- print(f" 成功: {result1.get('success')}")
- print(f" 消息: {result1.get('message')}")
-
- if result1.get('success'):
- data = result1.get('data', {})
- print(f" 响应类型: {data.get('type')}")
- print(f" 响应文本: {data.get('response_text', '')[:50]}...")
- print(f" 是否缓存: {data.get('from_cache', False)}")
- print(f" 对话ID: {data.get('conversation_id')}")
- else:
- print(f" 错误: {json.dumps(result1, indent=2, ensure_ascii=False)}")
-
- # 等待一下
- time.sleep(1)
-
- # 测试2:第二次相同请求(应该使用缓存)
- print("\n2. 测试第二次请求(相同问题,应该使用缓存)...")
- response2 = requests.post(
- f"{base_url}/ask_agent",
- json={"question": "服务区有多少个?"},
- timeout=60 # 也增加超时时间,虽然缓存应该更快
- )
-
- print(f" 状态码: {response2.status_code}")
- result2 = response2.json()
- print(f" 成功: {result2.get('success')}")
-
- if result2.get('success'):
- data = result2.get('data', {})
- print(f" 是否缓存: {data.get('from_cache', False)}")
- print(f" 响应文本: {data.get('response_text', '')[:50]}...")
-
- # 验证缓存功能
- if data.get('from_cache'):
- print("\n✅ 缓存功能正常工作!")
- else:
- print("\n⚠️ 缓存功能可能有问题,第二次请求没有使用缓存")
- else:
- print(f" 错误: {json.dumps(result2, indent=2, ensure_ascii=False)}")
- print("\n❌ 第二次请求失败,可能是缓存格式问题")
-
- # 测试3:测试对话管理API
- print("\n3. 测试对话管理API...")
- try:
- stats_response = requests.get(f"{base_url}/conversation_stats", timeout=5)
- if stats_response.status_code == 200:
- stats = stats_response.json()
- if stats.get('success'):
- print(" ✅ 对话统计API正常")
- print(f" 总对话数: {stats.get('data', {}).get('total_conversations', 0)}")
- print(f" 总用户数: {stats.get('data', {}).get('total_users', 0)}")
- else:
- print(" ⚠️ 对话统计API返回失败")
- else:
- print(f" ❌ 对话统计API错误: {stats_response.status_code}")
- except Exception as e:
- print(f" ❌ 对话统计API异常: {str(e)}")
-
- print("\n=== 测试完成 ===")
-
- # 返回测试结果
- return {
- "first_request_success": result1.get('success', False),
- "second_request_success": result2.get('success', False),
- "cache_working": result2.get('data', {}).get('from_cache', False) if result2.get('success') else False
- }
- if __name__ == "__main__":
- try:
- results = test_ask_agent_basic()
-
- print("\n测试结果汇总:")
- print(f"- 第一次请求: {'✅ 成功' if results['first_request_success'] else '❌ 失败'}")
- print(f"- 第二次请求: {'✅ 成功' if results['second_request_success'] else '❌ 失败'}")
- print(f"- 缓存功能: {'✅ 正常' if results['cache_working'] else '❌ 异常'}")
-
- if all(results.values()):
- print("\n🎉 所有测试通过!Redis集成修复成功!")
- else:
- print("\n❗ 部分测试失败,请检查日志")
-
- except Exception as e:
- print(f"\n❌ 测试异常: {str(e)}")
- print("请确保Flask服务正在运行 (python citu_app.py)")
|