14. Generación de panel de informes

JMeter admite la generación de informes del tablero para obtener gráficos y estadísticas de un plan de prueba.
Este capítulo describe cómo configurar y utilizar el generador.

14.1 Resumen

El generador de tableros es una extensión modular de JMeter. Su comportamiento predeterminado es leer y procesar muestras de archivos CSV para generar archivos HTML que contienen vistas de gráficos. Puede generar el informe al final de una prueba de carga o bajo demanda.

Este informe proporciona las siguientes métricas:

  • Tabla APDEX (Índice de rendimiento de aplicaciones) que calcula para cada transacción el APDEX en función de valores configurables para umbrales tolerados y satisfechos
  • Un gráfico de resumen de solicitud que muestra el porcentaje de solicitudes exitosas y fallidas (los resultados de muestra de Transaction Controller no se tienen en cuenta):
  • Una tabla de estadísticas que proporciona en una tabla un resumen de todas las métricas por transacción, incluidos 3 percentiles configurables:
  • Una tabla de errores que proporciona un resumen de todos los errores y su proporción en el total de solicitudes:
  • Una tabla de los 5 errores principales por muestreador que proporciona para cada muestreador (excluyendo Transaction Controller de forma predeterminada) los 5 errores principales:
  • Gráfico ampliable donde puede marcar/desmarcar cada transacción para mostrarla/ocultarla para:
    • Tiempos de respuesta a lo largo del tiempo (incluye resultados de muestra del controlador de transacciones):
    • Tiempos de respuesta Percentiles a lo largo del tiempo (solo respuestas exitosas):
    • Subprocesos activos a lo largo del tiempo:
    • Rendimiento de bytes a lo largo del tiempo (ignora los resultados de muestra del controlador de transacciones):
    • Latencias a lo largo del tiempo (incluye resultados de muestra del controlador de transacciones):
    • Tiempo de conexión a lo largo del tiempo (incluye resultados de muestra del controlador de transacciones):
    • Hits por segundo (ignora los resultados de muestra del controlador de transacciones):
    • Códigos de respuesta por segundo (ignora los resultados de muestra de Transaction Controller):
    • Transacciones por segundo (incluye resultados de muestra del controlador de transacciones):
    • Tiempo de respuesta frente a solicitud por segundo (ignora los resultados de muestra del controlador de transacciones):
    • Latencia frente a solicitud por segundo (ignora los resultados de muestra del controlador de transacciones):
    • Descripción general del tiempo de respuesta (excluye los resultados de muestra de Transaction Controller):
    • Percentiles de tiempos de respuesta (incluye resultados de muestra de Transaction Controller):
    • Tiempos frente a subprocesos (incluye resultados de muestra del controlador de transacciones):
      En modo distribuido, este gráfico muestra en un eje horizontal el número de subprocesos para 1 servidor. Es una limitación actual.
    • Distribución del tiempo de respuesta (incluye resultados de muestra del controlador de transacciones):

14.2 Configuración de la generación de tableros

La generación de paneles utiliza las propiedades de JMeter para personalizar el informe. Algunas propiedades se utilizan para la configuración general y otras se utilizan para una configuración de gráfico particular o una configuración de exportador.

Todas las propiedades del generador de informes se pueden encontrar en el archivo reportgenerator.properties . Para personalizar estas propiedades, debe copiarlas en el archivo user.properties y modificarlas.

14.2.1 Requisitos

14.2.1.1 Configuración de filtrado

Asegúrese de configurar la propiedad jmeter.reportgenerator.exporter.html.series_filter para mantener solo las transacciones que desea en el informe si no desea todo.
En el ejemplo de abajo solo debes modificar Search|Order , mantén el resto:
jmeter.reportgenerator.exporter.html.series_filter=^(Buscar|Pedido)(-éxito|-fallo)?$

14.2.1.2 Guardar la configuración del Servicio

