viernes, 21 de octubre de 2011

JMeter V. Ejecución de escenarios de prueba


Continuando con los pasos de iniciación de JMeter, tras los capítulos dedicados a la grabación, parametrización y modificación de scripts y código, incluimos ahora un capítulo dedicado a la ejecución de pruebas de carga con el código grabado y depurado.
Como hemos comentado, el plan de pruebas sirve para planificar el momento de inicio de la prueba, su duración, el escalonamiento en la entrada de los usuarios y su salida
A continuación, describimos los elementos de configuración del elemento “Grupo de Hilos” (Thread Group) relacionado con el lanzamiento de pruebas.
Configura el funcionamiento ante fallos ,permite
  • Continuar ante el error
  • Para hilo (sólo el hilo que causó el fallo)
  • Parar test : Para toda la prueba

El “Grupo de hilos corresponde al concepto de “script”, refleja los pasos de la navegación,así como la concurrencia a alcanzar en la misma

Definimos la concurrencia (número de hilos) el incremento de la carga (periodo de subida) a lo largo de dicho periodo y el número de iteraciones (Contador del bucle)

Se ha de habilitar esta opción para tener acceso a la configuración del planificador
Fecha y hora de inicio .Formato YY/MM/DD hh:mm:ss

Fecha y hora de fin .Formato YY/MM/DD hh:mm:ss
Duración en segundos. Se puede poner un valor fijo o referenciar a una variable
Tiempo de espera desde el inicio hasta que empieza a generar carga

Tabla 1. Configuración del planificador de lanzamiento de plan de pruebas JMeter
Esta configuración permite lanzar el plan de prueba con el entorno gráfico de JMeter habilitado. Esto es útil en cuanto que nos permite una mayor flexibilidad a la hora de para y detener la prueba. También permitiría incrementar o detener la carga inyectada, estableciendo varios grupos de hilos que se podrían detener deshabilitando los grupos de hilos que consideremos oportuno para reducir la carga

Ilustración 1. Habilitar y deshabilitar elementos plan de prueba
Sin embargo, la experiencia muestra que para el lanzamiento de pruebas, por cuestiones de consumo de memoria y CPU, el uso del entorno gráfico de JMeter es una idea que podemos clasificar como “no muy buena”. La configuración de JMeter permite el consumo de memoria hasta de un máximo de 2 GB en un sistema operativo de 32 bit, aunque, al menos hasta la versión 2.4 sólo permitía llegar hasta los 1,5 GB
Lanzar y detener planes de prueba
La ejecución del plan de pruebas en modo gráfico, se realiza seleccionando del menú de JMeter “Lanzar” ->”Arrancar” o bien por atajo de teclado CTRL + R

Ilustración 2. Arrancar y detener desde menu JMeter
La parada se realiza seleccionando, dentro del mismo menú la opción Parar (Atajo de teclado CTRL + ,).
Monitorización de los resultados
La comprobación de los resultados que se obtienen durante la prueba se realiza incluyendo listener. Aparte del ya citado para depuración “Ver resultados en árbol” , existen varios listener que nos proporcionan datos instantáneos del estado de la prueba, con métricas familiares a ti, lector avezado con experiencia en pruebas de carga, tales como
  • Througput
  • Tiempo de respuesta por petición
  • Transacciones por segundo ejecutadas
  • % de errores en las peticiones
Debemos destacar que los listener proporcionados por la herramienta, parecen dar en ocasiones información contradictoria. No obstante, el uso de JMeter y los comentarios obtenidos por los autores a lo largo de varias pruebas de distintas aplicaciones, han mostrado que los listener que se pueden considerar como más fiables son
1. Informe agregado. Un clásico de la monitorización en JMeter
2. Ver Árbol de Resultados. Permite localizar los pasos que dan error
3. Escritor de datos simples.
Una consideración que debemos tener en cuenta es el ámbito de los listener. Podemos hacer que los listener recojan información específica desde el “grano fino” a el total de peticiones lanzadas en un plan de pruebas, dependiendo de la rama de la que desciendan
  • Petición HTTP
  • Transacción definida ej:(T0_Login) “Controlador de transacción simple”
  • Grupo de hilos.
  • Plan de pruebas


a)Listener de Informe agregado

Ilustración 3. Listener Informe Agregado
Nombre y comentarios: De libre descripción
Escribir datos a archivo: Salvar los resultados a un fichero.
Casillas de opciones: escribir sólo los resultados fallidos/correctos
Configurar: Permite seleccionar los campos del formato a salvar
Label: El nombre de la petición/controlador de transacción que se ejecuta
Muestras :Nº ejecuciones efectuadas
Media, mediana, Linea 90% Min, max: valores estadísticos de tiempo de respuesta en milisegundos
%Error: porcentaje de la petición fallida
Rendimiento: nº de peticiones por segundo
Kb/seg: Througput respuestas servidor

