JMeter, Pruebas de stress sobre aplicaciones web: Grabando y reproduciendo navegaciones

12
96631

JMeter, pruebas de stress sobre aplicaciones web: Grabando y reproduciendo navegaciones

Introducción.

En este tutorial vamos a mostrar como grabar sobre Apache JMeter una navegación real sobre una aplicación web para posteriormente poder reproducirla con distintos número de usuarios concurrentes con el fin de obtener información de como se comporta nuestra aplicación bajo esas situaciones.

Empezemos

Ejecutamos jmeter y realizamos los siguientes pasos:

  1. Agregar un grupo de hilos para indicar el número de usuarios concurrentes y de repeticiones que posteriormente ejecutarán la navegación que grabaremos.

    Para ello selecciona el plan de pruebas haces clic con el botón derecho del ratón y seleccionas la opción Add » Thread Group.
  2. Si tu aplicación usa cookies deberás agregar un gestor de cookies al grupo de hilos, para ello seleccionas el grupo de hilos, haces clic con el botón derecho y seleccionas Add » Config Element » HTTP Cookie Manager.
    Hay un tipo de Cookie Manager por cada tipo de cookie: rfc2119, netscape, etc..
  3. Agregar un gestor de cabeceras al grupo de hilos, para ello seleccionas el grupo de hilos, haces clic con el botón derecho y seleccionas Add » Config Element » HTTP Header Manager.
  4. Agregar un gestor de caché al grupo de hilos, para ello seleccionas el grupo de hilos, haces clic con el botón derecho y seleccionas Add » Config Element » HTTP Cache Manager.
  5. Agregar los informes que desees (Add » Listener » <el informe que desees>) para tratar los resultados obtenidos al ejecutar el test.
  6. Agregar un HTTP Proxy Server, para ello seleccionas el WorkBench y luego haces clic en Add » Non-Test-Element » HTTP Proxy Server

    El HTTP Proxy grabará todas las peticiones http (las https NO) que vayamos realizando posteriormente con nuestro navegador, para ello debemos hacer las configuraciones que se muestran resaltadas en la siguiente imagen:

    1. El parámetro port indica el puerto en el que escuchará las peticiones a grabar (posteriormente diremos al navegador que navege a través de ese puerto).
    2. El parámetro Target controller indica que grupo de hilos (puede haber varios) serán el que ejecuten posteriormente la navegación.
    3. El parámetro Grouping indica como se agruparán una petición y las subpeticiones relacionadas, por ejemplo: Una página HTML, hace que se soliciten imágenes, JS, CSS, etc.
    4. El parámetro HTTP Sampler Type, indica el API de cliente que usaremos para enviar las peticiones..

      HTTPClient que ofrece más posibilidades. Puedes ver un tutorial aquí.


    Ampliar imagen

  7. Configuras tu navegador favorito para que navege a través de un proxy, por ejemplo para FireFox, deberás dirigirte al menú Herramientas » Opciones » Avanzado » pestaña Red:

    Sí estás probando una aplicación en tu máquina local, también deberás usar el proxy, por lo que deberás borrar el contenido del cuadro de texto No usar proxy para.

  8. Haces click en el botón Start que se encuentra en el panel de configuración de HTTP Proxy Server y comienzas a navegar por la aplicación web.

    En la siguiente imagen se muestra una navegación básica de cinco páginas de una aplicación Web construida con PHP:

  9. Ahora podrás reproducir lo grabado M veces con N usuarios, revisar los informes y sacar conclusiones en base a ellos.

Conclusiones

Desde mi punto de vista JMeter es una de esas aplicaciónes de código abierto con grandes posibilidades pero con carencias en cuanto a documentación… por lo que para sacarle todo su potencial hay que tirarse horas probando para exprimir sus posibilidades.

Grabando y reproduciendo navegaciones junto con los informes apropiados y otras técnicas y herramientas (Glassbox, JMX..) podemos tener información suficiente para realizar optimizaciones en nuestros sistemas.

Si tus sistemas no van todo lo rápido que te gustaría, te animo a que contactes con nosotros (Autentia) y seguramente consigamos incrementar en poco tiempo el rendimiento en un alto porcentaje.

Carlos García Pérez. Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.

cgpcosmad@gmail.com

12 Comentarios

  1. Esta aplicación tiene algun listado de incompatibilidades con algunos lenguajes o procedimientos, por ejemplo Javascript, AJAX , etc.?

    Gracias por la ayuda de antemano.
    Saludos Cordiales.

  2. El tutorial está muy bueno, solo que me gustaría saber como hacer un análisis de los resultados de rendimiento. Existe algún standar para decir si es bueno o no el rendimiento de una aplicación web.

  3. Excelente tutorial, tengo una consulta.. las computadoras ya tiene definido un ip en el proxy, quisiera saber si eso afecta al jmeter porque estoy intentando grabar los escenario y no sale nada.

Dejar respuesta

Please enter your comment!
Please enter your name here