Test Automator

Um servidor alimentado por LLM para automatizar testes unitários, de integração, E2E e de API.

Documentação

🤖 Test Automator

Uma plataforma abrangente, inteligente e extensível de automação de testes, alimentada por Grandes Modelos de Linguagem. O Test Automator simplifica o processo de geração, execução e análise de diversos tipos de testes de software (unitários, de integração, ponta a ponta, API) tanto para UI web quanto para lógica de backend.

Python 3.11+ License: MIT MCP Compatible Windows Compatible

✨ Recursos

🧠 Geração de Testes com LLM

  • Análise Inteligente: Analisa automaticamente seu código para entender a estrutura e as dependências
  • Casos de Teste Inteligentes: Gera cenários de teste abrangentes, incluindo casos extremos e condições de erro
  • Consciente do Contexto: Entende seus padrões de código e gera testes idiomáticos
  • Suporte a Múltiplos Idiomas: Otimizado para Python com arquitetura extensível

🔧 Tipos de Teste Abrangentes

🔬 Testes Unitários

  • Analisa funções, métodos e classes individuais
  • Gera funções de teste pytest com fixtures adequadas
  • Inclui cenários positivos, negativos e de casos extremos
  • Lida com padrões de código síncronos e assíncronos

🔗 Testes de Integração

  • Testa interações entre diferentes módulos e serviços
  • Simula interações reais entre componentes
  • Utiliza estratégias de mocking apropriadas
  • Testa fluxos de configuração e inicialização

🌐 Testes Ponta a Ponta (E2E)

  • Automação de navegador usando Playwright e browser-use
  • Simula interações reais de usuários
  • Testa fluxos de trabalho completos do usuário
  • Captura capturas de tela e gera relatórios visuais

🚀 Testes de API

  • Testes abrangentes de endpoints HTTP
  • Validação de requisição/resposta
  • Testes de autenticação e autorização
  • Testes de desempenho e tempo limite

📊 Relatórios Inteligentes

  • Análise Aprimorada por LLM: Insights gerados por IA a partir dos resultados dos testes
  • Suporte a Múltiplos Formatos: Análise de relatórios XML, JSON e HTML
  • Recomendações Acionáveis: Sugestões específicas para melhoria
  • Avaliação de Riscos: Identifica áreas críticas que precisam de atenção

🛠️ Instalação

Pré-requisitos

  • Python 3.11+
  • Chave da API do Google (para Gemini LLM)
  • Claude Code ou Cursor com suporte a MCP
  • Git

Instalação Rápida

Windows (Nativo ou 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

⚙️ Configuração

1. Obter a Chave da API do Google

  1. Visite Google AI Studio
  2. Crie uma nova chave de API
  3. Defina a variável de ambiente:
    # Windows
    set GOOGLE_API_KEY=your_api_key_here
    
    # Linux/macOS/WSL
    export GOOGLE_API_KEY=your_api_key_here
    

2. Configurar o Claude Code

Opção A: Configuração via CLI

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

Opção B: Configuração Manual

Adicione à configuração do seu 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"
          }
        }
      }
    }
  }
}

Exemplos de Caminhos no Windows

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

🚀 Uso

Ferramentas MCP Disponíveis

generate_tests(code_path, test_type="all")

Gere testes inteligentes para seu 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/")

Execute os testes gerados:

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

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

analyze_test_report(report_path)

Obtenha insights alimentados por LLM a partir dos resultados dos testes:

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

Exemplo de Fluxo de Trabalho

# 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")

🎯 Recursos Avançados

Suporte a Grandes Bases de Código (100k-200k linhas)

  • Análise Modular: Processa o código em blocos gerenciáveis
  • Testes Incrementais: Gera testes incrementalmente para melhor desempenho
  • Execução Paralela: Suporta pytest-xdist para execução paralela de testes
  • Filtragem Inteligente: Foca em unidades testáveis para evitar sobrecarregar o LLM

Compatibilidade Multiplataforma

  • Windows Nativo: Suporte completo com tratamento adequado de caminhos
  • Integração WSL: Suporte contínuo ao Subsistema Windows para Linux
  • Linux/macOS: Suporte nativo a Unix
  • Tratamento de Event Loop: Otimizações assíncronas específicas da plataforma

Otimizações de Desempenho

  • Operações Assíncronas: Execução de testes sem bloqueio
  • Processamento em Lote: Tratamento eficiente de múltiplos arquivos de teste
  • Gerenciamento de Recursos: Limpeza adequada e gerenciamento de memória
  • Tratamento de Tempo Limite: Tempos limite configuráveis para diferentes tipos de teste

📁 Estrutura do Projeto

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

🔧 Solução de Problemas

Problemas Comuns

"GOOGLE_API_KEY não 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 Playwright não encontrados"

# Install browsers
playwright install

# Install system dependencies (Linux)
playwright install-deps

Problemas de Permissão no Windows

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

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

Problemas de Exibição no WSL (para testes E2E)

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

🤝 Contribuindo

  1. Faça um fork do repositório
  2. Crie um branch de recurso (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add amazing feature')
  4. Envie para o branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

📄 Licença

Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

🙏 Agradecimentos

  • Gemini LLM: O poderoso modelo de linguagem do Google para geração inteligente de testes
  • Playwright: Framework de automação de navegador entre navegadores
  • pytest: Framework robusto de testes em Python
  • Protocolo MCP: Protocolo de Contexto de Modelo para integração contínua com IA
  • Claude Code: Ambiente de desenvolvimento alimentado por IA