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.
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 ¶
jmeter.generador de informes.
Parámetros
Valor predeterminado: "Panel de Apache JMeter"
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).
Ejemplo: dd/MM/aaaa HH:mm:ss zzz
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
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
Predeterminado: 1500
Use nombres de muestra o expresiones regulares.
El formato es nombre_muestra:satisfacción|tolerancia[;]
Los valores están en milisegundos.
jmeter.reportgenerator.apdex_per_transaction=muestra(\\d+):1000|2000;\ muestras12:3000|4000;\ escenario01-12:5000|6000
Formato: expresión regular.
Defecto: ""
Predeterminado: temperatura
Predeterminado: 20000
- added_rpt_pct1 : Predeterminado a 90
- added_rpt_pct2 : Predeterminado a 95
- added_rpt_pct3 : Predeterminado a 99
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
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.
14.2.3.2 Propiedades específicas ¶
Las propiedades específicas del gráfico deben usar el prefijo:
jmeter.reportgenerator.graph.<graph_id>.propertyEl 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=150induce 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.exportadorseguido del identificador del exportador.
14.2.4.1 Propiedades generales ¶
Todos los exportadores admiten estas propiedades:
Parámetros
La clase del exportador debe implementar org.apache.jmeter.report.dashboard.DataExporter .
Formato: expresión regular. Defecto: ""
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
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
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.
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 |
filter_only_sample_series | Graph/Summary admite discriminación de controladores | Mantuvo |
---|---|---|
Falso | Falso | Falso |
Verdadero | ||
Verdadero | Falso | Verdadero |
Verdadero | Falso |
- 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
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 :
Para cada parámetro, consulte la siguiente tabla:
Parámetros
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.
14.4 Gráficos predeterminados ¶
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:
|
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
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.