Para permitir que el generador funcione, el archivo CSV generado por JMeter debe incluir ciertos datos requeridos que son correctos de manera predeterminada en la última versión en vivo de JMeter.
Si modificó esas configuraciones, verifique que su configuración de JMeter siga estas configuraciones (estos son los valores predeterminados):

jmeter.save.saveservice.bytes = verdadero
# Solo disponible con HttpClient4
#jmeter.save.saveservice.sent_bytes=verdadero
jmeter.save.saveservice.label = verdadero
jmeter.save.saveservice.latency = verdadero
jmeter.save.saveservice.response_code = verdadero
jmeter.save.saveservice.response_message = verdadero
jmeter.save.saveservice.successful = verdadero
jmeter.save.saveservice.thread_counts = verdadero
jmeter.save.saveservice.thread_name = verdadero
jmeter.save.saveservice.time = verdadero
jmeter.save.saveservice.connect_time = verdadero
jmeter.save.saveservice.assertion_results_failure_message = verdadero
# el formato de la marca de tiempo debe incluir la hora y debe incluir la fecha.
# Por ejemplo, el valor predeterminado, que es milisegundos desde la época:
jmeter.save.saveservice.timestamp_format=ms
# O lo siguiente también sería adecuado
# jmeter.save.saveservice.timestamp_format = aaaa/MM/dd HH:mm:ss
                        

14.2.1.3 Configuración del controlador de transacciones

Si usa Transaction Controller , para garantizar resultados más precisos:

  • desmarque la casilla ( esta es la configuración predeterminada ): Generar muestra principal
  • Si Transaction Controller se usa como contenedor para representar una solicitud de una página HTML que activará llamadas Ajax y solo desea en su informe Transaction Controller, haga clic con el botón derecho en el nodo y aplique la política de nomenclatura.
    Obtendrás esto:

14.2.2 Configuración general

Todas las propiedades deben tener el prefijo
jmeter.generador de informes.

Parámetros

Atributo
Descripción
Requerido
report_title
Título utilizado en el informe generado.
Valor predeterminado: "Panel de Apache JMeter"
No
formato de fecha
Formato de fecha predeterminado de SimpleDateFormat Java API con Locale.ENGLISH.
El formato de fecha predeterminado es aaaaMMddHHmmss
Útil cuando desea generar un informe después de la prueba de carga y el archivo de resultados contiene una marca de tiempo en otra zona horaria. En este caso, el formato de fecha debe incluir la zona horaria (zzz).
Si jmeter.save.saveservice.timestamp_format no contiene el año, use 1970 como año

Ejemplo: dd/MM/aaaa HH:mm:ss zzz
No
fecha de inicio
Fecha de inicio del rango de datos a utilizar para el informe.
El formato de fecha está definido por la propiedad date_format.
Predeterminado: no completado, lo que significa que el rango de datos se usará desde el principio
No
fecha final
Fecha de finalización del rango de datos que se utilizará para el informe.
El formato de fecha está definido por la propiedad date_format.
Predeterminado: no lleno, lo que significa que el rango de datos se usará hasta el final
No
granularidad_general
Granularidad de los gráficos a lo largo del tiempo. Los datos se agregan para tener marcas de 1 minuto.
La granularidad debe ser superior a 1 segundo (1000), de lo contrario, los gráficos de rendimiento serán incorrectos
Predeterminado: "60000" (1 minuto)
No
apdex_satisfied_threshold
Establece el umbral de satisfacción para el cálculo de APDEX (en ms).
Predeterminado: 500
No
apdex_tolerated_threshold
Establece el umbral de tolerancia para el cálculo de APDEX (en ms).
Predeterminado: 1500
No
jmeter.reportgenerator.apdex_per_transaction
Establece el umbral de satisfacción y tolerancia para muestras específicas.
Use nombres de muestra o expresiones regulares.
El formato es nombre_muestra:satisfacción|tolerancia[;]
Los valores están en milisegundos.
Observe los dos puntos entre el nombre de la muestra y los valores, la tubería entre los umbrales y el punto y coma al final para separar diferentes muestras. No olvide escapar después del punto y coma para abarcar varias líneas.
Ejemplo:
jmeter.reportgenerator.apdex_per_transaction=muestra(\\d+):1000|2000;\
    muestras12:3000|4000;\
    escenario01-12:5000|6000
