tycm_service_ai/test_integration.py
2025-10-11 16:18:03 +08:00

155 lines
4.8 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 python3
"""
测试Java和Python服务集成的脚本
"""
import requests
import json
import time
def test_python_service():
"""测试Python服务"""
print("🔍 测试Python AI审核服务...")
# 测试健康检查
try:
response = requests.get("http://localhost:8081/api/v1/health", timeout=5)
if response.status_code == 200:
print("✅ Python服务健康检查通过")
print(f" 响应: {response.json()}")
else:
print(f"❌ Python服务健康检查失败: {response.status_code}")
return False
except Exception as e:
print(f"❌ 无法连接Python服务: {e}")
print("💡 请确保Python服务已启动: python start_ai_service.py")
return False
# 测试审核接口
test_data = {
"order_id": "TEST001",
"order_status": "WAITEXAMINE",
"oem_id": 2,
"car_type": "0",
"card_name": "张三",
"card_number": "123456789012345678",
"car_frame": "WDDGF4HB9CA123456",
"buyer_name": "张三",
"id_card_score": 85,
"bill_score": 92
}
try:
start_time = time.time()
response = requests.post(
"http://localhost:8081/api/v1/audit",
json=test_data,
headers={"Content-Type": "application/json"},
timeout=10
)
elapsed_time = (time.time() - start_time) * 1000
if response.status_code == 200:
result = response.json()
print("✅ Python审核接口测试通过")
print(f" 审核结果: {result['result']}")
print(f" 置信度: {result['confidence']}")
print(f" 原因: {result['reason']}")
print(f" 响应时间: {elapsed_time:.0f}ms")
return True
else:
print(f"❌ Python审核接口测试失败: {response.status_code}")
print(f" 错误信息: {response.text}")
return False
except Exception as e:
print(f"❌ Python审核接口调用失败: {e}")
return False
def test_java_service():
"""测试Java服务 (如果有健康检查接口)"""
print("\n🔍 测试Java TYCM服务...")
# 尝试连接Java服务
try:
# 假设Java服务有健康检查接口 (根据实际情况调整)
response = requests.get("http://localhost:5610/actuator/health", timeout=5)
if response.status_code == 200:
print("✅ Java服务连接正常")
print(f" 响应: {response.json()}")
return True
else:
print(f"⚠️ Java服务状态码: {response.status_code}")
return False
except Exception as e:
print(f"⚠️ 无法连接Java服务: {e}")
print("💡 请确保Java服务已启动在端口5610")
return False
def print_configuration_guide():
"""打印配置指南"""
print("\n" + "="*60)
print("🔧 配置指南")
print("="*60)
print("\n📝 1. 启用决策树服务在Java项目中添加配置:")
print(" 文件位置: src/main/resources/application.yml")
print(" 添加配置:")
print("""
ai:
decision:
enabled: true
service:
url: http://localhost:8080
""")
print("\n📝 2. 或者包含AI决策配置文件:")
print(" 在 application.yml 中添加:")
print("""
spring:
profiles:
include: ai-decision
""")
print("\n📝 3. 测试切换:")
print(" - enabled: false -> 使用原有AI审核逻辑")
print(" - enabled: true -> 使用新的Python决策树服务")
print("\n📝 4. 监控日志:")
print(" Java日志关键词: 'Python决策树服务', 'AI决策树'")
print(" Python日志: 查看控制台输出")
def main():
print("🧪 TYCM AI审核服务集成测试")
print("="*60)
# 测试Python服务
python_ok = test_python_service()
# 测试Java服务
java_ok = test_java_service()
# 总结
print("\n" + "="*60)
print("📊 测试结果总结")
print("="*60)
print(f"Python AI服务: {'✅ 正常' if python_ok else '❌ 异常'}")
print(f"Java TYCM服务: {'✅ 正常' if java_ok else '⚠️ 未确认'}")
if python_ok:
print("\n🎉 Python AI审核服务运行正常!")
print("💡 现在可以在Java项目中启用决策树配置来使用此服务")
print_configuration_guide()
else:
print("\n❌ Python服务有问题请检查:")
print(" 1. 是否已启动: python start_ai_service.py")
print(" 2. 端口8080是否被占用")
print(" 3. 依赖是否正确安装")
if not java_ok:
print("\n⚠️ Java服务连接失败这是正常的如果:")
print(" 1. Java服务未启动")
print(" 2. 没有健康检查接口")
print(" 3. 端口不是5610")
if __name__ == "__main__":
main()