1. Primeros pasos

1.0 Resumen

Cuando utilice JMeter, normalmente seguirá este proceso:

1.0.1 Construcción del plan de prueba

Para hacer eso, ejecutará JMeter en modo GUI.
Luego, puede elegir grabar la aplicación desde un navegador o una aplicación nativa. Puede utilizar para ello el menú Archivo  →  Plantillas...  →  Grabación

Tenga en cuenta que también puede crear manualmente su plan. Asegúrese de leer esta documentación para comprender los conceptos principales.

También lo depurará usando una de estas opciones:

y visualizadores o probadores de árbol de resultados (CSS/JQUERY, JSON, Regexp, XPath).
Asegúrese de seguir las mejores prácticas al crear su plan de prueba.

1.0.2 Prueba de carga en ejecución

Una vez que su plan de prueba esté listo, puede comenzar su prueba de carga. El primer paso es configurar los inyectores que ejecutarán JMeter, esto como para cualquier otra herramienta de prueba de carga incluye:

  • Dimensionamiento correcto de la máquina en términos de CPU, memoria y red
  • Ajuste del sistema operativo
  • Configuración de Java: asegúrese de instalar la última versión de Java compatible con JMeter
  • Aumente el tamaño del almacenamiento dinámico de Java . De manera predeterminada, JMeter se ejecuta con un almacenamiento dinámico de 1 GB, esto podría no ser suficiente para su prueba y depende de su plan de prueba y la cantidad de subprocesos que desea ejecutar.
Una vez que todo esté listo, utilizará el modo CLI (modo de línea de comandos anteriormente llamado modo no GUI ) para ejecutarlo para la prueba de carga.
¡No ejecute la prueba de carga usando el modo GUI!

Con el modo CLI, puede generar un archivo CSV (o XML) que contenga los resultados y hacer que JMeter genere un informe HTML al final de la prueba de carga. JMeter proporcionará de forma predeterminada un resumen de la prueba de carga mientras se ejecuta.
También puede tener resultados en tiempo real durante su prueba usando Backend Listener .

1.0.3 Análisis de prueba de carga

Una vez que finaliza su prueba de carga, puede usar el informe HTML para analizar su prueba de carga.

1.0.4 Comencemos

La forma más fácil de comenzar a usar JMeter es descargar primero la última versión de producción e instalarla. La versión contiene todos los archivos que necesita para crear y ejecutar la mayoría de los tipos de pruebas, por ejemplo, Web (HTTP/HTTPS), FTP, JDBC, LDAP, Java, JUnit y más.

Si desea realizar pruebas de JDBC, necesitará, por supuesto, el controlador JDBC adecuado de su proveedor. JMeter no viene con ningún controlador JDBC.

JMeter incluye el jar de API JMS, pero no incluye una implementación de cliente JMS. Si desea ejecutar pruebas de JMS, deberá descargar los archivos jar apropiados del proveedor de JMS.

Consulte la sección Classpath de JMeter para obtener detalles sobre la instalación de archivos jar adicionales.

A continuación, inicie JMeter y consulte la sección Creación de un plan de prueba de la Guía del usuario para familiarizarse con los conceptos básicos de JMeter (por ejemplo, agregar y eliminar elementos).

Por último, consulte la sección correspondiente sobre cómo crear un tipo específico de plan de prueba. Por ejemplo, si está interesado en probar una aplicación web, consulte la sección Creación de un plan de prueba web . Las otras secciones específicas del Plan de prueba son:

Una vez que se sienta cómodo con la creación y ejecución de planes de prueba de JMeter, puede examinar los diversos elementos de configuración (temporizadores, escuchas, aserciones y otros) que le brindan más control sobre sus planes de prueba.

1.1 Requisitos

JMeter requiere que su entorno informático cumpla con algunos requisitos mínimos.

1.1.1 Versión Java

JMeter es compatible con Java 8 o superior. Le recomendamos encarecidamente que instale la última versión secundaria de su versión principal por motivos de seguridad y rendimiento.

Debido a que JMeter usa solo API estándar de Java, no presente informes de errores si su JRE no puede ejecutar JMeter debido a problemas de implementación de JRE.

Aunque puede usar un JRE, es mejor instalar un JDK ya que para la grabación de HTTPS, JMeter necesita la utilidad keytool de JDK.

1.1.2 Sistemas operativos

JMeter es una aplicación 100% Java y debería ejecutarse correctamente en cualquier sistema que tenga una implementación compatible con Java.

Los sistemas operativos probados con JMeter se pueden ver en esta página en la wiki de JMeter.

Incluso si su sistema operativo no figura en la página wiki, JMeter debería ejecutarse siempre que la JVM sea compatible.

1.2 Opcional

Si planea desarrollar JMeter, necesitará uno o más paquetes opcionales que se enumeran a continuación.

1.2.1 Compilador Java

Si desea compilar la fuente de JMeter o desarrollar complementos de JMeter, necesitará un JDK 8 o superior totalmente compatible.

1.2.2 Analizador SAX XML

JMeter viene con el analizador XML Xerces de Apache . Tiene la opción de decirle a JMeter que use un analizador XML diferente. Para hacerlo, incluya las clases para el analizador de terceros en el classpath de JMeter y actualice el archivo jmeter.properties con el nombre de clase completo de la implementación del analizador.