No
muestra_filtro
Establece el filtro de muestras a mantener para generar gráficos y estadísticas. Un valor vacío desactiva el filtrado.
Formato: expresión regular.
Defecto: ""
No
temp_dir
Establece el directorio temporal utilizado por el proceso de generación si necesita operaciones de E/S de archivos.
Predeterminado: temperatura
No
ventana_estadística
Establece el tamaño de la ventana deslizante utilizada por la evaluación de percentiles. Precaución: un valor más alto proporciona una mayor precisión pero necesita más memoria.
Predeterminado: 20000
No
Los percentiles utilizados por la tabla de resumen y los gráficos de percentiles se pueden ajustar a diferentes valores utilizando las 3 propiedades:
  • added_rpt_pct1 : Predeterminado a 90
  • added_rpt_pct2 : Predeterminado a 95
  • added_rpt_pct3 : Predeterminado a 99
Las rutas relativas se construyen desde el directorio de trabajo de JMeter (predeterminado: bin ).

Puede definir algunas propiedades generales que utiliza la configuración del generador. Estas propiedades se nombran libremente, pero debe usar el prefijo

jmeter.generador de informes.
para evitar la superposición de propiedades.

P.ej:

Definición de propiedad:
jmeter.reportgenerator.overall_granularity=60000
Referencia de la propiedad:
${jmeter.reportgenerator.overall_granularity}

14.2.3 Configuración de gráficos

Cada propiedad que describe una configuración gráfica debe tener el prefijo

jmeter.reportgenerator.graph.
seguido del identificador del gráfico.

14.2.3.1 Propiedades generales

Todos los gráficos admiten estas propiedades:

Parámetros

Atributo
Descripción
Requerido
nombre de la clase
El nombre de clase completo del gráfico
La clase del gráfico debe extenderse org.apache.jmeter.report.processor.graph.AbstractGraphConsumer .
Consulte la sección Gráfico predeterminado para obtener más detalles.
excluir_controladores
Define si el gráfico descarta las muestras del controlador. Predeterminado: falso
No
título
Establece el título del gráfico. Defecto: ""
No

14.2.3.2 Propiedades específicas

Las propiedades específicas del gráfico deben usar el prefijo:

jmeter.reportgenerator.graph.<graph_id>.property
El nombre de la propiedad se mapeará usando la transformación camel case y el método de coincidencia de la clase se llamará con el valor de la propiedad como argumento.

P.ej:

jmeter.reportgenerator.graph.<graph_id>.property.set_granularity=150
induce la llamada del método setGranularity(150) en la instancia del gráfico.

14.2.4 Ajustes de exportación

Cada propiedad que describe una configuración de exportador debe tener el prefijo

jmeter.reportgenerator.exportador
seguido del identificador del exportador.

14.2.4.1 Propiedades generales

Todos los exportadores admiten estas propiedades:

Parámetros

Atributo
Descripción
Requerido
nombre de la clase
El nombre de clase completo del exportador
La clase del exportador debe implementar org.apache.jmeter.report.dashboard.DataExporter .
filtros_solo_muestra_series
Define si series_filter (ver a continuación) se aplica solo en series de muestra. Valor predeterminado: verdadero
No
serie_filtro
Establece el filtro de serie. Un valor vacío desactiva el filtrado. Si no está vacío, la expresión regular debe terminar con (-success|-failure)?$
Formato: expresión regular. Defecto: ""
No
mostrar_controladores_solo
Define si solo se muestran las series de controladores. Predeterminado: falso
No

14.2.4.2 Propiedades específicas

Las propiedades específicas del exportador deben usar el prefijo

jmeter.reportgenerator.exporter.<id_exportador>.property

