JMeter: Corriendo las pruebas en non-GUI mode


En esta ocasión vamos a hablar de la ejecución de las pruebas de JMeter en modo non GUI, es decir, desde la línea de comandos.

¿Cuándo ejecutar las pruebas en non GUI mode?

  • Testing no interactivo: No necesitamos ver las métricas durante la ejecución.
  • Testing remoto: Los request son enviados más rápidamente a los servidores jmeter en las otras maquinas.
  • No contamos con demasiados recursos (hard): El modo non GUI usa mucho menos recursos por lo que al ejecutar pruebas muy complejas (ya sea por el script o por la carga de usuarios) los resultados no se van a ver afectados por los recursos de la maquina que los ejecuta.
  • Necesitamos programar las pruebas para determinado momento: Ya que podemos armar archivos .bat con las líneas de comandos que ejecuten los scripts deseados y programar con el manejador de tareas del sistema operativo cuando ejecutar ese archivo .bat.

¿Cómo se ejecuta?

Los comandos para la ejecución non GUI son los siguientes:

  • -n Especifica que JMeter debe corer en non-GUI mode
  • -t [nombre del archivo JMX que contiene el Test Plan].
  • -l [nombre del archivo JTL donde se guardan los resultados].
  • -r Corre la prueba en los servers especificados en jmeter.propertie.
  • -R [lista de servers remotos] Corre los test en los servidores remotos especificados.

También permite especificar las opcionalmente la información del server referida al firewall/proxy:

  • -H [proxy server hostname o ip]
  • -P [puerto proxy server]

Pasos para ejecutar el Test Plan:

  1. Abrimos una consola cmd.
  2. Si no tenemos JMeter en el root nos posicionamos en la carpeta bin donde lo tengamos.
  3. Ejecutamos la línea de comando:
    • Jmeter –n –t ejemplo.jmx –l resultados.xls

    JMeter nonGui mode
    JMeter nonGui mode
  4. En la consola se puede ver la ejecución de la prueba

Consideración en cuanto al reporte generado por non-GUI mode:

No es necesario que exista un Listener en el Test Plan para generar el reporte, es más, si existe y esta configurado va a utilizar tiempo de procesamiento en vano. En el caso de que sea estrictamente necesario se puede agregar el listener Simple Data Writer, se le ingresa el destino del archivo CSV o XML y cuando se ejecute en non-GUI mode el archivo será generado (con más consumo que sin ningún listener, pero con menos consumo de recursos que si existiera otro tipo de listener).

Para configurar el reporte generado por el modo non-GUI (-l reporte.xls) tenemos que editar el archivo bin\jmeter.properties y buscar las siguientes secciones (cada sección tiene bastantes variables para cambiar):

  • Sección: “Results file configuration”
    • Ponemos con valor true o false aquellas variables que queremos ver o no en el reporte de resultados (reporte.xls). Las variables comentadas (con un # adelante) indican que ese es su valor por default, es decir, que si ya esta en true y nosotros queremos ese valor, no es necesario editar la linea. En caso de que necesitemos un valor distinto al de default, para que nuestro cambio tenga efecto descomentamos la línea y ponemos el valor deseado (true o false).
    • Si queremos que el resultado se cree en formato CSV es necesario que cambien el valor de la línea “jmeter.save.saveservice.print_field_names=false” por “jmeter.save.saveservice.print_field_names=true” para que escriba los encabezados de cada columna de valores.
    • También es posible editar el formato con el que queremos que salga el timestamp en los resultados modificando la línea “jmeter.save.saveservice.timestamp_format”
  • Sección: “Summariser configuration (mainly applies to non-GUI mode)”
    • Para tener una mejor información sobre la ejecución del Test Plan en la consola,  podemos modificar la linea “summariser.log=false” por “summariser.log=true”
Anuncios

6 pensamientos en “JMeter: Corriendo las pruebas en non-GUI mode”

  1. Hola,

    primero de todo felicitarte por estos posts tan ilustrativos sobre Jmeter, ayudan bastante cuando te estás iniciando en ello 🙂

    Tengo una pregunta acerca de cómo ejecutarlo en Non-Gui Mode. Cuando lo ejecuto por consola (estoy en linux) me da el siguiente error:

    Error in NonGUIDriver java.lang.NullPointerException

    ¿Tienes alguna idea de cómo solucionarlo?

    Gracias y un saludo

    Me gusta

  2. Perdon. Te lo intento explicar un poco mejor. Lo envíe enseguida porque pensaba que era el mismo problema.

    He definido por la aplicación de jmeter una prueba de navegación en una pagina web. Funciona correctamente.

    Al querer lanzarlo desde linea de comandos, con el siguiente comando

    jmeter -n -t google.jmx -H oliver.gmv.es -P 80

    me sale
    2010/06/25 10:16:24 ERROR – jmeter.engine.StandardJMeterEngine: Uncaught exception: java.lang.NullPointerException
    at se.six.jmeter.visualizer.statagg.StatAggResultCollector.testStarted(StatAggResultCollector.java:40)
    at org.apache.jmeter.reporters.ResultCollector.testStarted(ResultCollector.java:260)
    at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:275)
    at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:413)
    at java.lang.Thread.run(Unknown Source)

    Gracias en cualquier caso si puedes ayudarme

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s