1.2.3 Soporte por correo electrónico

JMeter tiene amplias capacidades de correo electrónico. Puede enviar correos electrónicos en función de los resultados de las pruebas y tiene un muestreador POP3(S)/IMAP(S). También tiene un muestreador SMTP(S).

1.2.4 Cifrado SSL

Para probar un servidor web usando encriptación SSL (HTTPS), JMeter requiere que se proporcione una implementación de SSL, como es el caso con Sun Java 1.4 y superior. Si su versión de Java no incluye soporte SSL, entonces es posible agregar una implementación externa. Incluya los paquetes de cifrado necesarios en el classpath de JMeter . Además, actualice system.properties para registrar el proveedor de SSL.

JMeter HTTP tiene por defecto el nivel de protocolo TLS. Esto se puede cambiar editando la propiedad de JMeter https.default.protocol en jmeter.properties o user.properties .

Los muestreadores HTTP de JMeter están configurados para aceptar todos los certificados, ya sean de confianza o no, independientemente de los períodos de validez, etc. Esto es para permitir la máxima flexibilidad en las pruebas de servidores.

Si el servidor requiere un certificado de cliente, se puede proporcionar.

También está el SSL Manager , para un mayor control de los certificados.

El servidor proxy JMeter (ver más abajo) admite la grabación de HTTPS (SSL)

El muestreador SMTP puede usar opcionalmente un almacén de confianza local o confiar en todos los certificados.

1.2.5 Controlador JDBC

Deberá agregar el controlador JDBC del proveedor de su base de datos a la ruta de clase si desea realizar pruebas de JDBC. Asegúrese de que el archivo sea un archivo jar, no un zip.

1.2.6 Cliente JMS

JMeter ahora incluye la API de JMS de Apache Geronimo, por lo que solo necesita agregar los archivos JMS de implementación del cliente adecuados del proveedor de JMS. Consulte su documentación para obtener más detalles. También puede haber alguna información en JMeter Wiki .

1.2.7 Bibliotecas para ActiveMQ JMS

Deberá agregar el jar activemq-all-XXXjar a su classpath, por ejemplo, almacenándolo en el directorio lib/ .

Consulte la página de configuración inicial de ActiveMQ para obtener más detalles.

Consulte la sección Classpath de JMeter para obtener más detalles sobre la instalación de archivos jar adicionales.

1.3 Instalación

Recomendamos que la mayoría de los usuarios ejecuten la última versión .

Para instalar una compilación de lanzamiento, simplemente descomprima el archivo zip/tar en el directorio donde desea instalar JMeter. Siempre que tenga un JRE/JDK instalado correctamente y la variable de entorno JAVA_HOME configurada, no hay nada más que pueda hacer.

Puede haber problemas (especialmente con el modo cliente-servidor) si la ruta del directorio contiene espacios.

La estructura del directorio de instalación debería verse así (donde XY es el número de versión):

apache-jmeter-XY
apache-jmeter-XY/bin
apache-jmeter-XY/docs
apache-jmeter-XY/extras
apache-jmeter-XY/lib/
apache-jmeter-XY/lib/ext
apache-jmeter-XY/lib/junit
apache-jmeter-XY/licencias
apache-jmeter-XY/printable_docs
Puede cambiar el nombre del directorio principal (es decir , apache-jmeter-XY ) si lo desea, pero no cambie ninguno de los nombres de los subdirectorios.

1.4 Ejecutando JMeter


Para ejecutar JMeter, ejecute el archivo jmeter.bat (para Windows) o jmeter (para Unix). Estos archivos se encuentran en el directorio bin . Después de un breve período de tiempo, debería aparecer la GUI de JMeter.

El modo GUI solo debe usarse para crear el script de prueba, el modo CLI (NO GUI) debe usarse para la prueba de carga

Hay algunos scripts adicionales en el directorio bin que pueden resultarle útiles. Archivos de script de Windows (los archivos .CMD requieren Win2K o posterior):

jmeter.bat
ejecutar JMeter (en modo GUI por defecto)
jmeterw.cmd
ejecute JMeter sin la consola de shell de Windows (en modo GUI de forma predeterminada)
jmeter-n.cmd
suelte un archivo JMX en esto para ejecutar una prueba de modo CLI
jmeter-nr.cmd
suelte un archivo JMX en esto para ejecutar una prueba de modo CLI de forma remota
jmeter-t.cmd
suelte un archivo JMX en esto para cargarlo en modo GUI
servidor-jmeter.bat
iniciar JMeter en modo servidor
espejo-servidor.cmd
ejecuta JMeter Mirror Server en modo CLI
apagar.cmd
Ejecute el cliente de apagado para detener correctamente una instancia del modo CLI
stoptest.cmd
Ejecute el cliente de apagado para detener una instancia del modo CLI abruptamente
El nombre especial LAST se puede usar con jmeter-n.cmd , jmeter-t.cmd y jmeter-nr.cmd y significa el último plan de prueba que se ejecutó de forma interactiva.

Hay algunas variables de entorno que se pueden usar para personalizar la configuración de JVM para JMeter. Una manera fácil de configurarlos es creando un archivo llamado setenv.bat en el directorio bin . Tal archivo podría verse así:

rem Este es el contenido de bin\setenv.bat,
rem será llamado por bin\jmeter.bat

establecer JVM_ARGS=-Xms1024m -Xmx1024m -Dpropname=valor

El JVM_ARGS se puede usar para anular la configuración de JVM en el script jmeter.bat y se configurará al iniciar JMeter, por ejemplo:

jmeter -t prueba.jmx …

Se pueden definir las siguientes variables de entorno:

DDRAW
Opciones de JVM para influir en el uso de dibujo directo, por ejemplo, -Dsun.java2d.ddscale=true . El valor predeterminado está vacío.
GC_ALGO
Opciones del recolector de basura JVM. El valor predeterminado es -XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20
MONTÓN
Configuración de memoria JVM utilizada al iniciar JMeter. El valor predeterminado es -Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
JMETER_BIN
Directorio bin de JMeter (debe terminar en \ ). El valor se habrá adivinado cuando se llame a setenv.bat .
JMETER_COMPLETE_ARGS
Si se establece, indica que solo se deben usar JVM_ARGS y JMETER_OPTS . Todas las demás opciones como HEAP y GC_ALGO serán ignoradas. El valor predeterminado está vacío.
JMETER_HOME
directorio de instalación. Se adivinará a partir de la ubicación de jmeter.bat
JMETER_LANGUAGE
Opciones de tiempo de ejecución de Java para especificar el idioma utilizado. El valor predeterminado es: -Duser.language="en" -Duser.region="EN"
JM_LAUNCH
Nombre del ejecutable java, como java.exe (predeterminado) o javaw.exe
JVM_ARGS
Opciones de Java que se utilizarán al iniciar JMeter. Estos se agregarán en último lugar al comando java. El valor predeterminado está vacío

Archivos de script Un*x; debería funcionar en la mayoría de los sistemas Linux/Unix:

jmetro
ejecute JMeter (en modo GUI por defecto). Define algunas configuraciones de JVM que pueden no funcionar para todas las JVM.
servidor jmeter
inicie JMeter en modo servidor (llama al script jmeter con los parámetros apropiados)
jmeter.sh
Script JMeter muy básico (es posible que deba adaptar las opciones de JVM, como la configuración de la memoria).
espejo-servidor.sh
ejecuta JMeter Mirror Server en modo CLI
apagar.sh
Ejecute el cliente de apagado para detener correctamente una instancia del modo CLI
stoptest.sh
Ejecute el cliente de apagado para detener una instancia del modo CLI abruptamente

Puede ser necesario establecer algunas variables de entorno para configurar la JVM utilizada por JMeter. Esas variables se pueden configurar directamente en el shell iniciando el script jmeter . Por ejemplo, establecer la variable JVM_ARGS anulará la mayoría de las configuraciones predefinidas, por ejemplo

JVM_ARGS="-Xms1024m -Xmx1024m" jmeter -t prueba.jmx [etc.]

anulará la configuración HEAP en el script.

Para configurar esas variables de forma permanente, puede colocarlas en un archivo llamado setenv.sh en el directorio bin . Este archivo se generará cuando se ejecute JMeter llamando al script jmeter . Un ejemplo para bin/setenv.sh podría verse así:

# Este es el archivo bin/setenv.sh,
# será obtenido por bin/jmeter

# Use un montón más grande, pero un metaespacio más pequeño que el predeterminado
exportar HEAP="-Xms1G -Xmx1G -XMaxMetaspaceSize=192m"

# Trate de adivinar la configuración regional del sistema operativo. ¡El espacio como valor es a propósito!
exportar JMETER_LANGUAGE=" "

Se pueden definir las siguientes variables de entorno:

GC_ALGO
Opciones de tiempo de ejecución de Java para especificar el algoritmo de recolección de basura de JVM. El valor predeterminado es -XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20
MONTÓN
Opciones de tiempo de ejecución de Java para la gestión de la memoria que se utilizan cuando se inicia JMeter. El valor predeterminado es -Xms1g -Xmx1g -X:MaxMetaspaceSize=256m
JAVA_HOME
Debe apuntar a la instalación de su kit de desarrollo de Java. Requerido para ejecutar con el argumento " debug ". En algunos sistemas operativos, JMeter hará todo lo posible para adivinar la ubicación de la JVM.
JMETER_COMPLETE_ARGS
Si se establece, indica que solo se deben usar JVM_ARGS y JMETER_OPTS . Todas las demás opciones como HEAP y GC_ALGO serán ignoradas. El valor predeterminado está vacío.
JMETER_HOME
Puede apuntar a su directorio de instalación de JMeter. Si está vacío, se establecerá en relación con el script jmeter .
JMETER_LANGUAGE
Opciones de tiempo de ejecución de Java para especificar el idioma utilizado. El valor predeterminado es -Duser.language=en -Duser.region=EN
JMETER_OPTS
Opciones de tiempo de ejecución de Java utilizadas cuando se inicia JMeter. JMeter puede agregar opciones especiales para sistemas operativos.
JRE_HOME
Debe apuntar a su instalación de Java Runtime. El valor predeterminado es JAVA_HOME si está vacío. Si JRE_HOME y JAVA_HOME están vacíos, JMeter intentará adivinar JAVA_HOME . Si se establecen JRE_HOME y JAVA_HOME , se utiliza JAVA_HOME .
JVM_ARGS
Opciones de Java que se utilizarán al iniciar JMeter. Estos se agregarán antes de JMETER_OPTS y después de las otras opciones de JVM. El valor predeterminado está vacío

1.4.1 Classpath de JMeter

JMeter encuentra automáticamente clases de jars en los siguientes directorios:

JMETER_INICIO/lib
utilizado para tarros de utilidad
JMETER_HOME/lib/ext
utilizado para componentes y complementos de JMeter

Si ha desarrollado nuevos componentes de JMeter, debe colocarlos en un contenedor y copiar el contenedor en el directorio lib/ext de JMeter . JMeter encontrará automáticamente los componentes de JMeter en cualquier contenedor que se encuentre aquí. No use lib/ext para archivos jar de utilidades o archivos jar de dependencia usados ​​por los complementos; solo está destinado a componentes y complementos de JMeter.

Si no desea colocar archivos jar de complementos de JMeter en el directorio lib/ext , defina la propiedad search_paths en jmeter.properties .

Los archivos jar de utilidades y dependencias (bibliotecas, etc.) se pueden colocar en el directorio lib .

Si no desea colocar dichos archivos jar en el directorio lib , defina la propiedad user.classpath o plugin_dependency_paths en jmeter.properties . Vea a continuación una explicación de las diferencias.

Otros archivos jar (como JDBC, implementaciones JMS y cualquier otra biblioteca de soporte que necesite el código JMeter) deben colocarse en el directorio lib , no en el directorio lib/ext , o agregarse a user.classpath .

JMeter solo encontrará archivos .jar , no .zip .

También puede instalar archivos Jar de utilidad en $JAVA_HOME/jre/lib/ext , o puede establecer la propiedad user.classpath en jmeter.properties

Tenga en cuenta que establecer la variable de entorno CLASSPATH no tendrá ningún efecto. Esto se debe a que JMeter se inicia con " java -jar ", y el comando java ignora silenciosamente la variable CLASSPATH y las opciones -classpath / -cp cuando se usa -jar .

Esto ocurre con todos los programas Java, no solo con JMeter.

1.4.2 Crear un plan de prueba a partir de una plantilla

Tiene la capacidad de crear un nuevo plan de prueba a partir de una plantilla existente.

Para ello utilice el menú Archivo  →  Plantillas… o el icono Plantillas:

Elemento de icono de plantillas
Elemento de icono de plantillas

Aparece una ventana emergente, luego puede elegir una plantilla entre la lista:

Ventana emergente de plantillas
Ventana emergente de plantillas

Algunas plantillas pueden necesitar la entrada de parámetros por parte del usuario. Para estos, después de hacer clic en el botón Crear, aparecerá una nueva ventana de la siguiente manera:

Ventana de parámetros
Ventana de parámetros

Cuando haya terminado con los parámetros, haga clic en el botón Validar y se creará la plantilla.

Una documentación para cada plantilla explica qué hacer una vez que se crea el plan de prueba a partir de la plantilla.

Puede crear sus propias plantillas siguiendo la documentación aquí

1.4.3 Usando JMeter detrás de un proxy

Si está probando detrás de un firewall/servidor proxy, es posible que deba proporcionar a JMeter el nombre de host y el número de puerto del firewall/servidor proxy. Para hacerlo, ejecute el archivo jmeter[.bat] desde una línea de comando con los siguientes parámetros:

-MI
[esquema de proxy a usar - opcional - para no http]
-H
[nombre de host del servidor proxy o dirección IP]
-PAGS
[puerto del servidor proxy]
-NORTE
[hosts no proxy] (por ejemplo, *.apache.org|localhost )
-tu
[nombre de usuario para la autenticación de proxy, si es necesario]
-a
[contraseña para la autenticación de proxy, si es necesario]
Ejemplo :
jmeter -E https -H my.proxy.server -P 8000 -u nombre de usuario -una contraseña -N localhost

También puede usar --proxyScheme , --proxyHost , --proxyPort , --username y --password como nombres de parámetros

Los parámetros proporcionados en una línea de comandos pueden ser visibles para otros usuarios en el sistema.

Si se proporciona el esquema de proxy, JMeter establece las siguientes propiedades del sistema:

  • http.proxyScheme

Si se proporcionan el host y el puerto del proxy, entonces JMeter establece las siguientes propiedades del sistema:

  • http.proxyHost
  • http.proxyPort
  • https.proxyHost
  • https.proxyPort

El usuario y la contraseña utilizados para un proxy pueden ser proporcionados por las propiedades del sistema http.proxyUser y http.proxyUser . Serán anulados por los argumentos o valores anteriores establecidos en las Muestras HTTP.

Si se proporciona una lista de hosts que no son proxy, JMeter establece las siguientes propiedades del sistema:

  • http.nonProxyHosts
  • https.nonProxyHosts

Entonces, si no desea configurar proxies http y https, puede definir las propiedades relevantes en system.properties en lugar de usar los parámetros de la línea de comandos.

La configuración de proxy también se puede definir en un plan de prueba, utilizando la configuración de valores predeterminados de solicitud HTTP o los elementos de muestra de solicitud HTTP .

JMeter también tiene su propio servidor proxy integrado, el grabador de secuencias de comandos de prueba HTTP(S) . Esto solo se usa para grabar sesiones de navegador HTTP o HTTPS. Esto no debe confundirse con la configuración de proxy descrita anteriormente, que se utiliza cuando JMeter realiza solicitudes HTTP o HTTPS.

1.4.4 Modo CLI (el modo Línea de comandos se denominó modo NO GUI)

Para las pruebas de carga, debe ejecutar JMeter en este modo (sin la GUI) para obtener resultados óptimos. Para ello, utilice las siguientes opciones de comando:

-norte
Esto especifica que JMeter se ejecutará en modo cli
-t
[nombre del archivo JMX que contiene el plan de prueba].
-l
[nombre del archivo JTL para registrar los resultados de la muestra].
-j
[nombre del archivo de registro de ejecución de JMeter].
-r
Ejecute la prueba en los servidores especificados por la propiedad JMeter " remote_hosts "
-R
[lista de servidores remotos] Ejecute la prueba en los servidores remotos especificados
-gramo
[ruta al archivo CSV] generar solo el panel de informes
-mi
generar panel de informes después de la prueba de carga
-o
carpeta de salida donde generar el panel de informes después de la prueba de carga. La carpeta no debe existir o estar vacía

La secuencia de comandos también le permite especificar la información opcional del firewall/servidor proxy:

-H
[nombre de host del servidor proxy o dirección IP]
-PAGS
[puerto del servidor proxy]
Ejemplo
jmeter -n -t mi_prueba.jmx -l log.jtl -H mi.proxy.servidor -P 8000

Si la propiedad jmeterengine.stopfail.system.exit se establece en verdadero (el valor predeterminado es falso ), entonces JMeter invocará System.exit(1) si no puede detener todos los subprocesos. Normalmente esto no es necesario.

1.4.5 Modo Servidor

Para pruebas distribuidas , ejecute JMeter en modo servidor en los nodos remotos y luego controle los servidores desde la GUI. También puede usar el modo CLI para ejecutar pruebas remotas. Para iniciar los servidores, ejecute jmeter-server[.bat] en cada host de servidor.

La secuencia de comandos también le permite especificar la información opcional del firewall/servidor proxy:

-H
[nombre de host del servidor proxy o dirección IP]
-PAGS
[puerto del servidor proxy]
Ejemplo :
servidor-jmeter -H mi.proxy.servidor -P 8000

Si desea que el servidor se cierre después de ejecutar una única prueba, defina la propiedad de JMeter server.exitaftertest=true .

Para ejecutar la prueba desde el cliente en modo CLI, use el siguiente comando:

jmeter -n -t testplan.jmx -r [-Gprop=val] [-Gglobal.properties] [-X]
dónde:
-GRAMO
se utiliza para definir las propiedades de JMeter que se establecerán en los servidores
-X
significa salir de los servidores al final de la prueba
-Rservidor1,servidor2
se puede usar en lugar de -r para proporcionar una lista de servidores para comenzar. Anula remote_hosts , pero no define la propiedad.

Si la propiedad jmeterengine.remote.system.exit se establece en verdadero (el valor predeterminado es falso ), entonces JMeter invocará System.exit(0) después de detener RMI al final de una prueba. Normalmente esto no es necesario.

1.4.6 Anulando Propiedades a Través de la Línea de Comando

Las propiedades del sistema Java y las propiedades de JMeter se pueden anular directamente en la línea de comando (en lugar de modificar jmeter.properties ). Para ello, utilice las siguientes opciones:

-D[nombre_propiedad]=[valor]
define un valor de propiedad del sistema java.
-J[nombre_propiedad]=[valor]
define una propiedad JMeter local.
-G[nombre_propiedad]=[valor]
define una propiedad JMeter que se enviará a todos los servidores remotos.
-G[archivo de propiedad]
define un archivo que contiene las propiedades de JMeter para ser enviado a todos los servidores remotos.
-L[categoría]=[prioridad]
anula una configuración de registro, estableciendo una categoría particular en el nivel de prioridad dado.

El indicador -L también se puede usar sin el nombre de la categoría para establecer el nivel de registro raíz.

Ejemplos :

jmeter -Duser.dir=/home/mstover/jmeter_stuff \
    -Jremote_hosts=127.0.0.1 -Ljmeter.engine=DEBUG
jmeter-LDEBUG
Las propiedades de la línea de comandos se procesan temprano en el inicio, pero después de que se haya configurado el sistema de registro.

1.4.7 Registro y mensajes de error

Desde 3.2, el registro de JMeter ya no se configura a través de archivos de propiedades como jmeter.properties , sino que se configura a través de un archivo de configuración de Apache Log4j 2 ( log4j2.xml en el directorio desde el que se inició JMeter, de forma predeterminada) en su lugar. . Además, todos los códigos, incluidos JMeter y complementos, DEBEN usar la biblioteca SLF4J para dejar registros desde 3.2.

Aquí hay un ejemplo de archivo log4j2.xml que define dos agregadores de registro y registradores para cada categoría.

<Estado de configuración="WARN" paquetes="org.apache.jmeter.gui.logging">

  <Agregadores>

    <!-- El agregador del archivo de registro principal a jmeter.log en el directorio desde el que se inició JMeter, de forma predeterminada. -->
    <Nombre del archivo="jmeter-log" fileName="${sys:jmeter.logfile:-jmeter.log}" append="false">
      <diseño de patrón>
        <patrón>%d %p %c{1.}: %m%n</patrón>
      </PatternLayout>
    </Archivo>

    <!-- Agregador de registros para el Visor de registros de GUI. Vea abajo. -->
    <GuiLogEvent name="gui-log-event">
      <diseño de patrón>
        <patrón>%d %p %c{1.}: %m%n</patrón>
      </PatternLayout>
    </GuiLogEvent>

  </Agregadores>

  <Registradores>

    <!-- Registrador raíz -->
    <nivel raíz="información">
      <AppenderRef ref="jmeter-registro" />
      <AppenderRef ref="gui-registro-evento" />
    </raíz>

    <!-- SNIP -->

    <!--
      # Ejemplos de registro de Apache HttpClient
    -->
    <!-- # Habilitar conexión de encabezado + registro de contexto - Lo mejor para la depuración -->
    <!--
    <Registrador nombre="org.apache.http" nivel="depuración" />
    <Registrador nombre="org.apache.http.wire" nivel="error" />
    -->

    <!-- SNIP -->

  </Registradores>

</Configuración>

Por lo tanto, si desea cambiar el nivel de registro de la categoría org.apache.http al nivel de depuración, por ejemplo, simplemente puede agregar (o descomentar) el siguiente elemento de registro en el archivo log4j2.xml antes de iniciar JMeter.

  <Registradores>
    <!-- SNIP -->
    <Registrador nombre="org.apache.http" nivel="depuración" />
    <!-- SNIP -->
  </Registradores>

Para obtener más detalles sobre cómo configurar el archivo log4j2.xml , consulte la página de configuración de Apache Log4j 2 .

El nivel de registro para categorías específicas o el registrador raíz también se puede anular directamente en la línea de comandos (en lugar de modificar log4j2.xml ). Para ello, utilice las siguientes opciones:

-L[categoría]=[prioridad]
Anula una configuración de registro, estableciendo una categoría particular en el nivel de prioridad dado. Desde 3.2, se recomienda utilizar un nombre de categoría completo (p. ej., org.apache.jmeter o com.example.foo ), pero si el nombre de la categoría comienza con jmeter o jorphan , org.apache. se antepondrá internamente a la entrada del nombre de categoría para construir un nombre de categoría completo (es decir, org.apache.jmeter o org.apache.jorphan ) para compatibilidad con versiones anteriores.

Ejemplos :

jmeter -Ljmeter.engine=DEBUG
jmeter -Lorg.apache.jmeter.engine=DEBUG
jmeter -Lcom.ejemplo.foo=DEBUG
jmeter-LDEBUG

Diferencias en el registro: prácticas antiguas frente a nuevas :

Como JMeter utiliza SLF4J como API de registro y Apache Log4j 2 como marco de registro desde 3.2, no todos los niveles de registro utilizados antes de 3.2 pueden coincidir exactamente con uno de los nuevos niveles de registro disponibles proporcionados por SLF4J/Log4j2. Por lo tanto, tenga en cuenta las siguientes diferencias y las nuevas prácticas sugeridas si necesita migrar cualquier configuración de registro y código de registro existentes.

Categoría Viejas prácticas antes de 3.2 Nuevas prácticas desde 3.2
Referencia del registrador Referencia del registrador a través de LoggingManager :
LoggingManager.getLoggerFor (categoría de cadena);
LoggingManager.getLoggerForClass();
Use la API SLF4J con categoría o clase explícita:
LoggerFactory.getLogger(categoría de cadena);
LoggerFactory.getLogger(Foo.clase);
Niveles de registro en configuración o argumentos de línea de comando Niveles de registro antiguos:
  • DEPURAR
  • INFORMACIÓN
  • ADVERTIR
  • ERROR
  • ERROR FATAL
  • NINGUNA
Mapeo a nuevos niveles a través de SLF4J/Log4j2:
  • DEPURAR
  • INFORMACIÓN
  • ADVERTIR
  • ERROR
  • ERROR
  • APAGADO
Dado que FATAL_ERROR no es compatible con la API SLF4J, se trata como ERROR para que el código existente no se rompa. También existe la opción de nivel de registro FATAL .
El nivel TRACE , que es menos específico que DEBUG , se admite adicionalmente desde 3.2. Busque la documentación de SLF4J o Apache Log4J 2 para obtener más detalles.
JMeter generalmente no usa cuadros de diálogo emergentes para los errores, ya que estos podrían interferir con la ejecución de las pruebas. Tampoco reporta ningún error por una variable o función mal escrita; en cambio, la referencia se usa tal cual. Consulte Funciones y variables para obtener más información .

Si JMeter detecta un error durante una prueba, se escribirá un mensaje en el archivo de registro. El nombre del archivo de registro se define en el archivo log4j2.xml (o mediante la opción -j , consulte a continuación). El valor predeterminado es jmeter.log y se encontrará en el directorio desde el que se inició JMeter.

El menú Opciones  →  Visor de registro muestra el archivo de registro en un panel inferior en la ventana principal de JMeter.

En el modo GUI, la cantidad de mensajes de error/fatales registrados en el archivo de registro se muestra en la parte superior derecha.

Contador de errores/fatales
Contador de errores/fatales

La opción de línea de comandos -j jmeterlogfile permite procesar después de leer el archivo de propiedades inicial y antes de que se procesen otras propiedades. Por lo tanto, permite anular el valor predeterminado de jmeter.log . Los scripts de jmeter que toman un nombre de plan de prueba como parámetro (p. ej ., jmeter-n.cmd ) se han actualizado para definir el archivo de registro utilizando el nombre del plan de prueba, p. ej., para el plan de prueba Test27.jmx , el archivo de registro se establece en Test27. registro _

Cuando se ejecuta en Windows, el archivo puede aparecer simplemente como jmeter a menos que haya configurado Windows para mostrar las extensiones de archivo. [Lo que deberías hacer de todos modos, para que sea más fácil detectar virus y otras cosas desagradables que fingen ser archivos de texto...]

Además de registrar errores, el archivo jmeter.log registra cierta información sobre la ejecución de la prueba. Por ejemplo:

2017-03-01 12:19:20,314 INFORMACIÓN oajJMeter: Versión 3.2.20170301
2017-03-01 12:19:45,314 INFORMACIÓN oajgaLoad: Cargando archivo: c:\mytestfiles\BSH.jmx
2017-03-01 12:19:52,328 INFORMACIÓN oajeStandardJMeterEngine: ¡Ejecutando la prueba!
2017-03-01 12:19:52,384 INFO oajeStandardJMeterEngine: Iniciando 1 subprocesos para el grupo BSH. Rampa hacia arriba = 1.
2017-03-01 12:19:52,485 INFO oajeStandardJMeterEngine: Continuar con error
2017-03-01 12:19:52,589 INFORMACIÓN oajtJMeterThread: subproceso BSH1-1 iniciado
2017-03-01 12:19:52,590 INFO oajtJMeterThread: el subproceso BSH1-1 está terminado
2017-03-01 12:19:52,691 INFO oajeStandardJMeterEngine: Prueba finalizada

El archivo de registro puede ser útil para determinar la causa de un error, ya que JMeter no interrumpe una prueba para mostrar un diálogo de error.

1.4.8 Lista completa de opciones de línea de comandos

Invocar a JMeter como " jmeter -? " imprimirá una lista de todas las opciones de la línea de comandos. Estos se muestran a continuación.

    --?
        imprimir opciones de línea de comando y salir
    -h, --ayuda
        imprimir información de uso y salir
    -v, --versión
        imprimir la información de la versión y salir
    -p, --propfile <argumento>
        el archivo de propiedades jmeter a usar
    -q, --addprop <argumento>
        archivos adicionales de propiedades de JMeter
    -t, --testfile <argumento>
        el archivo jmeter test(.jmx) para ejecutar
    -l, --logfile <argumento>
        el archivo para registrar muestras
    -i, --jmeterlogconf <argumento>
        archivo de configuración de registro jmeter (log4j2.xml)
    -j, --jmeterlogfile <argumento>
        Archivo de registro de ejecución de jmeter (jmeter.log)
    -n, --nongui
        ejecutar JMeter en modo nongui
    -s, --servidor
        ejecutar el servidor JMeter
    -H, --proxyHost <argumento>
        Configure un servidor proxy para que lo use JMeter
    -P, --proxyPort <argumento>
        Configure el puerto del servidor proxy para que lo use JMeter
    -N, --nonProxyHosts <argumento>
        Establecer una lista de hosts no proxy (p. ej., *.apache.org|localhost)
    -u, --username <argumento>
        Establezca el nombre de usuario para el servidor proxy que utilizará JMeter
    -a, --password <argumento>
        Establezca la contraseña para el servidor proxy que utilizará JMeter
    -J, --jmeterproperty <argumento>=<valor>
        Definir propiedades JMeter adicionales
    -G, --globalproperty <argumento>=<valor>
        Definir propiedades globales (enviadas a servidores)
        por ejemplo -Gport=123
         o -Gglobal.propiedades
    -D, --systemproperty <argumento>=<valor>
        Definir propiedades adicionales del sistema
    -S, --systemPropertyFile <argumento>
        archivos adicionales de propiedades del sistema
    -f, --forceDeleteResultFile
        fuerce la eliminación de los archivos de resultados existentes y la carpeta de informes web, si está presente, antes de comenzar la prueba
    -L, --loglevel <argumento>=<valor>
        [categoría=]nivel, por ejemplo, jorphan=INFO, jmeter.util=DEBUG o com.example.foo=WARN
    -r, --ejecutarremoto
        Iniciar servidores remotos (como se define en remote_hosts)
    -R, --remotestart <argumento>
        Inicie estos servidores remotos (anula hosts_remotos)
    -d, --homedir <argumento>
        el directorio de inicio de jmeter para usar
    -X, --salida remota
        Salga de los servidores remotos al final de la prueba (modo CLI)
    -g, --reportonly <argumento>
        generar solo un panel de informes, a partir de un archivo de resultados de prueba
    -e, --reportatenofloadtests
        generar panel de informes después de la prueba de carga
    -o, --reportoutputfolder <argumento>
        carpeta de salida para el panel de informes

Nota: el nombre del archivo de registro de JMeter tiene el formato de SimpleDateFormat (aplicado a la fecha actual) si contiene comillas simples emparejadas, .eg ' jmeter_'yyyyMMddHHmmss'.log '

Si se usa el nombre especial LAST para las banderas -t , -jo o -l , entonces JMeter lo interpreta como el último plan de prueba que se ejecutó en modo interactivo.

1.4.9 Apagado del modo CLI

Antes de la versión 2.5.1, JMeter invocaba System.exit() cuando se completaba una prueba del modo CLI. Esto causó problemas para las aplicaciones que invocan JMeter directamente, por lo que JMeter ya no invoca System.exit() para completar una prueba normal. [Algunos errores fatales aún pueden invocar System.exit() ] JMeter cerrará todos los subprocesos que no sean daemon que inicie, pero es posible que aún queden algunos subprocesos que no sean daemon; estos evitarán que la JVM salga. Para detectar esta situación, JMeter inicia un nuevo subproceso de daemon justo antes de que finalice. Este subproceso daemon espera un momento; si regresa de la espera, entonces claramente la JVM no ha podido salir y el subproceso imprime un mensaje para decir por qué.

La propiedad jmeter.exit.check.pause se puede usar para anular la pausa predeterminada de 2000 ms (2 segundos). Si se establece en 0 , entonces JMeter no inicia el subproceso del daemon.

1.5 Configuración de JMeter

Si desea modificar las propiedades con las que se ejecuta JMeter, debe modificar user.properties en el directorio /bin o crear su propia copia de jmeter.properties y especificarlo en la línea de comando.

Nota: Puede definir propiedades de JMeter adicionales en el archivo definido por la propiedad de JMeter user.properties que tiene el valor predeterminado user.properties . El archivo se cargará automáticamente si se encuentra en el directorio actual o si se encuentra en el directorio bin de JMeter. De manera similar, system.properties se usa para actualizar las propiedades del sistema.

Parámetros

Atributo
Descripción
Requerido
proveedor ssl
Puede especificar la clase para su implementación de SSL si no desea utilizar la implementación de Java integrada.
No
xml.parser
Puede especificar una implementación como su analizador XML. El valor predeterminado es: org.apache.xerces.parsers.SAXParser
No
hosts_remotos
Lista delimitada por comas de hosts JMeter remotos (o host:port si es necesario). Si está ejecutando JMeter en un entorno distribuido, enumere las máquinas en las que tiene servidores remotos de JMeter ejecutándose. Esto le permitirá controlar esos servidores desde la GUI de esta máquina
No
no_en_el_menú
Una lista de componentes que no desea ver en los menús de JMeter. Como JMeter tiene más y más componentes agregados, es posible que desee personalizar su JMeter para mostrar solo los componentes que le interesan. Puede enumerar su nombre de clase o su etiqueta de clase (la cadena que aparece en la interfaz de usuario de JMeter) aquí, y no aparecerán ya no aparecen en los menús.
No
rutas_de_búsqueda
Lista de rutas (separadas por ; ) en las que JMeter buscará clases de complementos de JMeter, por ejemplo, muestras adicionales. Un elemento de ruta puede ser un archivo jar o un directorio. Cualquier archivo jar en dicho directorio se incluirá automáticamente en search_paths , los archivos jar en subdirectorios se ignoran. El valor dado se suma a los archivos jar que se encuentran en el directorio lib/ext .
No
usuario.classpath
Lista de rutas en las que JMeter buscará clases de dependencia de utilidades y complementos. Utilice el separador de rutas de su plataforma para separar varias rutas. Un elemento de ruta puede ser un archivo jar o un directorio. Cualquier archivo jar en dicho directorio se incluirá automáticamente en user.classpath , los archivos jar en subdirectorios se ignoran. El valor dado se suma a los archivos jar que se encuentran en el directorio lib. Todas las entradas se agregarán a la ruta de clases del cargador de clases del sistema y también a la ruta del cargador interno de JMeter.
No
plugin_dependency_paths
Lista de rutas (separadas por ; ) en las que JMeter buscará clases de dependencia de utilidades y complementos. Un elemento de ruta puede ser un archivo jar o un directorio. Cualquier archivo jar en dicho directorio se incluirá automáticamente en plugin_dependency_paths , los archivos jar en subdirectorios se ignoran. El valor dado se suma a cualquier jar que se encuentre en el directorio lib o proporcionado por la propiedad user.classpath . Todas las entradas se agregarán a la ruta del cargador interno de JMeter únicamente. Para las dependencias de complementos , se debe preferir plugin_dependency_paths a user.classpath .
No
usuario.propiedades
Nombre del archivo que contiene propiedades JMeter adicionales. Estos se agregan después del archivo de propiedades inicial, pero antes de que se procesen las opciones -q y -J .
No
propiedades del sistema
Nombre del archivo que contiene propiedades adicionales del sistema. Estos se agregan antes de que se procesen las opciones -S y -D .
No

Los archivos de opciones y propiedades de la línea de comandos se procesan en el siguiente orden:

  1. -p perfil
  2. Luego se carga jmeter.properties (o el archivo de la opción -p )
  3. -j archivo de registro
  4. El registro se inicializa
  5. user.properties está cargado
  6. system.properties está cargado
  7. todas las demás opciones de la línea de comandos se procesan

Consulte también los comentarios en los archivos jmeter.properties , user.properties y system.properties para obtener más información sobre otras configuraciones que puede cambiar.

Go to top