JMeter Elementos y componentes: Grupo de hilos, muestreadores

โšก Resumen inteligente

JMeter Los elementos son los componentes bรกsicos de todo plan de prueba: los grupos de subprocesos crean usuarios virtuales, los muestreadores envรญan las solicitudes, los oyentes muestran los resultados y los elementos de configuraciรณn proporcionan los valores predeterminados y los datos que necesitan esas solicitudes.

  • ๐Ÿ”˜ Grupo de hilos: Cada hilo representa un usuario virtual que controla la aplicaciรณn que se estรก probando.
  • โ˜‘๏ธ Muestrarios: Decida el protocolo de la solicitud: FTP, HTTP, JDBC, SMTP y otros.
  • โœ… Oyentes: Muestre los resultados como un grรกfico, un รกrbol, una tabla o un archivo de registro.
  • ๐Ÿงช Elementos de configuraciรณn: Establece valores predeterminados y variables que los muestreadores reutilizarรกn a lo largo de toda la prueba.
  • ๐Ÿ› ๏ธ Ejecuciones basadas en datos: La configuraciรณn del conjunto de datos CSV proporciona credenciales diferentes a cada usuario simulado.
  • โšก Equivalentes modernos: El muestreador BSF ha sido eliminado; las versiones actuales utilizan scripts a travรฉs de JSR223 y Groovy.

JMeter Elementos: Grupo de subprocesos, muestreadores, oyentes y elementos de configuraciรณn.

ยฟQuรฉ es el elemento en JMeter?

Los diferentes componentes de JMeter se llaman Elementos. Cada Elemento estรก diseรฑado para un propรณsito especรญfico.

La siguiente figura muestra algunos elementos comunes en JMeter y muestra cรณmo se ubican dentro de un grupo de hilos.

JMeter Diagrama de jerarquรญa de elementos con Grupo de hilos por encima de Muestreadores, Controladores lรณgicos, Oyentes, Elementos de configuraciรณn, Aserciones, Temporizadores y Procesadores.

Estudiar todos los componentes a la vez es una invitaciรณn a la confusiรณn y el aburrimiento. Aquรญ, discutiremos los componentes imprescindibles que debes conocer antes de que puedas empezar. las pruebas in JMeter.

Los componentes restantes se analizarรกn en los siguientes tutoriales a medida que se vayan utilizando. Los elementos que se tratan en este tutorial se enumeran a continuaciรณn.

Grupo de hilos

Un grupo de hilos es una colecciรณn de hilos. Cada hilo representa a un usuario que utiliza la aplicaciรณn bajo prueba. Bรกsicamente, cada hilo simula una solicitud real de un usuario al servidor.

Los controles para un grupo de subprocesos permiten establecer el nรบmero de subprocesos para cada grupo.

Por ejemplo, si establece el nรบmero de subprocesos en 100, JMeter Se crearรกn y simularรกn 100 solicitudes de usuario al servidor que se estรก probando, como se ilustra en el siguiente diagrama.

Diagrama de una JMeter Grupo de subprocesos que simulan al Usuario 1 al Usuario 100, cada uno enviando una solicitud a la aplicaciรณn bajo prueba.

El panel Grupo de hilos tambiรฉn incluye un perรญodo de preparaciรณn, que distribuye el inicio de esos hilos a lo largo del tiempo en lugar de iniciarlos para todos los usuarios a la vez.

Muestrario

Como ya sabemos JMeter admite pruebas de HTTP, FTP, JDBC y muchos otros protocolos.

Tambiรฉn sabemos que los grupos de subprocesos simulan las solicitudes de los usuarios al servidor.

Pero, ยฟcรณmo sabe un grupo de hilos quรฉ tipo de solicitud (HTTP, FTP, etc.) debe realizar?

La respuesta es Samplers.

La solicitud del usuario puede ser una solicitud FTP, una solicitud HTTP, una solicitud JDBC, etc. La siguiente figura muestra los muestreadores que se tratan en este tutorial.

Listado de diagramas de รกrbol JMeter Muestreadores: Solicitud FTP, Solicitud HTTP, Solicitud JDBC, Muestreador BSF, Muestreador de registro de acceso y Muestreador SMTP

Solicitud FTP

Imaginemos que quieres probar el rendimiento de un servidor FTP. Puedes usar un muestreador de solicitudes FTP en JMeter para hacer esta tarea. Este controlador le permite enviar una solicitud FTP de โ€œdescarga de archivoโ€ o โ€œcarga de archivoโ€ a un servidor FTP.

