60
Pautas para realizar preubas con JMETER

Jmeter para Aplicaciones Web

  • Upload
    redes

  • View
    20.185

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Jmeter para Aplicaciones Web

Pautas para realizar preubas con JMETER

Page 2: Jmeter para Aplicaciones Web

Jmeter• http://jakarta.apache.org/jmeter/• Apache JMeter is a 100% pure Java desktop application designed

to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

• What can I do with it? - Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.

Es una buena herramienta para probar el rendimiento de aplicaciones web

Page 3: Jmeter para Aplicaciones Web

Plan de Pruebas

• Para realizar un test, se debe configurar un plan de pruebas.

• Para ello se pincha sobre el icono que aparece en el marco de la izquierda denominado “Plan de Pruebas”. Aparece en el marco de la derecha un nuevo panel en el que se puede configurar diversos parámetros.

Page 4: Jmeter para Aplicaciones Web

PASOS A REALIZAR

Page 5: Jmeter para Aplicaciones Web

Grupo de hilos

• Lo primero que se añade al plan de pruebas es un grupo de hilos de ejecución que permita definir el número de usuarios a simular.

• Se puede especificar:– Número de hilos a ejecutar en paralelo.– Número de iteraciones que hará cada hilo.– Planificar la ejecución de la prueba, indicando hora

de arranque y parada, duración del test en segundos y tiempo de arranque del mismo.

– Acción a realizar en caso de error en el test por un hilo(para el hilo o parar todos).

Page 6: Jmeter para Aplicaciones Web

Grupo de hilos

Page 7: Jmeter para Aplicaciones Web

Grupo de hilos

Page 8: Jmeter para Aplicaciones Web

Peticiones HTTP

• Se pueden definir las propiedades por defecto para las peticiones HTTP que puedan aparecer en un plan de pruebas.De esta forma al definir una petición http, no es necesario rellenar todos los campos de información, ya que heredarán las propiedades por defecto definidas.

Page 9: Jmeter para Aplicaciones Web

Grupo de hilos

Page 10: Jmeter para Aplicaciones Web

Grupo de hilos

Page 11: Jmeter para Aplicaciones Web

Gestión de Cookies

• En un plan de pruebas, se puede simular el comportamiento de las Cookies, añadiendo un “Gestor de Cookies HTTP” al Grupo de hilos.

• Se puede borrar la cookie en cada iteración del test, o establecer los valores que se deseen para las cookies.

Page 12: Jmeter para Aplicaciones Web

Gestión de Cookies

Page 13: Jmeter para Aplicaciones Web

Gestión de Cookies

Page 14: Jmeter para Aplicaciones Web

Controladores

• Jmeter posee dos tipos de controladores de la pruebas:– MuestreadoresPermiten enviar peticiones a

un servidor. Se configuran usando “Elementos de Configuración”.

– Controladores lógicosPermiten controlar el comportamiento de la prueba, y tomar decisiones en función de situaciones, valores, condiciones, etc. Cada controlador puede tener uno o más “Elementos por defecto”.

Page 15: Jmeter para Aplicaciones Web

Controlador Simple

• Como ejemplo, se va a ser crear un controlador simple para agrupar una serie de peticiones.

• Para ello se selecciona sobre el Grupo de hilos, y con botón derecho se elige AñadirControlador LógicoControlador Simple

Page 16: Jmeter para Aplicaciones Web

Controlador Simple

Page 17: Jmeter para Aplicaciones Web

Controlador Simple

Page 18: Jmeter para Aplicaciones Web

Petición HTTP

• A continuación, se define una petición HTTP, para lo cual se selecciona sobre el controlador simple que se ha creado, y con botón derecho se elige la opción de AñadirMuestreadorPetición HTTP, y se le da un nombre

Page 19: Jmeter para Aplicaciones Web

Petición HTTP

Page 20: Jmeter para Aplicaciones Web

Petición HTTP

Page 21: Jmeter para Aplicaciones Web

Petición HTTP

• En la pantalla de Petición HTTP se pueden configurar los siguientes parámetros:– Método: GET o POST– Path del recurso a pedir.– Redirección automática.– Seguir las redirecciones indicadas por el resultado de

