JMeter

RECU-0224 (Recurso Ficha Técnica)

Descripción

JMeter es la herramienta mas popular para realizar pruebas de carga. En un principio fue diseñada para realizar las pruebas de stress centradas en las aplicaciones web, pero actualmente se permite diseñar pruebas para bases de datos, FTP, prácticamente para cualquier cosa.

Otra de sus principales características es su diversidad de pruebas. JMeter permite realizar desde un componente muy sencillo (solicitud) hasta secuencias complejas que permiten analizar el comportamiento de la aplicación. Puede manipular y almacenar la secuencia para su reutilización en otras pruebas.

Ejemplo de uso

El componente principal de JMeter es denominado Plan de Prueba o Test Plan, en él se definen todos los aspectos relacionados con una prueba de carga, como : parámetros empleados , tipo de reportes a generarse con los resultados obtenidos, la posible reutilización, entre otros aspectos. Para crear un plan de pruebas deberíamos de seguir el siguiente proceso:

JMeter se basa en el concepto de “Elemento” (Element) y en una estructura en “Arbol” (Tree). Es posible mantener cualquier elemento del árbol para posteriores reutilizaciones en las pruebas de rendimiento. A partir de los elementos que se definan se puede generar el plan de pruebas. Los elementos se catalogan en jerárquicos y ordenados

Elementos jerárquicos:

  • Listeners (elementos en escucha)
  • Config Elements (elementos de configuración)
  • Post-processors (post-procesadores)
  • Pre-processors (pre-procesadores)
  • Assertions (afirmaciones)
  • Timers (cronómetros)

Elementos ordenados:

  • Controllers (controladores)
  • Samplers (agentes de pruebas)

Cuando se cree un plan de pruebas, en primer lugar se crea una "lista ordenada" de todas las peticiones a ejecutar mediante el empleo de "samplers", que representan las acciones de ejecución en el plan. Dentro de los controladores (Controllers) , se organizan las peticiones. En ocasiones los controladores alteran el orden de la ejecución de los elementos que están bajo su control.

Se pueden configurar los hilos que se van a ejecutar en paralelo, así como el momento en que se arranca y el numero de iteraciones que realizará cada hilo. Se pueden programar , en función de fecha y hora, los arranques de los test. SE puede definir la respuesta de un hilo ante un error (continuar la ejecución, parar el thread o parar todos los threads del test). JMeter posee dos tipos de Controllers:

  • Agentes de pruebas(Samplers): Permiten enviar peticiones a un servidor. Por ejemplo un “http Request Sampler” nos permite enviar peticiones http hacia un servidor. Los “Samplers” se pueden configurar utilizando “Configuration Elements”.
  • Controladores de lógica(Logical Controllers): Permite controlar el comportamiento de la prueba, y tomar decisiones en función de situaciones, valores, condiciones, etc. Por ejemplo, un controlador “If Controller” nos permite decidir si realizar o no una petición http en función de una condición. Cada controlador, puede tener uno o más “Default Elements”

La herramienta JMeter ,permite la creación de peticiones del protocolo http , que son representadas por “http Request Elements” y pueden ser configuradas por defecto con “Default http Request Properties". De esta manera, no es necesario configurar cada petición que se haga , ya que las mayorías estarán configuradas por defecto.

Ventajas e inconvenientes

  • Ofrece un Amplio surtido de parámetros para realizar pruebas de rendimiento, carga y regresión con facilidad y eficiencia.
  • Existe excelente documentación disponible que facilita la curva de aprendizaje de la herramienta
  • Posee la capacidad de soporte para múltiples hilos
  • Ofrece la posibilidad de representar gráficas de rendimiento

Requisitos e incompatibilidades

Para poder realizar un desarrollo sobre JMeter o se quiere usar los paquetes de extensión estándar de Sun para Java, entonces es necesario utilizar algunos de los siguientes paquetes:

  • Compilador Java JDK 1.3 o superior.
  • Parser SAX XML, viene con el parser XML Apache Xerces, es posible indicar un parser alternativo.
  • Soporte de correo electrónico (para enviar correos dependiendo del resultado de las pruebas), hay que agregar los paquetes JavaMail de Sun y el paquete activation.
  • Encriptación SSL, el JDK 1.4 integra las librerías necesarias.
  • Driver JDBC, se ha de agregar el driver JDBC al classpath si se quiere realizar pruebas sobre JDBC.
  • Apache SOAP, requiere los ficheros mail.jar y activation.jar (al igual que el soporte de correo electrónico).
  • JMeter automáticamente encuentra las clases en los ficheros jars que se encuentran en los directorios lib y lib/ext. Si se quiere agregar algún fichero JAR al classpath de JMeter, se ha de copiar en el directorio lib. Si se ha desarrollado algún nuevo componente para JMeter, entonces es recomendable empaquetarlos en un jar y copiarlo en el directorio lib/ext.
  • Si el plan de pruebas es muy pesado es recomendable desactivar el modo gráfico (jmeter -n).
  • JVM 1.4 o mayor

Enlaces externos

Contenidos relacionados