Generando scripts JMeter con GXtest

From GXtest Wiki
Revision as of 20:07, 14 May 2014 by Sebagra (Talk | contribs)

Jump to: navigation, search
Spanish.gif
English.gif
Japan.gif

Contents

JMeter

JMeter es una herramienta open source para hacer testing de performance. Se utiliza para automatizar los casos de prueba en scripts que contienen los pedidos http (o https) que realiza cada caso, y permite modificarlos para realizar distintas acciones (tales como ingresar validaciones, condiciones, parametrizaciones, etc.).


JMeter permite montar escenarios de prueba donde se pueden configurar la cantidad de usuarios activos, cantidad de iteraciones, forma en que los usuarios virtuales ingresan al sistema y otras opciones que permiten que la prueba represente un escenario lo más realista posible. En la figura que sigue se muestra un ejemplo de un plan de pruebas con dichas configuraciones.

JmeterExample.PNG

Al igual que con OpenSTA, poder grabar manualmente un caso de prueba en JMeter tiene algunas dificultades. Al grabar los casos de prueba se obtiene un script con los pedidos http que se realizaron. Por lo tanto, a alguien que no conozca la aplicación le va a resultar muy difícil diferenciar cada paso, o identificar que es lo que se hace en cada pedido. Muchas veces, para dejar el script más claro, se ingresan durante la grabación comentarios entre los pasos, o timers que controlen el tiempo de cada paso. Si encima de esto, queremos agregar validaciones o parametrizar variables, vamos a concluir que realizar un script en JMeter es una tarea pesada, y puede que resulte engorroso en los proyectos en los que se esté cambiando constantemente el código de la aplicación, lo que hace que se tengan que regenerar los scripts seguido.

Es recomendable para un proyecto de performance que se complementen las mediciones del JMeter con herramientas de monitorización de GX, como por ejemplo JMX.

Generando scripts de performance con GXtest

GXtest presenta una alternativa que permite superar esta problemática y generar los planes de prueba para JMeter de manera automática, a partir de un caso de prueba funcional grabado o construido desde GXtest Designer. Esto le brinda al tester muchas ventajas, entre ellas:

  • Grabar los casos de prueba en GXtest, que permite hacerlo de una forma mucho más práctica con posibilidad de agregar validaciones y otras opciones mencionadas en otros artículos.
  • Realizar la parte más pesada del script automáticamente sin necesidad de perder tiempo en hacer tareas repetitivas.
  • En caso de que haya un cambio en la aplicación, poder impactar los cambios en GXtest y luego regenerar los scripts de forma fácil, sin necesidad de grabar de nuevo en GXtest.
  • No tener que ingresar manualmente validaciones, timers, ni parametrizaciones. Normalmente esto se vuelve una tarea bastante larga y muchas veces presenta problemas. GXtest ingresa todos estos elementos de forma automática.
  • Tener los pedidos secundarios (css, gif, jpg, js, etc.) en archivos separados de los primarios. Esto permite tener un script más prolijo, lo que facilita el análisis.
  • Tener una bandera de debug que condiciona los pedidos secundarios y mensajes de log.
  • Soporta autenticación NTLM.
  • Manejo de redirects automático.

¿Cómo funciona el generador?

La generación del script de performance se realiza ejecutando el caso de prueba que deseamos medir, desde el botón "Generate JMeter scripts", en la barra de herramientas de GXtest Designer.

JmeterButton.PNG

Al ejecutar el pedido para crear un script de JMeter, el usuario verá en su pantalla el caso de prueba ejecutándose tal y como se hace normalmente. Sin embargo, internamente se realizan varias acciones distintas: a medida que se va ejecutando el caso de prueba, se crea un archivo xml con todos los comandos de GXtest que se van ejecutando en la prueba. Además, en paralelo se van grabando los pedidos http en un archivo de extensión saz. Estos archivos se dejan dentro de una carpeta con el nombre del caso de prueba, donde está instalado el GXtest Designer, normalmente en: Abstracta\GXtest Designer\Performance\ExecutionLog\.

El formato saz pertenece a la herramienta Fiddler, un proxy que graba el tráfico http(s) entre Internet y la PC para luego poder analizarlo, permitiendo insertar breakpoints, editar los pedidos a nivel de protocolo, etc.

A partir de estos dos archivos (xml y saz) se va generando el script de JMeter tomando los comandos de GXtest del xml y los pedidos http(s) del saz, por lo que, una vez finalizada la ejecución, el script tendrá cada comando ejecutado de GXtest asociado a los pedidos http(s) que se hacen en él con sus correspondientes timers y, en caso de que se hayan ingresado, sus correspondientes validaciones. Además, si en el caso de prueba de GXtest se toma algún valor de una variable desde un datapool, ésta quedará parametrizada en el script de JMeter. Estos archivos se crean en la carpeta Abstracta\GXtest Designer\JMeter.

En general los scripts generados están listos para ejecutarse sin hacer ningún cambio, aunque dependiendo del sistema se le hacen modificaciones para agregar condiciones, variables, validaciones, etc. para que el script se comporte de la forma más real posible.

¿Cómo importar el archivo generado a JMeter?

Luego de finalizada la ejecución del caso de prueba funcional desde GXtest Designer, el script o plan de pruebas para JMeter generado por GXtest quedará en la carpeta de instalación Abstracta\GXtest Designer\JMeter.

El archivo generado tendrá la extensión jmx, y podrá ser abierto desde JMeter desde el menú File -> Open.

Instalar JMeter

JMeter se puede descargar e instalar de manera gratuita desde su sitio web

Resumen

Aquí pueden encontrar un post de nuestro blog en donde hay (entre otras cosas) un video de ejemplo, donde se generan pruebas de performance para OpenSTA.

Generar los scripts a partir de GXtest le permite al tester ahorrar mucho tiempo de trabajo repetitivo, permitiéndole dedicarse a otras tareas para mitigar la mayor cantidad de errores de performance, y así obtener un producto de mayor calidad.