Parámetros

Atributo
Descripción
Requerido
salida_dir
Establece el directorio de destino para las páginas html generadas. Valor predeterminado: salida de informe
No
template_dir
Establece el directorio de origen de los archivos de plantilla a partir del cual se generan las páginas html. Predeterminado: plantilla de informe
No

14.2.4.3 Propiedades del gráfico

Las propiedades del gráfico permiten a los exportadores sobrescribir algunos datos del gráfico.
Deben usar el prefijo:

jmeter.reportgenerator.exporter.<id_exportador>.graph_options.<id_gráfico>

Parámetros

Atributo
Descripción
Requerido
marta
Establece la abscisa mínima para el gráfico.
No
maxX
Establece la abscisa máxima para el gráfico.
No
mínimo
Establece la ordenada mínima para el gráfico.
No
máxY
Establece la ordenada máxima para el gráfico.
No

14.2.4.4 Mecanismos de filtrado

A diferencia del filtrado en la sección Propiedades generales que descarta los datos antes de los cálculos, aquí el filtrado se realiza después de los cálculos y sirve para simplificar el informe final.

La propiedad series_filter permite filtrar qué serie de un gráfico (resp. filas de una tabla de resumen) usando una expresión regular que coincida con el nombre de la serie (resp. de la fila). Sin embargo, incluso si el nombre de la serie (resp. fila) coincide con el filtro, la configuración de las otras propiedades de filtrado puede provocar su descarte. Por el contrario, si no hay coincidencia, las otras propiedades pueden permitir mantenerla.

Las siguientes tablas muestran cómo funciona la configuración de las propiedades de filtrado.

Casos de descarte cuando hay coincidencia de patrones
filter_only_sample_series Graph/Summary admite discriminación de controladores La serie actual es una serie de controlador. mostrar_controladores_solo Descartado
Falso Falso - Falso Falso
Verdadero
- Falso
Verdadero
Verdadero Falso Falso
Verdadero
Verdadero Falso
Verdadero
Verdadero Falso - Falso
Verdadero
- Falso
Verdadero
Verdadero Falso Falso
Verdadero Verdadero
Verdadero Falso Falso
Verdadero

Casos de retención cuando no hay coincidencia de patrones
filter_only_sample_series Graph/Summary admite discriminación de controladores Mantuvo
Falso Falso Falso
Verdadero
Verdadero Falso Verdadero
Verdadero Falso

La configuración incorrecta del filtro puede generar gráficos/tablas de resumen vacías:
  • Si establece la propiedad show_controllers_only y el gráfico está configurado para excluir controladores.
  • Si la propiedad series_filter no coincide con ninguna serie.

14.2.5 Ejemplo de configuración

Puede copiar la siguiente configuración en su archivo user.properties para probar el generador de informes.

# Configure esta propiedad para cambiar el título del informe
#jmeter.reportgenerator.report_title=Panel de Apache JMeter

# Cambie este parámetro si desea cambiar la granularidad de los gráficos a lo largo del tiempo.
# La granularidad debe ser superior a 1000 (1 segundo), de lo contrario, los gráficos de rendimiento serán incorrectos
# ver error 60149
#jmeter.reportgenerator.overall_granularity=60000

 Cambie este parámetro si desea cambiar la granularidad de la distribución del tiempo de respuesta.
# Establecido en 100 ms por defecto
#jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity=100

# Cambie este parámetro si desea anular el umbral de satisfacción de APDEX.
jmeter.reportgenerator.apdex_satisfied_threshold=1500

# Cambie este parámetro si desea anular el umbral de tolerancia de APDEX.
jmeter.reportgenerator.apdex_tolerated_threshold=3000

# Establece el directorio de destino para las páginas html generadas, es mejor cambiarlo para cada generación
# Esto anulará el valor establecido a través de la opción de línea de comando -o
# jmeter.reportgenerator.exporter.html.property.output_dir=/tmp/test-report