Diagrama que muestra JMeter enviar una solicitud FTP a un servidor FTP para cargar o descargar un archivo

Por ejemplo, si desea descargar un archivo โ€œTest.txtโ€ desde un servidor FTP bajo prueba, necesita configurar algunos parรกmetros en JMeter como en la figura siguiente.

Panel de muestra de solicitud FTP con ftp.example.com como servidor, puerto 21, Test.txt como archivo remoto e inicio de sesiรณn anรณnimo.

El panel configura el servidor a ftp.example.com, puerto 21, el archivo remoto a Test.txt y la opciรณn get(RETR), por lo tanto JMeter Envรญa un comando FTP a ese servidor y descarga el archivo.

Solicitud HTTP

Este ejemplo le permite enviar una solicitud HTTP/HTTPS a un servidor web.

Consideremos el siguiente ejemplo. JMeter envรญa una solicitud HTTP a la Google El sitio web recupera archivos HTML o imรกgenes del mismo.

Diagrama de JMeter enviar una solicitud HTTP a Google Sitios y recepciรณn de HTML e imรกgenes a cambio

En el tutorial JMeter Test de rendimiento, explicaremos mรกs sobre esta solicitud HTTP. Es el muestreador mรกs pruebas de aplicaciones web El trabajo depende de.

Solicitud JDBC

Este muestreador le permite ejecutar la base de datos pruebas de rendimiento. Envรญa una solicitud JDBC (una consulta SQL) a una base de datos.

Diagrama de JMeter enviar una consulta SQL a un servidor de base de datos y recibir el resultado

Por ejemplo, un servidor de base de datos tiene un campo test_result almacenado en una tabla llamada test_tbl. Desea consultar estos datos del servidor de base de datos, por lo que puede configurar JMeter para enviar un SQL Consulta a este servidor para recuperar los datos.

Panel de solicitud JDBC con el tipo de consulta configurado como instrucciรณn SELECT y la consulta select test_result from test_tbl where id = 1

El tipo de consulta aquรญ es Sentencia SELECT y la consulta dice: select test_result from test_tbl where id = 1Un elemento de configuraciรณn de conexiรณn JDBC debe proporcionar el grupo al que apunta el campo Nombre de variable.

Muestreador BSF

Este sampler le permite escribir un sampler usando un BSF Lenguaje de escritura.

Aquรญ hay un ejemplo de un muestreador BSF en JMeter, con campos para el lenguaje del script, los parรกmetros pasados โ€‹โ€‹al script y un script en lรญnea o un archivo de script externo.

Panel de muestreo BSF con campos para el lenguaje de script, parรกmetros, un archivo de script externo y el cuerpo del script en lรญnea.

Nota de desuso: La familia de elementos BSF fue descontinuada en favor de los elementos JSR223 y ya no aparece en el JMeter Referencia del componenteEn las versiones actuales, utilice el Muestreador JSR223 con Groovy, que compila el script y funciona mucho mejor bajo carga. El panel de arriba se mantiene aquรญ porque los planes de prueba antiguos aรบn lo incluyen.

Muestreador de registro de acceso

Este muestreador permite leer los registros de acceso y generar solicitudes HTTP. Las entradas del registro pueden ser imรกgenes, HTML, CSS, etc.

Panel de muestreo de registro de acceso que muestra los campos predeterminados de servidor y puerto, la clase del complemento TCLogParser y la ubicaciรณn del archivo de registro.

El campo Parser tiene por defecto org.apache.jmeter.protocol.http.util.accesslog.TCLogParsery el campo Ubicaciรณn del archivo de registro apunta JMeter en el registro que desea reproducir.

Muestra SMTP

Si desea probar un servidor de correo, puede usar el muestreador SMTP. Este muestreador se utiliza para enviar mensajes de correo electrรณnico mediante el protocolo SMTP.

Panel de SMTP Sampler con configuraciรณn del servidor, direcciones de correo electrรณnico, opciones de autenticaciรณn y seguridad, y configuraciรณn de mensajes.

El panel agrupa la configuraciรณn del servidor, las direcciones de correo electrรณnico, la autenticaciรณn y la configuraciรณn de mensajes, e imprime los puertos predeterminados junto al campo Puerto: SMTP 25, SSL 465 y StartTLS 587.

Oyentes

Los oyentes muestran los resultados de la ejecuciรณn de la prueba. Pueden presentar los resultados en diferentes formatos, como un รกrbol, una tabla, un grรกfico o un archivo de registro.

