Test Automator

Un servidor impulsado por LLM para automatizar pruebas unitarias, de integración, E2E y de API.

Documentación

🤖 Test Automator

Una plataforma integral, inteligente y extensible de automatización de pruebas impulsada por Modelos de Lenguaje de Gran Escala. Test Automator optimiza el proceso de generar, ejecutar y analizar varios tipos de pruebas de software (unitarias, de integración, de extremo a extremo, API) tanto para interfaces web como para lógica de backend.

Python 3.11+ License: MIT MCP Compatible Windows Compatible

✨ Características

🧠 Generación de Pruebas Impulsada por LLM

  • Análisis Inteligente: Analiza automáticamente tu código para comprender la estructura y las dependencias
  • Casos de Prueba Inteligentes: Genera escenarios de prueba integrales, incluidos casos límite y condiciones de error
  • Consciente del Contexto: Comprende tus patrones de código y genera pruebas idiomáticas
  • Soporte Multi-Lenguaje: Optimizado para Python con arquitectura extensible

🔧 Tipos de Pruebas Integrales

🔬 Pruebas Unitarias

  • Analiza funciones, métodos y clases individuales
  • Genera funciones de prueba pytest con fixtures adecuados
  • Incluye escenarios positivos, negativos y de casos límite
  • Maneja patrones de código síncronos y asíncronos

🔗 Pruebas de Integración

  • Prueba interacciones entre diferentes módulos y servicios
  • Simula interacciones reales entre componentes
  • Utiliza estrategias de mocking apropiadas
  • Prueba flujos de configuración e inicialización

🌐 Pruebas de Extremo a Extremo (E2E)

  • Automatización de navegador usando Playwright y browser-use
  • Simula interacciones reales de usuario
  • Prueba flujos de trabajo completos de usuario
  • Captura capturas de pantalla y genera informes visuales

🚀 Pruebas de API

  • Pruebas integrales de endpoints HTTP
  • Validación de solicitudes/respuestas
  • Pruebas de autenticación y autorización
  • Pruebas de rendimiento y tiempo de espera

📊 Informes Inteligentes

  • Análisis Mejorado por LLM: Información impulsada por IA a partir de resultados de pruebas
  • Soporte Multi-Formato: Análisis de informes XML, JSON y HTML
  • Recomendaciones Accionables: Sugerencias específicas para mejorar
  • Evaluación de Riesgos: Identifica áreas críticas que necesitan atención

🛠️ Instalación

Requisitos Previos

  • Python 3.11+
  • Clave de API de Google (para Gemini LLM)
  • Claude Code o Cursor con soporte MCP
  • Git

Instalación Rápida

Windows (Nativo o WSL)

# Clone the repository
git clone https://github.com/your-repo/test-automator.git
cd test-automator

# Create virtual environment
python -m venv .venv
.venv\\Scripts\\activate  # Windows
# or
source .venv/bin/activate  # WSL/Linux

# Install dependencies
pip install -e .

# Install Playwright browsers
playwright install

Linux/macOS

# Clone and setup
git clone https://github.com/your-repo/test-automator.git
cd test-automator

# Create virtual environment
python3.11 -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -e .

# Install Playwright browsers
playwright install

⚙️ Configuración

1. Obtener Clave de API de Google

  1. Visita Google AI Studio
  2. Crea una nueva clave de API
  3. Establece la variable de entorno:
    # Windows
    set GOOGLE_API_KEY=your_api_key_here
    
    # Linux/macOS/WSL
    export GOOGLE_API_KEY=your_api_key_here
    

2. Configurar Claude Code

Opción A: Configuración CLI

claude mcp add test-automator "/path/to/test-automator/.venv/bin/test-automator" -e "GOOGLE_API_KEY=your_api_key"

Opción B: Configuración Manual

Agrega a tu configuración de Claude Code (~/.claude.json):

{
  "projects": {
    "/your/project/path": {
      "mcpServers": {
        "test-automator": {
          "type": "stdio",
          "command": "/path/to/test-automator/.venv/bin/test-automator",
          "env": {
            "GOOGLE_API_KEY": "your_api_key_here"
          }
        }
      }
    }
  }
}

Ejemplos de Rutas de Windows

  • Windows: C:/path/to/test-automator/.venv/Scripts/test-automator.exe
  • WSL: /home/username/test-automator/.venv/bin/test-automator

