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?
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.
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.
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.
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.
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