Diagrama que muestra cรณmo un Listener distribuye los resultados en vistas de grรกfico, รกrbol, tabla e informe.

El Resultados del grรกfico El oyente muestra los tiempos de respuesta del servidor en un grรกfico, con el recuento de muestras, el promedio, la desviaciรณn, el rendimiento y la mediana impresos debajo.

Grรกfico de resultados del oyente que muestra los tiempos de respuesta con datos, promedio, mediana, desviaciรณn y series de rendimiento.

Ver รกrbol de resultados Muestra el resultado de cada solicitud de usuario en formato HTML bรกsico, con una pestaรฑa de resultados de muestreo que informa sobre el tiempo de carga, la latencia, el tamaรฑo y el cรณdigo de respuesta.

Ver resultados. El oyente de รกrbol muestra una lista de solicitudes a la izquierda y la pestaรฑa de resultados del muestreador muestra el cรณdigo de respuesta 200.

Ver resultados en tabla Muestra un resumen del resultado de la prueba en formato de tabla, una fila por muestra.

Visualice los resultados en una tabla con columnas para el nรบmero de muestra, la hora de inicio, el nombre del hilo, la etiqueta y la hora de la muestra.

Un archivo de registro guarda el mismo resumen en formato de texto, que es lo que se conserva cuando se ejecuta una prueba sin la interfaz grรกfica de usuario (GUI).

Resumen del registro agregado que enumera las etiquetas de los muestreadores con recuentos de muestras, promedios y una fila TOTAL.

Mejores prรกcticas: Los oyentes de la interfaz grรกfica consumen memoria y distorsionan los resultados, asรญ que ejecute las pruebas de carga reales en modo sin interfaz grรกfica y abra el archivo de resultados guardado posteriormente.

Elementos de configuraciรณn

Los elementos de configuraciรณn establecen valores predeterminados y variables para su uso posterior por parte de los muestreadores.

La siguiente figura muestra algunos elementos de configuraciรณn comรบnmente utilizados en JMeter.

Diagrama de รกrbol de JMeter Elementos de configuraciรณn: Configuraciรณn del conjunto de datos CSV, Administrador de cookies HTTP, Elemento de configuraciรณn de inicio de sesiรณn, Valores predeterminados de solicitud HTTP y Valores predeterminados de solicitud FTP

Configuraciรณn del conjunto de datos CSV

Supongamos que quieres probar un sitio web con 100 usuarios que inicien sesiรณn con credenciales diferentes. No necesitas grabar el script 100 veces. Puedes parametrizar el script para que introduzca distintas credenciales de inicio de sesiรณn. Esta informaciรณn (por ejemplo, nombre de usuario y contraseรฑa) podrรญa almacenarse en un archivo de texto. JMeter Tiene un elemento que permite leer diferentes parรกmetros de ese archivo de texto. Se trata de "CSV Data Set Config", que se utiliza para leer lรญneas de un archivo y dividirlas en variables.

JMeter รrbol de plan de prueba con configuraciรณn de conjunto de datos CSV seleccionada en un controlador de inicio de sesiรณn junto con valores predeterminados de solicitud HTTP.

Este es un ejemplo de datos CSV. Se trata de un archivo de texto que contiene los nombres de usuario y las contraseรฑas utilizadas para iniciar sesiรณn en el sitio web de destino.

Archivo de texto csv_data.txt que contiene cuatro filas separadas por comas con los valores de nombre de usuario, contraseรฑa y longitud de la cookie.

Administrador de cookies HTTP

Comprendamos esto con un ejemplo.

