❓ Pregunta del Ejercicio:
Indica qué tipo de listener debes añadir (y cómo debes configurarlo) dado que queremos comprobar si el sistema soporta una carga de 5 usuarios concurrentes con un tiempo de respuesta inferior a 1 ms por petición.
Explica cuál sería el proceso que debes seguir, tras crear el plan, para poder analizar los datos del listener y validar dicha carga. Indica en qué consistiría dicho análisis.
🎯 1. Listeners Recomendados para el Análisis
🏆 Summary Report (PRINCIPAL)
El listener más importante para validar rendimiento y tiempo de respuesta.
Configuración:
• Nombre: Analisis_Rendimiento_5_Usuarios• Ubicación: Nivel Thread Group
• Write to file: resultados_carga.jtl (opcional)
• Configure table: Mostrar todas las columnas
🎯 Métricas clave a monitorear:
• Average: Tiempo promedio de respuesta (debe ser < 1ms)
• Min/Max: Tiempos mínimo y máximo
• Error %: Porcentaje de errores (debe ser 0%)
• Throughput: Requests por segundo
• KB/sec: Transferencia de datos
• Average: Tiempo promedio de respuesta (debe ser < 1ms)
• Min/Max: Tiempos mínimo y máximo
• Error %: Porcentaje de errores (debe ser 0%)
• Throughput: Requests por segundo
• KB/sec: Transferencia de datos
📈 Graph Results (COMPLEMENTARIO)
Para visualizar la evolución de los tiempos de respuesta en tiempo real.
Configuración:
• Nombre: Grafica_Tiempos_Respuesta• Display Graph: ✓ Activado
• Scale factor: 1
• Max samples: 1000
🔍 View Results Tree (DEPURACIÓN)
Para análisis detallado de requests individuales y debugging.
Configuración:
• Nombre: Detalle_Requests• Log/Display Only: Errors (para optimizar rendimiento)
• Maximum number of samples: 100
⚠️ Importante: Solo usar durante desarrollo/debugging. Desactivar en tests de carga reales.
📊 Aggregate Report (ANÁLISIS ESTADÍSTICO)
Para análisis estadístico completo con percentiles y desviación estándar.
Configuración:
• Nombre: Estadisticas_Completas• Include 90th percentile: ✓
• Include 95th percentile: ✓
• Include 99th percentile: ✓
⚙️ 2. Configuración del Test para 5 Usuarios
5
Number of Threads
0-5
Ramp-up Period (segundos)
10-50
Loop Count (iteraciones)
< 1ms
Target Response Time
Thread Group: Test_Carga_5_Usuarios
├── Number of Threads: 5
├── Ramp-up Period: 5 segundos (1 usuario por segundo)
├── Loop Count: 20 (para obtener datos suficientes)
└── Duration: Indefinite
🔄 3. Proceso de Análisis Paso a Paso
📋 Metodología de Análisis
1
Ejecutar el Test
Lanzar el plan JMeter y monitorear en tiempo real el Summary Report.
Lanzar el plan JMeter y monitorear en tiempo real el Summary Report.
2
Monitorear Métricas en Tiempo Real
Observar especialmente la columna "Average" del Summary Report durante la ejecución.
Observar especialmente la columna "Average" del Summary Report durante la ejecución.
3
Verificar Estabilización
Esperar a que los 5 usuarios estén activos y las métricas se estabilicen.
Esperar a que los 5 usuarios estén activos y las métricas se estabilicen.
4
Recopilar Datos Finales
Al finalizar, capturar los valores finales de todas las métricas.
Al finalizar, capturar los valores finales de todas las métricas.
5
Análisis y Validación
Comparar resultados contra los criterios de aceptación.
Comparar resultados contra los criterios de aceptación.
📈 4. Análisis Detallado de los Datos
🎯 Criterios de Validación
✅ SISTEMA CUMPLE si:
• Average Response Time ≤ 1ms en Summary Report
• 95th Percentile ≤ 1ms en Aggregate Report
• Error Rate = 0% en todos los listeners
• Throughput estable durante toda la prueba
• No errores de conexión en View Results Tree
• Average Response Time ≤ 1ms en Summary Report
• 95th Percentile ≤ 1ms en Aggregate Report
• Error Rate = 0% en todos los listeners
• Throughput estable durante toda la prueba
• No errores de conexión en View Results Tree
⚠️ SISTEMA REQUIERE OPTIMIZACIÓN si:
• Average Response Time > 1ms pero < 5ms
• Algunos percentiles superan 1ms
• Error Rate < 5%
• Throughput variable pero sin degradación severa
• Average Response Time > 1ms pero < 5ms
• Algunos percentiles superan 1ms
• Error Rate < 5%
• Throughput variable pero sin degradación severa
❌ SISTEMA NO CUMPLE si:
• Average Response Time > 5ms
• Error Rate > 5%
• Timeouts o errores de conexión
• Degradación progresiva del rendimiento
• Picos extremos en Graph Results
• Average Response Time > 5ms
• Error Rate > 5%
• Timeouts o errores de conexión
• Degradación progresiva del rendimiento
• Picos extremos en Graph Results
📊 Métricas Específicas a Analizar
🔍 En Summary Report:
- Label: Identificar qué requests específicos tienen problemas
- Samples: Verificar que se ejecutaron todas las iteraciones
- Average: ¡CRÍTICO! Debe ser ≤ 1ms
- Min/Max: Detectar outliers y variabilidad
- Std. Dev.: Medir consistencia (valores bajos = mejor)
- Error %: Debe ser 0.00%
- Throughput: Requests/segundo procesados
📈 En Graph Results:
- Línea de tendencia: Debe mantenerse plana y baja
- Picos: Identificar si hay degradación temporal
- Patrón: Buscar comportamiento errático
🔬 En Aggregate Report:
- 90th Percentile: 90% requests ≤ 1ms
- 95th Percentile: 95% requests ≤ 1ms
- 99th Percentile: Detectar outliers extremos
📋 Reporte Final
El análisis debe generar un reporte que incluya:
- Resultado de la validación: ✅ CUMPLE / ⚠️ PARCIAL / ❌ NO CUMPLE
- Métricas obtenidas vs. esperadas
- Identificación de cuellos de botella (si los hay)
- Recomendaciones para optimización
- Capturas de pantalla de los listeners principales
🛠️ 5. Configuración Práctica Paso a Paso
1. Añadir Listeners al Thread Group:
├── Summary Report: "Analisis_Rendimiento_5_Usuarios"
├── Graph Results: "Grafica_Tiempos_Respuesta"
├── Aggregate Report: "Estadisticas_Completas"
└── View Results Tree: "Detalle_Requests" (solo para debugging)
2. Configurar Thread Group:
├── Number of Threads: 5
├── Ramp-up Period: 5 segundos
├── Loop Count: 20
└── Delay Thread creation until needed: ✓
3. Ejecutar y monitorear:
├── Observar Summary Report en tiempo real
├── Verificar Average < 1ms
├── Confirmar Error % = 0.00%
└── Capturar resultados finales
4. Análisis post-ejecución:
├── Verificar todos los criterios de aceptación
├── Documentar métricas obtenidas
├── Generar reporte de validación
└── Proponer optimizaciones si es necesario