la petición.– Usar KeepAlive: Mantener la conexión viva entre

distintas peticiones.– Envío de parámetros en la request.– Envío de un fichero adjunto a la request.

Page 22: Jmeter para Aplicaciones Web

Petición HTTP

• Los parámetros que no se completen serán heredados del elemento de configuración “Valores por Defecto para peticiones HTTP”.

Page 23: Jmeter para Aplicaciones Web

Aserciones

• A una petición se le puede añadir aserciones que comprueban que la ejecución de la petición es correcta.

• Para ello se selecciona la petición HTTP, y con botón derecho se hace click sobre AñadirAsercionesAserción de Respuesta.

Page 24: Jmeter para Aplicaciones Web

Aserciones• Se pueden añadir los siguientes tipos de “Aserciones”:

– Aserción de respuesta, para comprobar la respuesta. Puede comprobarse el texto, o la URL, o el código de respuesta, o el mensaje de respuesta, e indicar si coincide con una serie de patrones, o no.

– Aserción de duración, para indicar un tiempo máximo de ejecución.– Aserción HTML, para verificar que el HTML, XML o XHTML esté

correctamente construido (utiliza Tiny).– Aserción MD5Hex, para verificar que la suma MD5 es la especificada.– Aserción de tamaño, para verificar que el tamaño es <,>, =, etc que uno

especificado– Aserción XML, para verificar que el resultado es un XML bien formado.– Aserción Beanshell, para programación de pequeños shell scripts que

realizan verificaciones a medida.

Page 25: Jmeter para Aplicaciones Web

Aserciones

Page 26: Jmeter para Aplicaciones Web

Aserciones

• Por ejemplo se puede añadir una aserción de respuesta, en la que se establece la condición de que el código de respuesta sea 200, corresponde a una página servida correctamente.

Page 27: Jmeter para Aplicaciones Web

Aserciones

Page 28: Jmeter para Aplicaciones Web

Preprocesadores

• En un plan de pruebas se pueden añadir preprocesadores que realicen acciones antes de enviar la Request:– Contador: Para crear una variable contador, que

puede ser referenciada en cualquier parte del test – Parámetros de usuario: parámetros definidos por el

Usuario, que nos van a permitir definir una especie de constantes dentro del test.

– Parser de enlaces HTML: Parsea la respuesta HTML del servidor, y extrae los links y forms.

– Máscara de parámetros HTML.– Modificador de reescritura HTTP URL.– Modificador de parámetros de usuario HTTP.

Page 29: Jmeter para Aplicaciones Web

Posprocesadores

• En un plan de pruebas se pueden añadir postprocesadores que realicen acciones después de enviar la Request:– Extractor de Expresiones regulares: Extrae cadenas de la

respuesta (contenido o cabeceras) que cumplan una expresión regular

– Manejador de acción para status de resultados: Permite indica la acción a tomar después de que se produzca un error: continuar, parar el thread, o parar el test.

– Almacenar respuesta en un archivo: Permite almacenar en un fichero la respuesta obtenidas (todas o sólo las erróneas)

– Generar resumen de resultados: Resumen de información que se envía a la salidad cada cierto tiempo (utilizado en modo batch)

Page 30: Jmeter para Aplicaciones Web

Otras características

• Permite activar o desactivar una parte del test, lo que es útil cuando se está desarrollando un test largo, y se desea deshabilitar ciertas partes iniciales que sean muy pesadas o largas.

• Se pueden encadenar las Request que se deseen, y mover los elementos dentro del árbol.Aquellas acciones más externas afectan a las más internas del árbol de test

Page 31: Jmeter para Aplicaciones Web

Listener

• Para lanzar un test de forma interactiva, se necesita crear un listener que recupere información , dentro del “Grupo de hilos”.

Page 32: Jmeter para Aplicaciones Web

Listener• Algunos de los tipos de Listener:

– Resultados de aserciones: Muestra la URL de cada petición e indica los errores que se produzcan (aserciones que no se han cumplido) en el test.

– Gráfico de Resultados completo: Simplemente muestra el tiempo– Gráfico de Resultados: Muestra un gráfico con los tiempos medio, desviación,

