Primeros pasos con las pruebas de carga en Liferay utilizando JMeter

Cuando estamos desarrollando,  necesitamos conocer como se comportará nuestra solución si recibe un gran tráfico. Por ello, como ya tenemos un poco de experiencia con Liferay portal es una solución robusta, vamos a realizar unos primeros pasos sobre como configurar JMeter para hacer Test de stress.

JMeter es una herramienta para poder realizar pruebas de carga, aunque en realidad podemos realizar muchas otras pruebas como por ejemplo pruebas unitarias para conexiones de bases de datos con JDBC, FTP, LDAP, Servicios web, JMS, HTTP…

Instalando JMeter

Lo primero que tenemos que hacer es descargar JMeter de su página oficial (http://jmeter.apache.org/download_jmeter.cgi) y descomprimirlo.

Una vez hecho esto vamos a la carpeta y allí /bin y ejecutamos ApacheJMeter.jar

Cómo funciona

Básicamente nosotros lo que vamos a hacer aquí es grabar una pruebas, es decir, registrar todas las peticiones que hacemos a la web y después reproducir esa grabación N veces.

Existen muchas más formas de hacer pruebas de estrés, esto es solo una toma de contacto. Por ello si necesitas un poco más información siempre puedes buscar por el manual de Jmeter o por los foros de Liferay, seguro que encontrarás muchas cosas 😉

Creando el test  plan

El software es bastante intuitivo, solo tenemos que ponernos encima de “Plan de pruebas” y con el botón derecho ir añadiendo cosillas.

  1. Crear un Thread Group: Testplan -> Add -> Threads(Users) -> Thread Group
  2. Dentro del objeto creado antes añadimos: ThreadGroup -> Add -> Logic Controller .> Recording Controller
  3. Dentro de Thread Group creamos: Thread Group -> Add -> Config Element -> Http Request Default

Aquí tenemos que configurar un par de campos Como nombre del servidor (Server Name) ponemos localhost, por ejemplo, en caso de hacer las pruebas en local. También tenemos que configurar el puerto, pondremos en el puerto donde se está ejecutando Liferay, por ejemplo 8080.

  1.  Ahora solo nos quedan las cookies, así que allá vamos: Thread Group ->Add -> Config Element ->Http Cookie Manager

        5. Para ver los resultados después podemos añadir algún elemento, un gráfico o lo                    que necesitemos. Thread Group ->Add-> Listener-> Summary Report.

Ahora es cuando configuramos las cosillas para grabar las pruebas. Ahora tenemos que

añadir los elementos en WorkBench (Banco de trabajo)

  1.  En workBench añadimos: WorkBench ->Add -> No-Tetst Element -> Http Proxy Server.                  Aquí tenemos que modificar el puerto y poner uno que no estemos usando, por                    ejemplo 7777. Tenemos que recordar el puerto porque luego nos hará falta.

          7.   Para ver las peticiones necesitamos también añadir un listener: Workbench ->                           HTTP Proxy Server -> Add -> Listener -> View Results Tree

Grabando las pruebas

Existen muchas maneras sobre cómo hacer las pruebas y que grabar, por ejemplo, podríamos dejar solo las peticiones de datos y eliminar todas aquellas peticiones de Css, o de imágenes. Esto ya es un criterio que decidiremos en función de las pruebas que queramos realizar. Este post al ser una toma de contacto dejaremos todas las peticiones.

Para grabar las pruebas vamos a utilizar Firefox. Así que abrimos el navegador.

Lo primero que hacemos es configurar el proxy, para ello vamos a Herramientas -> Opciones -> Avanzado -> Red -> Configuración …

Veremos una pantalla como la siguiente

Ahora es necesario configurar la compresión gzip, para ella en la barra de direcciones escribimos: about:config y cambiamos la clave network.http.accept-encoding y modificamos gzip,deflate por deflate

  1. Ahora tenemos que pulsar el botón grabar, para ello vamos a JMeter y en Workbench > Http Proxy Server pinchamos sobre Start

Empezamos a navegar por la página a la que queramos hacer el test y cuando terminemos pulsamos sobre Stop.

Reproduciendo con stress

Una vez que ya tenemos los tests grabados solo tenemos que reproducirlos dándole al play.

Para configurar el número de test que vamos a lanzar a la vez nos vamos a Thread Groups y configuramos Number of Thread (users), Ramp-upy LoopCount.

Ramp-up indica el número de segundos que se tarda n alcanzar el número máximo de usuarios: por ejemplo si tenemos 10 threads y establecemos amp-up en 100 segundo, tenemos que j meter tardará 100 segundos en tener activos 10 hilos, o lo que es lo mismo, arrancará 1 hilo cada 10 segundos..

*Debemos tener cuidado ya que el Ramp–up debe ser suficientemente grande para evitar una carga excesiva inicial, de la misma manera que deberá ser lo suficientemente pequeño para que los últimos hilos arranquen antes de que los que empezaron al principio hallan terminado.

Con esto ya sabemos hacer un plan de pruebas de stress con JMeter y Liferay. Ahora solo queda ir modificando los parámetros, creando nuevas grabaciones,tc.

Tened cuidado y no seáis tan brutotes como yo que tuve en las 20 primeras pruebas que hice ponía unos datos exagerados y JVM petaba de los lindo 😉

Anuncios

Comenta la entrada

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s