Introducción a Apache JMETER

INTRODUCCION

Las pruebas de rendimiento sirven a los colaboradores de control de calidad (testers) verificar que tan bien una aplicación o sitio web se desempeña bajo ciertas circunstancias específicas. Es ahí donde entra a tallar Apache JMeter que es una herramienta idónea para llevar a cabo ese tipo de pruebas.
JMeter es un proyecto de Apache Jakarta que puede ser usado como una herramienta de prueba de carga para analizar y medir el desempeño de una variedad de servicios en una aplicación web. Es un software de escritorio escrito enteramente en Java y disponible par todas las plataformas.
JMeter puede ser usado como una herramienta de pruebas unitarias para conexiones a base de datos con JDBC, FTP, LDAP, servicios Web, JMS, http, y conexiones genéricas TCP.

¿Pero, que son las pruebas de rendimiento?
Las pruebas de rendimiento son pruebas de funcionamiento de un sistema para comprobar su operatividad en términos de capacidad de respuesta, rendimiento, fiabilidad y escalabilidad bajo una carga de trabajo determinada.
Las pruebas de rendimiento no tienen por objetivo encontrar defectos o errores en la aplicación, sino que abordan una tarea mas critica, que es la de encontrar el índice de referencia o estándar establecido para la aplicación.
En cristiano, las pruebas de rendimiento sirven para asegurarnos que la aplicación responde dentro de los tiempos limites establecidos por el usuario o no.

Normalmente verificamos durante las pruebas de performance:
  • Capacidad: El número máximo de objetos que la aplicación puede manejar.
  • Latencia: El tiempo promedio y máximo para completar la operación del sistema.
  • Tiempo de Respuesta: El tiempo promedio y máximo de respuesta de la aplicación.
  • Rendimiento: La máxima cantidad de transacciones que la aplicación puede manejar.
Ejemplos: Para verificar el tiempo de respuesta de un sistema de procesamiento en línea, y también para medir el tiempo de procesamiento de tareas en lote.

¿Por qué necesitamos pruebas de rendimiento?
Hoy en día la gran mayoría de aplicaciones modernas, especialmente las aplicaciones en línea, están enfocadas en tener un gran número de usuarios, por consiguiente tendrán también un gran número de operaciones simultaneas.
En consecuencia, es importante medir el nivel de rendimiento optimo para un numero de usuarios concurrentes. Es por ello que tenemos que simular de alguna manera el numero de usuarios concurrentes y controlar la calidad y velocidad del servicio bajo dichas condiciones.

 ¿Qué tipos de pruebas de rendimiento existen?
  • Pruebas de Carga:
Las pruebas de carga someten al sistema a una carga estática representativa con el fin de medir el rendimiento de la aplicación ante una carga de usuarios.
El objetivo principal es identificar los cuellos de botella de la aplicación en ejecución.
  • Pruebas de estrés:
Estas pruebas buscan hacer caer la aplicación e identificar el punto de ruptura. El objetivo es hacer presión extrema al sistema para verificar si falla o no. Y para llevar a cabo esta tarea hay que llevar al sistema fuera de los limites de sus necesidades específicas.
  • Pruebas de Volumen:
Estas pruebas de refieren a pruebas con una gran cantidad de información. Por ejemplo, si deseamos probar contra el tamaño limite de la base de datos, expandimos dicha base de datos a dicho tamaño y verificar la performance de la aplicación en dichas circunstancias.
Otro escenario puede ser interactuar con archivos como .dat, .xml. Esta interacción puede ser escribiendo/leyendo datos de/hacia el archivo y hacer también pruebas de volumen de este tipo con la aplicación.
  • Pruebas de Escalabilidad:
Estas pruebas son para determinar si la aplicación se comporta efectivamente en “scaling up” para soportar un incremento en carga de usuarios.
Esto es, desplegar la aplicación en diferentes sistemas  y ver como se comporta. El objetivo es entender en que punto la aplicación ya no puede escalar e identificar las razones de esto. Esto nos ayuda a planear la capacidad de nuestro sistema de software.
  • Pruebas pico:
Es el proceso de pruebas en el cual una aplicación es probada con incrementos y decrementos de carga. De esta forma se observa como el sistema reacciona ante un aumento y decremento de usuarios.
  • Pruebas de resistencia:
Son conocidas como pruebas de fiabilidad. Son pruebas de estrés realizadas durante largos periodos de tiempo para ver la estabilidad de la aplicación. El objetivo principal es verificar que la aplicación puede manejar una gran carga por un largo periodo de tiempo.

CONFIGURACION DE APACHE JMETER

Descargar todos los componentes necesarios para Apache JMeter
Tu necesitas primero descargar la ultima versión de Apache JMeter. Claro Ud. tiene que tener instalado JAVA adecuadamente en su sistema operativo (JAVA_HOME como variable de entorno).
 JMeter simplemente se descomprime en el directorio de tu preferencia.
JAVA ( jdk version 1.7 o reciente) :

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Apache JMeter Binaries:

http://jmeter.apache.org/download_jmeter.cgi


Como ejecutar Apache JMeter

Descomprimimos el archivo respectivo y buscamos en el directorio bin los archivos JMeter.sh (para Linux o mac) o JMeter.bat (para Windows).



Ejecutar tu primer script en JMeter

Después de ejecutar JMeter seguiremos los siguientes pasos para crear un simple script para verificar con una carga de 5 usuarios nuestro sitio web.
En Windows el .bat no necesita permisos. En Linux o mac si es necesario dar permiso de ejecución antes de lanzar el .sh. Observe en la figura:


 De esta manera el JMeter es ejecutado.


Paso 1: Crear un grupo de Hilos y darle valores

Para crear el grupo de hilos, clic derecho en Testplan y Add – Thread – Thread Group. Luego establecer el valor de 5 en Number of Thread y dejar los otros campos con sus valores por defecto. Esto debido a que queremos verificar con una carga de 5 usuarios en 1 segundo.





Crear una vista de resultado
Para crear una vista de resultado  (View Result Tree), clic derecho en Testplan y  escoger Add – Listener – View Result Tree. No se necesita cambiar nada en view result tree. Nos tenemos que asegurar que esta vista sea añadida a nuestro script.




Crear un reporte resumen
Para crear un reporte resumen, clic derecho en Tesplan y Add – Listener – Summary Report. Igual que en la opción anterior no necesitamos cambiar nada en este reporte resumen. Nosotros necesitamos verificar los resultados como promedio,  tiempo mínimo y máximo de carga por pagina.




 El resultado final es el siguiente:


Crear un HTTP Request y establecer los valores adecuados
Para crear un HTTP Request, clic derecho a Thread Group – Add – Sampler – http Request.
Este es un simple request.  Ver la imagen y establecer los valores. Luego clic en el botón Run para ejecutar el script.



Ingrese los datos siguientes:


Name: http Request
Server Name or IP: www.joedayz.pe (puede probar con sus aplicaciones)
Implementation: HttpClient4
Path : /
Nota: No olvide dar clic en el botón verde. Si le pide grabar su script guárdelo donde Ud. desee.
Verificar el rendimiento en un reporte
Clic en View Result Tree










 Clic en Summary Report




CONCLUSION

Nosotros podemos medir el rendimiento de la aplicación después de la carga de usuarios simulada. Sin una herramienta como esta no  sería posible verificar este tipo de pruebas.

Esperamos le sea de utilidad.

Joe















Comentarios

Entradas populares