agent-seara / run_massive_tests.py
rwayz's picture
m
e982206
#!/usr/bin/env python3
"""
Script de inicialização do Sistema de Testes Massivos - AgentGraph
Execute este arquivo na raiz do projeto para ter acesso a todos os módulos
"""
import os
import sys
import subprocess
import logging
def check_dependencies():
"""Verifica se as dependências estão instaladas"""
try:
import flask
import pandas
import openpyxl
print("✅ Dependências Flask/Pandas verificadas")
return True
except ImportError as e:
print(f"❌ Dependência faltando: {e}")
print("💡 Execute: pip install flask pandas openpyxl")
return False
def check_agentgraph_setup():
"""Verifica se o AgentGraph está configurado"""
try:
from utils.config import AVAILABLE_MODELS, validate_config
validate_config()
print("✅ AgentGraph configurado corretamente")
print(f"📊 {len(AVAILABLE_MODELS)} modelos disponíveis")
return True
except Exception as e:
print(f"❌ Erro na configuração do AgentGraph: {e}")
print("💡 Verifique se as APIs estão configuradas no .env")
return False
def check_cache_disabled():
"""Verifica se o cache foi desativado conforme solicitado"""
try:
from nodes.agent_node import route_after_cache_check
# Testa se o cache está desativado
test_state = {"cache_hit": True, "processing_enabled": False}
result = route_after_cache_check(test_state)
if result != "update_history": # Se não vai para cache, está desativado
print("✅ Cache desativado conforme solicitado")
return True
else:
print("⚠️ Cache ainda ativo - pode afetar testes de consistência")
return True # Não é erro fatal
except Exception as e:
print(f"⚠️ Erro ao verificar cache: {e}")
return True # Não é erro fatal
def check_test_modules():
"""Verifica se os módulos de teste estão funcionando"""
try:
from testes.test_runner import MassiveTestRunner
from testes.test_validator import TestValidator
from testes.report_generator import ReportGenerator
print("✅ Módulos de teste carregados com sucesso")
return True
except Exception as e:
print(f"❌ Erro nos módulos de teste: {e}")
return False
def main():
"""Função principal"""
print("🧪 Sistema de Testes Massivos - AgentGraph")
print("=" * 60)
print("📍 Executando da raiz do projeto para acesso completo aos módulos")
print("=" * 60)
# Verificações pré-execução
checks = [
("Dependências", check_dependencies),
("Configuração AgentGraph", check_agentgraph_setup),
("Status do Cache", check_cache_disabled),
("Módulos de Teste", check_test_modules)
]
print("\n🔍 Verificações pré-execução:")
all_passed = True
for check_name, check_func in checks:
print(f"\n📋 {check_name}:")
if not check_func():
all_passed = False
if not all_passed:
print("\n❌ Algumas verificações falharam")
print("🔧 Corrija os problemas acima antes de continuar")
return False
print("\n" + "=" * 60)
print("🚀 Todas as verificações passaram!")
print("🌐 Iniciando servidor de testes...")
print("📊 Interface disponível em: http://localhost:5001")
print("🔄 Pressione Ctrl+C para parar")
print("=" * 60)
# Inicia o servidor
try:
from testes.app_teste import app
# Configura logging para Flask
import logging
logging.getLogger('werkzeug').setLevel(logging.WARNING) # Reduz logs do Flask
app.run(
host='0.0.0.0',
port=5001,
debug=True, # Habilita debug para ver logs
threaded=True,
use_reloader=False # Evita restart duplo
)
except KeyboardInterrupt:
print("\n👋 Sistema de testes encerrado pelo usuário")
except Exception as e:
print(f"\n❌ Erro ao iniciar servidor: {e}")
print("💡 Verifique se a porta 5001 está disponível")
return False
return True
if __name__ == '__main__':
print("🎯 SISTEMA DE TESTES MASSIVOS PARA AGENTGRAPH")
print("=" * 60)
print("📝 FUNCIONALIDADES:")
print("• Testes paralelos com até 8 workers simultâneos")
print("• Comparação de modelos SQL (GPT, Claude, Gemini)")
print("• Teste com/sem Processing Agent")
print("• Validação automática por LLM ou palavra-chave")
print("• Relatórios detalhados em Excel/CSV")
print("• Interface HTML intuitiva")
print("• Métricas de consistência e performance")
print("=" * 60)
success = main()
if success:
print("\n🎉 Sistema executado com sucesso!")
else:
print("\n❌ Erro na execução do sistema")
print("💡 Verifique os logs acima para detalhes")
sys.exit(0 if success else 1)