throughput, etc. de la ejecución del plan de prueba.– Monitor de Resultados: Sólo funciona en Tomcat 5– Escrito de datos simple: Vuelca los resultados a un fichero.– Visualizador Spline: Gráfico de tiempos como spline.– Informe Agregado: Muestra una tabla con una fila por cada URL solicitada,

indicando el tiempo min, max, medio, etc. Es una tabla que totaliza por URL.– Vista de Resultados en Tabla: Muestra una tabla con todas las respuestas, la

URL, tiempo y resultado de ejecución de cada una de ellas.– Vista de Resultados en Árbol: Muestra un árbol con todas las respuestas y sus

tiempos.

Page 33: Jmeter para Aplicaciones Web

Listener

• Para ello se selecciona el “Grupo de Hilos”, y se clickea sobre AñadirListener Informe Agregado

Page 34: Jmeter para Aplicaciones Web

Listener

Page 35: Jmeter para Aplicaciones Web

Listener

Page 36: Jmeter para Aplicaciones Web

Ejecución

• Para ejecutar se pulsa sobre la opción del menú LanzarArrancar.

• La ejecución del Plan de Pruebas ejecuta los threads configurados en “Grupo de hilos”. Posicionando el ratón sobre “Informe Agregado” se ve la información sobre la prueba.

Page 37: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

• Otra forma para generar un caso de prueba es a través de una navegación de usuario.

• Para ello hay que indicar a Jmeter que actué como proxy, para capturar la navegación del caso de prueba.

• Se pulsa en Banco de Trabajo con el botón derecho y se elige “Elementos no de Prueba”-> Servidor Proxy Http.

Page 38: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 39: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

• Se configuran los parámetros del Proxy en la pantalla que aparece en el marco de la derecha.

Page 40: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 41: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

• Se arranca el Proxy, usando el botón “Arrancar” que aparece en el mismo.

Page 42: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 43: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

• Se configura el navegador que se use para que utilice el Proxy para filtrar las peticiones.

• Por ejemplo, configuramos el firefox.

Page 44: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 45: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 46: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

• Una vez configurado el servidor y el navegador, tan sólo hay que ir navegando por las diferentes páginas sobre las que se quiere realizar las pruebas. De forma automática, Jmeter,irá registrando en la consola del Jmeter las páginas sobre las que se quiere realizar las pruebas.

Page 47: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

• Como ejemplo vamos a hacer una navegación sobre Proyecto Agrega, y desde allí se va a realizar la búsqueda de un contenido, su previsualización, y por último la descarga del contenido.

• Para ello basta realizar la interacción comentada con el navegador.

Page 48: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 49: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 50: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 51: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 52: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 53: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

• Internamente en Jmeter se han ido generando los siguientes elementos de prueba en el Banco de Pruebas

Page 54: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 55: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

• A continuación, se puede parar el Proxy, y preparar diferentes pruebas con los casos de pruebas generados.

• Por ejemplo se puede preparar una prueba de crear 5 hilos en paralelo, subidos en el momento de lanzamiento, tiempo 0, y realizar 2 iteraciones. Además pegamos en el grupo de hilos,los casos de prueba generados.

Page 56: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 57: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

• Añadimos un par de salidas para mostrar los resultados de las pruebas. Por ejemplo podemos mostrar un “Gráfico de resultados”, “Summary Report”, y “Ver Resultados en Árbol”

Page 58: Jmeter para Aplicaciones Web

Preparación de pruebas con Proxy

Page 59: Jmeter para Aplicaciones Web

Explotación de la información

• A partir de los datos que se recuperan se puede estudiar diferentes características relativos al rendimiento. Por ejemplo un dato que hemos observado al hacer estas pruebas, es que el logo de las CCAA, falla en un 100% de los casos, o por ejemplo que hay una ralentización importante al realizar las búsquedas.

Page 60: Jmeter para Aplicaciones Web

Explotación de la información

• Otra forma de explotarlo consiste en variar los parámetros de los grupos de hilos, y hacer una comparativa conjunta de lo que resulta en cada caso, viendo como responden los nodos al aumento de usuarios concurrentes.