JMeter MCP Server

Ejecuta pruebas de JMeter y analiza resultados a través de clientes compatibles con MCP.

Documentación

🚀 Servidor JMeter MCP

Trust Score

Este es un servidor de Protocolo de Contexto de Modelo (MCP) que permite ejecutar pruebas de JMeter a través de clientes compatibles con MCP y analizar los resultados de las pruebas.

[!IMPORTANT] 📢 ¿Buscas un Asistente de IA dentro de JMeter? 🚀 Echa un vistazo a Feather Wand

Anthropic Cursor Windsurf

📋 Características

Ejecución de JMeter

  • 📊 Ejecutar pruebas de JMeter en modo no gráfico
  • 🖥️ Iniciar JMeter en modo gráfico
  • 📝 Capturar y devolver la salida de ejecución
  • 📊 Generar el panel de informes de JMeter

Análisis de Resultados de Pruebas

  • 📈 Analizar y procesar resultados de pruebas de JMeter (archivos JTL)
  • 📊 Calcular métricas de rendimiento integrales
  • 🔍 Identificar cuellos de botella de rendimiento automáticamente
  • 💡 Generar información práctica y recomendaciones
  • 📊 Crear visualizaciones de los resultados de las pruebas
  • 📑 Generar informes HTML con los resultados del análisis

🛠️ Instalación

Instalación Local

  1. Instalar uv:

  2. Asegúrate de que JMeter esté instalado en tu sistema y sea accesible desde la línea de comandos.

⚠️ Importante: Asegúrate de que JMeter sea ejecutable. Puedes hacerlo ejecutando:

chmod +x /path/to/jmeter/bin/jmeter
  1. Instalar las dependencias de Python requeridas:
pip install -r requirements.txt
  1. Configurar el archivo .env, consulta el archivo .env.example para más detalles.
# JMeter Configuration
JMETER_HOME=/path/to/apache-jmeter-5.6.3
JMETER_BIN=${JMETER_HOME}/bin/jmeter

# Optional: JMeter Java options
JMETER_JAVA_OPTS="-Xms1g -Xmx2g"

💻 Uso de MCP

  1. Conéctate al servidor usando un cliente compatible con MCP (por ejemplo, Claude Desktop, Cursor, Windsurf)

  2. Envía un prompt al servidor:

Run JMeter test /path/to/test.jmx
  1. El cliente compatible con MCP utilizará las herramientas disponibles:

Herramientas de Ejecución de JMeter

  • 🖥️ execute_jmeter_test: Inicia JMeter en modo gráfico, pero no ejecuta la prueba según el diseño de JMeter
  • 🚀 execute_jmeter_test_non_gui: Ejecuta una prueba de JMeter en modo no gráfico (modo predeterminado para mejor rendimiento)

Herramientas de Análisis de Resultados de Pruebas

  • 📊 analyze_jmeter_results: Analiza los resultados de pruebas de JMeter y proporciona un resumen de métricas clave e información
  • 🔍 identify_performance_bottlenecks: Identifica cuellos de botella de rendimiento en los resultados de pruebas de JMeter
  • 💡 get_performance_insights: Obtén información y recomendaciones para mejorar el rendimiento
  • 📈 generate_visualization: Genera visualizaciones de los resultados de pruebas de JMeter

🏗️ Configuración de MCP

Agrega la siguiente configuración a la configuración de tu cliente MCP:

{
    "mcpServers": {
      "jmeter": {
        "command": "/path/to/uv",
        "args": [
          "--directory",
          "/path/to/jmeter-mcp-server",
          "run",
          "jmeter_server.py"
        ]
      }
    }
}

✨ Casos de Uso

Ejecución de Pruebas

  • Ejecutar pruebas de JMeter en modo no gráfico para mejor rendimiento
  • Iniciar JMeter en modo gráfico para el desarrollo de pruebas
  • Generar paneles de informes de JMeter

Análisis de Resultados de Pruebas

  • Analizar archivos JTL para comprender las características de rendimiento
  • Identificar cuellos de botella de rendimiento y su severidad
  • Obtener recomendaciones prácticas para mejoras de rendimiento
  • Generar visualizaciones para una mejor comprensión de los resultados
  • Crear informes HTML completos para compartir con las partes interesadas

🛑 Manejo de Errores

El servidor:

  • Validará que el archivo de prueba exista
  • Comprobará que el archivo tenga extensión .jmx
  • Validará que los archivos JTL existan y tengan formatos válidos
  • Capturará y devolverá cualquier error de ejecución o análisis

📊 Analizador de Resultados de Pruebas

El Analizador de Resultados de Pruebas es una característica potente que te ayuda a comprender mejor los resultados de tus pruebas de JMeter. Consta de varios componentes:

Módulo de Análisis Sintáctico

  • Soporta formatos JTL tanto XML como CSV
  • Procesa eficientemente archivos grandes con analizadores de streaming
  • Valida formatos de archivo y maneja errores de manera elegante

Calculadora de Métricas

  • Calcula métricas de rendimiento generales (promedio, mediana, percentiles)
  • Proporciona métricas específicas por endpoint para análisis detallado
  • Genera métricas de series temporales para rastrear el rendimiento a lo largo del tiempo
  • Compara métricas con puntos de referencia para contexto

Analizador de Cuellos de Botella

  • Identifica endpoints lentos según los tiempos de respuesta
  • Detecta endpoints propensos a errores con altas tasas de error
  • Encuentra anomalías y valores atípicos en los tiempos de respuesta
  • Analiza el impacto de la concurrencia en el rendimiento

Generador de Información

  • Proporciona recomendaciones específicas para abordar cuellos de botella
  • Analiza patrones de error y sugiere soluciones
  • Genera información sobre el comportamiento de escalado y límites de capacidad
  • Prioriza recomendaciones según el impacto potencial

Motor de Visualización

  • Crea gráficos de series temporales que muestran el rendimiento a lo largo del tiempo
  • Genera gráficos de distribución para el análisis de tiempos de respuesta
  • Produce gráficos comparativos de endpoints para identificar problemas
  • Crea informes HTML completos con todos los resultados del análisis

📝 Ejemplo de Uso

# Run a JMeter test and generate a results file
Run JMeter test sample_test.jmx in non-GUI mode and save results to results.jtl

# Analyze the results
Analyze the JMeter test results in results.jtl and provide detailed insights

# Identify bottlenecks
What are the performance bottlenecks in the results.jtl file?

# Get recommendations
What recommendations do you have for improving performance based on results.jtl?

# Generate visualizations
Create a time series graph of response times from results.jtl