🚀 Uso

Herramientas MCP Disponibles

generate_tests(code_path, test_type="all")

Genera pruebas inteligentes para tu código:

# Generate all test types
generate_tests("/path/to/your/code", "all")

# Generate specific test type
generate_tests("/path/to/your/api.py", "unit")
generate_tests("/path/to/your/project", "integration")
generate_tests("/path/to/your/webapp", "e2e")
generate_tests("/path/to/your/api", "api")

run_tests(test_type="all", target_path="tests/")

Ejecuta las pruebas generadas:

# Run all tests
run_tests("all", "/path/to/tests")

# Run specific test type
run_tests("unit", "/path/to/tests")

analyze_test_report(report_path)

Obtén información impulsada por LLM de los resultados de las pruebas:

analyze_test_report("/path/to/test_results.xml")

Flujo de Trabajo de Ejemplo

# 1. Generate comprehensive tests
generate_tests("/home/user/my-project", "all")

# 2. Run the tests
run_tests("all", "/home/user/my-project/tests")

# 3. Analyze results
analyze_test_report("/home/user/my-project/tests/results/unit_results.xml")

🎯 Características Avanzadas

Soporte para Código Grande (100k-200k líneas)

  • Análisis Modular: Procesa el código en fragmentos manejables
  • Pruebas Incrementales: Genera pruebas de forma incremental para mejor rendimiento
  • Ejecución Paralela: Soporta pytest-xdist para ejecuciones de pruebas en paralelo
  • Filtrado Inteligente: Se enfoca en unidades comprobables para evitar sobrecargar el LLM

Compatibilidad Multi-Plataforma

  • Windows Nativo: Soporte completo con manejo adecuado de rutas
  • Integración WSL: Soporte fluido de Windows Subsystem for Linux
  • Linux/macOS: Soporte nativo de Unix
  • Manejo de Bucle de Eventos: Optimizaciones asíncronas específicas de la plataforma

Optimizaciones de Rendimiento

  • Operaciones Asíncronas: Ejecución de pruebas sin bloqueo
  • Procesamiento por Lotes: Manejo eficiente de múltiples archivos de prueba
  • Gestión de Recursos: Limpieza adecuada y gestión de memoria
  • Manejo de Tiempos de Espera: Tiempos de espera configurables para diferentes tipos de pruebas

📁 Estructura del Proyecto

test-automator/
├── test_automator/
│   ├── __init__.py
│   ├── mcp_server.py          # Main MCP server with tools
│   ├── test_generator.py      # LLM-powered test generation
│   ├── test_runner.py         # Cross-platform test execution
│   └── report_analyzer.py     # AI-enhanced report analysis
├── pyproject.toml             # Package configuration
└── README.md                  # This file

🔧 Solución de Problemas

Problemas Comunes

"GOOGLE_API_KEY no encontrada"

# Set the environment variable
export GOOGLE_API_KEY="your_api_key_here"

# Or add to shell profile
echo 'export GOOGLE_API_KEY="your_api_key"' >> ~/.bashrc

"Navegadores de Playwright no encontrados"

# Install browsers
playwright install

# Install system dependencies (Linux)
playwright install-deps

Problemas de Permisos en Windows

# Ensure script execution is enabled
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

# Check virtual environment activation
.venv\\Scripts\\activate

Problemas de Visualización en WSL (para pruebas E2E)

# Install X11 server for Windows
# Add to ~/.bashrc:
export DISPLAY=:0.0

🤝 Contribuciones

  1. Haz un fork del repositorio
  2. Crea una rama de características (git checkout -b feature/amazing-feature)
  3. Realiza tus cambios (git commit -m 'Add amazing feature')
  4. Haz push a la rama (git push origin feature/amazing-feature)
  5. Abre una Solicitud de Extracción (Pull Request)

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.

🙏 Agradecimientos

  • Gemini LLM: El poderoso modelo de lenguaje de Google para generación inteligente de pruebas
  • Playwright: Marco de automatización de navegador multiplataforma
  • pytest: Marco de pruebas robusto de Python
  • Protocolo MCP: Protocolo de Contexto de Modelo para integración fluida de IA
  • Claude Code: Entorno de desarrollo impulsado por IA