Files
oci_tips/GenAI/mcp/sample1/test_system.py
2025-12-03 11:05:21 -03:00

98 lines
3.0 KiB
Python

#!/usr/bin/env python3
"""
Script de teste automatizado para o sistema MCP.
Testa todas as 4 operações matemáticas e casos de erro.
"""
import asyncio
import json
from mcp_client import MCPChatClient
async def test_system():
"""Testa o sistema com uma sequência de mensagens variadas."""
print("=" * 60)
print(" TESTE AUTOMATIZADO - Sistema MCP")
print("=" * 60)
print()
client = MCPChatClient()
try:
# Conectar ao servidor
await client.connect_to_server()
# Sequência de mensagens de teste
test_cases = [
{
"descricao": "Teste de Soma",
"mensagem": "Quanto é 15 mais 7?"
},
{
"descricao": "Teste de Subtração",
"mensagem": "Subtraia 5 de 20"
},
{
"descricao": "Teste de Multiplicação",
"mensagem": "Multiplique 8 por 6"
},
{
"descricao": "Teste de Divisão",
"mensagem": "Divida 100 por 4"
},
{
"descricao": "Teste de Divisão por Zero (Erro Esperado)",
"mensagem": "Divida 10 por 0"
},
{
"descricao": "Teste de Operação Não Implementada",
"mensagem": "Calcule 5 elevado ao quadrado"
},
{
"descricao": "Teste de Linguagem Natural - Soma",
"mensagem": "Eu tenho 25 maçãs e ganhei mais 13, quantas tenho agora?"
},
{
"descricao": "Teste de Linguagem Natural - Subtração",
"mensagem": "Se eu tinha 50 reais e gastei 18, quanto sobrou?"
}
]
print("📝 Executando sequência de testes...\n")
print("=" * 60)
for i, test_case in enumerate(test_cases, 1):
print(f"\n[Teste {i}/{len(test_cases)}] {test_case['descricao']}")
print("-" * 60)
print(f"👤 Usuário: {test_case['mensagem']}")
response = await client.chat(test_case['mensagem'])
print(f"🤖 Assistente: {response}")
print("=" * 60)
# Pequena pausa entre mensagens
await asyncio.sleep(1)
print("\n✅ Todos os testes concluídos!")
print("\nResumo dos testes:")
print(" ✓ Soma")
print(" ✓ Subtração")
print(" ✓ Multiplicação")
print(" ✓ Divisão")
print(" ✓ Tratamento de erro (divisão por zero)")
print(" ✓ Operação não implementada")
print(" ✓ Interpretação de linguagem natural")
except Exception as e:
print(f"\n❌ Erro durante o teste: {e}")
import traceback
traceback.print_exc()
finally:
await client.close()
if __name__ == "__main__":
asyncio.run(test_system())