b) El listener de “Ver Resultados en Árbol”, recoge las muestras ejecutadas a lo largo de la prueba, indicando el número de petición (“muestra”), el momento de inicio (“start time”), el nombre del grupo de hilos y el número del hilo que ejecuta (“Thread name”) , la etiqueta o nombre de la petición o controlador “Label”, el tiempo de respuesta , el resultado de la petición y el tamaño en bytes de la petición
Ilustración 4. Listener Ver Resultados en Árbol
Los datos muestreados obtenidos por los listener citados, permiten tener datos en el instante. Sin embargo, no permiten tener una visión global de la prueba, sino como medias alcanzadas. Para poder ver la evolución de la carga a lo largo de la misma, se deben tratar los datos obtenidos a lo largo de la misma. El mecanismo que proporciona JMeter para ello es el “escritor de datos simple”.
c) El escritor de datos simples salva en un fichero los datos de muestreo correspondientes al ámbito del muestreador del que dependa
Ilustración 5. Listener Escritor de datos simple
Como opciones más importantes a destacar en el listener, señalaremos
  • Nombre de archivo: Ruta al fichero donde volcará los resultados. Admite incluir variables o funciones en el nombre ,para crear rutas con fecha y hora
  • Casillas “Escribir en log sólo errores “ – “Sucesses”. Indicamos que sólo salve las peticiones que generen errores o las que sean correctas.
  • Botón “Configurar”: Aquí se especifican los campos a salvar en el fichero

Ilustración 6. Configuración datos a salvar por escritor datos simples
Aunque dependerá del uso que le queramos dar, nuestra habilidad para el bricolaje de datos o sencillamente, lo que nos queramos complicar la existencia.
Desde nuestra experiencia, los campos más interesantes son los que aparecen marcados en el gráfico

Guardar código de respuesta
Código HTTP recibido
Guardar Etiqueta
Nombre de la petición
Guardar etiqueta de tiempo
Tiempo en el que se efectúa la petición
Guardar Nombre de campo
La primera fila del fichero de resultados es el nombre de campo
Guardar datos de muestreador

Guardar Nombre de hilo
Nombre del Grupo de hilo y número de thread
Save URL
URL sobre la que se realiza la petición
Save Active thread count
Número de threads activos en el instante
Guardar resultados de aserción
¿La aserción dio por válida la respuesta a la petición http?
Guardar tiempo
Tiempo de respuesta en milisegundos
Save byte count
Througput de respuesta en bytes

Tabla 2. Campos de configuración de la escritura de datos a archivo
El fichero de resultados contiene estos campos separados por comas, con lo cual pueden ser usados como entrada a una macro de hoja de cálculo o a algún gestor de base de datos, que traten estos valores, agrupándolos de manera que puedan sacarse conclusiones sobre los mismos…pero eso ya es al gusto o conocimiento del usuario.

6 comentarios:

  1. Hola soy nuevo en el tema, quisiera saber si un plan de pruebas se puede programar para que se ejecute a determinadas horas del día
    gracias

    ResponderEliminar
  2. Hola,

    Gracias por comentar en el blog. Para progarmar la ejecución de un escenario de pruebas tienes varias opciones:

    1) La más directa es chekeando la opción "Planificador" dentro de las propiedades del objeto "Grupo de Hilos". Eso te permitirá fijar la fecha y hora de arranque y parada desde la interfaz.

    2) Programar la ejecución del escenario en modo "batch" mediante una tarea programada (Windows) o a través del "cron" (UNIX).

    Esta segunda opción nos parece más flexible y útil.

    ResponderEliminar
  3. Hola,
    He estado intentando grabar un escenario de prueba en jmeter, pero al momento de agregar un archivo excel en el escenario este no me permite agregarlo y por tal motivo no puedo seguir con la grabación del test plan.
    Quisiera saber como hacer para poder agregar un archivo excel en plena grabación.

    Gracias.!

    ResponderEliminar
    Respuestas
    1. Hola,
      Es complicado decir lo que puede estar pasando sin tener más información. Si JMeter te devuelve algún error, intenta examinar más detenidamente la traza en los ficheros de log para intentar acotar el problema.

      Otra prueba que puedes realizar, es copiar el fichero que quieres anexar en la carpeta "bin" desde la que ejecutas JMETER... aunque esta solución no siempre es suficiente.

      Eliminar
  4. Buenas tardes, quisiera saber como puedo obtener las imágenes de la grabación realizada en JMeter, ya que Realizo la grabación pero el resultado me arroja solo el HTML y desearía la imagen del proceso.

    Gracias.

    ResponderEliminar
  5. Hola
    Cuando se ejecuta el script , en el listener de tipo "Ver Árbol de Resultados" , puedes seleccionar la opción Texto, Testeador de expresiones regulares,CSS/Jquery Tester Xpath Tester,Ver como expresión Regular, XML, JSon, JSON Path Tester HTML o HTML(descargar elementos embebidos), . Con este tipo, puedes ver las imágenes que se trae ,aunque hay que recordar que no es un navegador al uso, sino un visualizador limitado.
    Por otro lado pudes usar las capacidades en modo proxy de JMeter y navegar usando el proxy de otra herramienta de scripting para "ver" por donde va pasando cada petición del script. Sino, también puedes complementar lasejecuciones con el uso de herramientas de debuggin de los navegadores como Bugzilla o similares para ir comparando las peticiones reales con las que usas en JMeter
    Esperamos que esto te hay sido de ayuda
    Gracias por tu interés y saludos!

    ResponderEliminar