# Indica qué series de gráficos se filtran (expresión regular)
# En el siguiente ejemplo, filtramos en Buscar y Ordenar muestras
# Tenga en cuenta que el final del patrón siempre debe incluir (-success|-failure)?$
# Transacciones por segundo sufijos Transacciones con "-éxito" o "-fracaso" según
# en el resultado
#jmeter.reportgenerator.exporter.html.series_filter=^(Buscar|Pedido)(-éxito|-fallo)?$

# Indica si el filtro de serie se aplica solo en series de muestra
jmeter.reportgenerator.exporter.html.filters_only_sample_series=true
                    
Adapte el parámetro output_dir a su entorno.

Esta configuración permite generar un informe donde:

  • Los gráficos a lo largo del tiempo tienen una granularidad de tiempo igual a 1 minuto.
  • El umbral de satisfacción para el cálculo de ADPEX es de 1 segundo y medio.
  • El umbral de tolerancia para el cálculo de ADPEX es de 3 segundos.
  • Los archivos HTML se generan en el directorio /tmp/test-report .
  • Solo se muestran las series cuyo nombre comienza con " s0 " o " s1 ".
  • El filtro anterior solo se aplica a gráficos (resp. tablas de resumen) donde las series (resp. filas) coinciden con muestras

14.3 Generación de informes

La generación de informes se puede realizar como un proceso independiente a partir de un archivo de registro de muestra o automáticamente después de ejecutar la prueba de carga.

14.3.1 Generación a partir de un archivo de registro CSV de muestra existente

Usa el siguiente comando:

jmeter -g <archivo de registro> -o <Ruta a la carpeta de salida>

14.3.2 Generación después de la prueba de carga

Usa el siguiente comando:

jmeter -n -t <archivo JMX de prueba> -l <archivo de registro de prueba> -e -o <Ruta a la carpeta de salida>

14.3.3 Generación usando el menú Herramientas GUI

Puede generar el informe HTML utilizando el elemento de menú Herramientas → Generar informe HTML :

Figura 14.1.  Menú de diálogo de informe HTML
Figura 14.1. Menú de diálogo de informe HTML

Para cada parámetro, consulte la siguiente tabla:

Parámetros

Atributo
Descripción
Requerido
Archivo de resultados (csv o jtl)
La salida CSV de una ejecución de prueba
archivo de propiedades de usuario
El archivo user.properties utilizado para ejecutar la prueba de carga
Directorio de salida
El directorio donde desea que se cree el informe (debe estar vacío)
No

Si no se define un directorio de salida, el controlador utilizará ${JMETER_HOME}/bin/report-output .

A continuación, solo tiene que hacer clic en el botón Generar informe y esperar a que aparezca un cuadro de diálogo de información.

Si la generación del informe tarda más de dos minutos, ajuste la propiedad generate_report_ui.generation_timeout

14.4 Gráficos predeterminados

Debido a las limitaciones de esta versión anterior, cada gráfico predeterminado debe declararse en las propiedades de JMeter. De lo contrario, las vistas de gráficos estarán vacías.

Todos los gráficos proporcionados por este motor de informes se encuentran en el paquete org.apache.jmeter.report.processor.graph.impl

El generador de paneles proporciona las siguientes clases de gráficos:

Grafico Descripción Admite la discriminación del controlador
ActiveThreadsGraphConsumer Este gráfico representa el número de subprocesos activos a lo largo del tiempo. Falso
BytesRendimientoGráficoConsumidor Este gráfico representa el rendimiento de los datos recibidos y enviados a lo largo del tiempo. Falso
CodesPerSecondGraphConsumer Este gráfico representa la tasa de códigos de respuesta a lo largo del tiempo. Falso
HitsPerSecondGraphConsumer Este gráfico representa la tasa de solicitudes finalizadas a lo largo del tiempo. Falso
LatencyOverTimeGraphConsumer Este gráfico representa el tiempo de latencia promedio a lo largo del tiempo. Verdadero
ConnectTimeOverTimeGraphConsumer Este gráfico representa el tiempo de conexión a lo largo del tiempo. Verdadero
LatenciaVSRequestGraphConsumer Este gráfico representa el tiempo de latencia medio y promedio según la cantidad de solicitudes actuales. Falso
ResponseTimeDistributionGraphConsumer Este gráfico representa la distribución de las muestras en función de su tiempo transcurrido y nombre. Verdadero
ResponseTimeOverTimeGraphConsumer Este gráfico representa el tiempo de respuesta promedio a lo largo del tiempo. Verdadero
RespuestaTiempoPercentilesGráficoConsumidor Este gráfico representa los percentiles del tiempo transcurrido en el tiempo. Verdadero
RespuestaTiempoPercentilesA lo largo del tiempoGráficoConsumidor Este gráfico muestra el tiempo de respuesta mínimo/máximo y 3 percentiles a lo largo del tiempo. Verdadero
ResponseTimeVSRequestGraphConsumer Este gráfico representa la mediana y el tiempo de respuesta promedio según la cantidad de solicitudes actuales. Falso
TiempoVSHiloGráficoConsumidor Este gráfico representa el tiempo de respuesta promedio según la cantidad de subprocesos activos actuales.

La serie agregada * representa el tiempo de respuesta promedio independientemente de la cantidad de subprocesos activos actuales. Estas series están representadas por un solo punto porque el número de subprocesos activos actuales se agrega a un promedio. Así que para estos puntos:

  • La abscisa es el promedio del número de subprocesos activos actuales cuando finalizan las muestras de la serie.
  • La ordenada es el promedio del tiempo de respuesta de las muestras de la serie, independientemente del número de subprocesos activos actuales.

Verdadero
TransactionsPerSecondGraphConsumer Este gráfico representa la tasa de transacción por nombre de muestra a lo largo del tiempo. Verdadero

14.5 Generando gráficos personalizados a lo largo del tiempo

Puede graficar cualquier muestra_variable en CSV a lo largo del tiempo, puede personalizar sus gráficos configurando sus propiedades en el archivo user.properties.
Deben usar el prefijo id custom_ :

jmeter.reportgenerator.graph.custom_<your_graph_name_id>.property.<your_option_name>
Para especificar que este gráfico es personalizado:
jmeter.reportgenerator.graph.custom_<your_graph_name_id>.classname=org.apache.jmeter.report.processor.graph.impl.CustomGraphConsumer

Parámetros

Atributo
Descripción
Requerido
establecer_eje_X
Establece el nombre del eje X del gráfico.
establecer_eje_Y
Establece el nombre del eje Y del gráfico.
establecer_Contenido_Mensaje
Establece el mensaje que se muestra cuando el cursor está en un punto del gráfico.
establecer_nombre_de_variable_de_muestra
Nombre de la columna que desea graficar en el csv.

Aquí hay un ejemplo de una configuración gráfica personalizada que representa gráficamente la variable ts-hit :

jmeter.reportgenerator.graph.custom_testGraph.classname=org.apache.jmeter.report.processor.graph.impl.CustomGraphConsumer
jmeter.reportgenerator.graph.custom_testGraph.title=Chunk Hit
jmeter.reportgenerator.graph.custom_testGraph.property.set_Y_Axis=Número de visitas
jmeter.reportgenerator.graph.custom_testGraph.set_X_Axis=A lo largo del tiempo
jmeter.reportgenerator.graph.custom_testGraph.property.set_granularity=60000
jmeter.reportgenerator.graph.custom_testGraph.property.set_Sample_Variable_Name=ts-hit
jmeter.reportgenerator.graph.custom_testGraph.property.set_Content_Message=Número de visitas:
                        

14.6 ¿Quiere mejorar el Panel de informes?

Si quieres aportar nuevas gráficas o mejorar las actuales, puedes leer esta documentación para desarrolladores .
Lea esta documentación sobre cómo contribuir.
Go to top