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ú
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.
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.
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:
- Plan de prueba web avanzado
- JDBC
- FTP
- JMS punto a punto
- Tema JMS
- LDAP
- LDAP extendido
- Servicios web (SOAP)
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 ¶
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.
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 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.
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.
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_docsPuede 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.
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
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 .
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 .
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ú
o el icono Plantillas:Aparece una ventana emergente, luego puede elegir una plantilla entre la lista:
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:
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.
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]
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
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 .
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]
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]
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
1.4.7 Registro y mensajes de error ¶
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:
|
Mapeo a nuevos niveles a través de SLF4J/Log4j2:
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.
|
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ú
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.
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.
Parámetros
Los archivos de opciones y propiedades de la línea de comandos se procesan en el siguiente orden:
- -p perfil
- Luego se carga jmeter.properties (o el archivo de la opción -p )
- -j archivo de registro
- El registro se inicializa
- user.properties está cargado
- system.properties está cargado
- 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.