Usaste tu navegador (Firefox(Chrome, etc.) para navegar www.google.com.

Inicia sesiรณn con tu nombre de usuario y contraseรฑa.

Su nombre de usuario y contraseรฑa se almacenarรกn en su ordenador como cookies.

La prรณxima vez, cuando visites www.google.comNo es necesario que vuelvas a iniciar sesiรณn, ya que tu navegador utilizarรก las cookies como datos de usuario para iniciar sesiรณn.

El Administrador de cookies HTTP tiene la misma funcionalidad que un navegador web. Si se realiza una solicitud HTTP y la respuesta contiene una cookie, el Administrador de cookies la almacena automรกticamente y la utiliza para todas las solicitudes futuras a ese sitio web en particular.

Valores predeterminados de solicitud HTTP

Este elemento le permite establecer valores predeterminados que utilizan sus controladores de solicitud HTTP.

Por ejemplo,

Estรกs enviando 100 solicitudes HTTP al servidor google.com.

Tendrรญas que introducir manualmente el nombre del servidor google.com para las 100 solicitudes.

En su lugar, podrรญa agregar un รบnico elemento HTTP Request Defaults con el campo "Nombre del servidor o IP" configurado como google.com, como se muestra a continuaciรณn.

Panel de configuraciรณn predeterminada de solicitudes HTTP con google.com como nombre del servidor, puerto 80 y tiempos de espera de conexiรณn y respuesta.

No es necesario escribirlo 100 veces. Este elemento se explicarรก en detalle en el tutorial. JMeter Test de rendimiento.

Elemento de configuraciรณn de inicio de sesiรณn

El elemento de configuraciรณn de inicio de sesiรณn le permite agregar o sobrescribir la configuraciรณn de nombre de usuario y contraseรฑa en los muestreadores.

Por ejemplo, quieres simular que un usuario inicia sesiรณn en el sitio web. www.facebook.com con un nombre de usuario y una contraseรฑa. Puede usar el elemento de configuraciรณn de inicio de sesiรณn para agregar esta configuraciรณn de nombre de usuario y contraseรฑa en una solicitud de usuario.

Panel de configuraciรณn de inicio de sesiรณn con guru99 como nombre de usuario y un campo de contraseรฑa enmascarada.

El elemento de configuraciรณn de inicio de sesiรณn frente a la configuraciรณn del conjunto de datos CSV

Elemento de configuraciรณn de inicio de sesiรณn Configuraciรณn del conjunto de datos CSV
Se utiliza para simular el inicio de sesiรณn de un usuario. Se utiliza para simular mรบltiples inicios de sesiรณn de usuario.
Adecuado รบnicamente para parรกmetros de inicio de sesiรณn (nombre de usuario y contraseรฑa). Adecuado para un gran nรบmero de parรกmetros.

Entre ellos, estos dos elementos cubren casi todos los escenarios de credenciales que puedas encontrar. herramientas de prueba de rendimiento extra.

Preguntas Frecuentes

Dice JMeter ยฟCuรกnto tiempo debe transcurrir antes de que todos los hilos estรฉn en funcionamiento? Diez hilos con un tiempo de arranque de 100 segundos comienzan con un intervalo de diez segundos. Un tiempo de arranque demasiado corto satura el servidor y produce fallos que ningรบn usuario real podrรญa causar.

Los temporizadores insertan una pausa entre las solicitudes para que la carga simulada se asemeje a la navegaciรณn real en lugar de una avalancha de solicitudes. Las aserciones verifican cada respuesta y marcan una muestra como fallida cuando el cรณdigo de estado, el texto o la duraciรณn no coinciden con lo especificado.

Agrupan y ramifican las solicitudes que se encuentran debajo. Un controlador de bucle repite sus elementos secundarios, un controlador condicional los ejecuta de forma condicional y un controlador de transacciones informa de todo el grupo como un รบnico paso cronometrado en los resultados.

No. Los oyentes como View Results Tree almacenan en bรบfer cada muestra y distorsionan los datos que reportan. Ejecute la prueba en modo sin interfaz grรกfica, guarde los resultados en un archivo y, una vez finalizada la ejecuciรณn, cargue dicho archivo en un oyente.

Primero se aplican los elementos de configuraciรณn y los preprocesadores, luego se ejecuta el muestreador y, finalmente, los postprocesadores, las aserciones y los oyentes. El alcance tambiรฉn es importante: un elemento ubicado a nivel de plan se aplica a todas las solicitudes que se encuentren debajo de รฉl.

Resulta รบtil para detectar patrones. Al proporcionar un archivo de resultados a un asistente, se pueden identificar las etiquetas mรกs lentas, los grupos de errores y las tendencias de tiempo de respuesta mucho mรกs rรกpido que leyendo las filas. Siempre confirme el hallazgo con las muestras originales antes de actuar.

Sรญ. Borrador Groovy por ejemplotracvalores de ting, construir cargas รบtiles y establecer variables dentro de un elemento JSR223. Verifique cada sugerencia, porque a menudo recurre a la API BeanShell obsoleta o a variables que JMeter no expone.

Un grupo de subprocesos y un muestreador. Todo lo demรกs es opcional. En la prรกctica, se aรฑade un oyente para que los resultados sean visibles, y se agregan valores predeterminados o un archivo de datos cuando los mismos valores comienzan a repetirse en las solicitudes.

Resumir este post con: