jmeter cuore

59
JMeter Introducción a JMeter Índice del capítulo ! Introducción. ! Requisitos. ! Instalación. ! Ejecución. ! La interfaz gráfica. ! Ejecución en línea de comandos.

Upload: cargarm3

Post on 02-Jan-2016

256 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Jmeter Cuore

JMeter

Introducción a JMeter

Índice del capítulo

! Introducción.! Requisitos.! Instalación.! Ejecución.! La interfaz gráfica.! Ejecución en línea de comandos.

Page 2: Jmeter Cuore

Introducción

! Las pruebas de software son los procesos que permiten verificar y revelar la calidad de un producto software.

! Las pruebas de software se integran dentro de las diferentes fases del Ciclo del software dentro de la Ingeniería de software. Así se ejecuta un programa y mediante técnicas experimentales se trata de descubrir que errores tiene.

3

Introducción

! También puede servir para validar y verificar otros atributos de la calidad del sistema, tales como la escalabilidad, fiabilidad y uso de los recursos.

! Las pruebas de rendimiento son un subconjunto de la ingeniería de pruebas, una práctica informática que se esfuerza por mejorar el rendimiento, englobándose en el diseño y la arquitectura de un sistema, antes incluso del esfuerzo inicial de la codificación.

4

Page 3: Jmeter Cuore

Introducción

! Atendiendo a si tenemos en cuenta el funcionamiento interno del software o no, clasificamos las pruebas respectivamente en:

Pruebas de caja blanca.Pruebas de caja negra.

5

Introducción

!Según el objetivo, podemos clasificar las pruebas en:

Pruebas unitarias (comprobar el correcto funcionamiento de un módulo de código por separado).Pruebas funcionales y de validación (el software cumple con las especificaciones y con los deseos del cliente).Pruebas de Integración( comprobar el correcto funcionamiento de un sistema completo).

6

Page 4: Jmeter Cuore

Introducción

! ... continuaciónPruebas de carga o estrés(comprobación de que el sistema puede soportar la carga de trabajo esperada en el entorno de producción)Pruebas de prestaciones o rendimiento (comprobación de que el sistema puede conseguir los objetivos de los usuarios en los tiempos y con los recursos deseados).

7

Introducción

! JMeter es una aplicación de escritorio construida en Java que sirve como herramienta para probar software, en concreto es muy utilizado para, aplicaciones web aunque también sería aplicable a servidores FTP, Bases de datos, etc.

! Se usa habitualmente para analizar las prestaciones (el rendimiento) de recursos dinámicos y estáticos, tales como, servlets, objetos Java, bases de datos, etc.

8

Page 5: Jmeter Cuore

Introducción

! También se utiliza con frecuencia para diseñar test de estrés (o de carga), emulando grandes niveles de concurrencia sobre nuestros servidores.

! En conjunto con JUnit podemos ejecutar pruebas unitarias.

! JMeter permite crear pruebas asociadas a aserciones, pudiendo validar los resultados generados.

9

Introducción

! JMeter es un proyecto Apache:

10

Page 6: Jmeter Cuore

Introducción

! JMeter es un proyecto Apache:http://jakarta.apache.org/jmeter/index.htmlSe puede encontrar toda la información necesaria para su uso:" Ejecutables." Manuales de usuario." Wikis.

11

Requisitos

! Máquina virtual Java:1.4 o superior.

! Sistema operativo:Unix (Solaris, Linux, Mac etc.).Windows (98, NT, XP, etc.).OpenVMS Alpha 7.3+.

12

Page 7: Jmeter Cuore

Instalación

! Su proceso de instalación se reduce a su descarga desde la web de JMeter del fichero zip o tar de la última distribución:

13

Hacer click en el enlace marcado

Se descarga la versión deseada

Instalación

! Una vez descargado el fichero, se descomprime obteniendo la siguiente estructura de directorios:

14

Page 8: Jmeter Cuore

Instalación

! Instalar correctamente JDK/JRE gracias a la configuración de la variable de entorno JAVA_HOME.

15

Ejecución

! La ejecución estándar de JMeter se realiza de la siguiente manera:

En windows:" > jmeter.bat

En unix:" > jmeter

! Tras unos instantes aparecerá la interfaz gráfica de JMeter.

16

Page 9: Jmeter Cuore

Interfaz gráfica

! La herramienta JMeter está organizada en tres áreas claramente diferenciadas:

Barra de menú: esta barra tiene cinco menús independientesPanel lateral: se almacenan todos los elementos que forman parte de los planes de pruebas que se van a desarrollar.Panel principal: una vez seleccionado un elemento en el panel lateral, se obtendrá información específica de dicho elemento en el panel central.

17

Interfaz gráfica

18

Barra de menús

Panel central: almacena información detallada del elemento que se encuentre seleccionado en cada caso

Panel lateral

Page 10: Jmeter Cuore

Ejecución en línea de comandos

! Se puede trabajar con JMeter en modo no gráfico.

! Las opciones más habituales son:-n: especifica la ejecución de JMeter en modo línea de comandos.-t: nombre del fichero JMX que almacena el plan de pruebas.-l: nombre del fichero JTL que almacena los resultados del test.-r: ejecuta la prueba en los servidores especificados en la propiedad "remote_hosts".-R: ejecuta el test en la lista de servidores remotos.

19

Ejecución en línea de comandos

! Las opciones más habituales son (cont.):-H: dirección IP o hostname del servidor.-P: puerto.

! Ejemplos:

20

> jmeter.bat -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000

Page 11: Jmeter Cuore

JMeter

Conceptos básicos

Índice del capítulo

! Introducción.! Plan de pruebas.! Thread Group.! Controladores:

Samplers y controladores lógicos.

! Timers.! Aserciones.! Preprocesadores.! Postprocesadores.! Listeners.! Elementos de configuración.

Page 12: Jmeter Cuore

Introducción

! Para manejar adecuadamente JMeter se deben conocer los elementos importantes que lo vertebran.

! Este capítulo describe de forma general cada uno de ellos.

3

Plan de pruebas

! Un plan de pruebas en JMeter es un conjunto de elementos que configuran el comportamiento de los tests que se van a llevar a cabo sobre un software.

! Los elementos que se incorporarán en un plan de pruebas son:

Thread Groups.Controladores lógicos. Sample generating controllers. Listeners.Timers.Aserciones. Elementos de configuración.

4

Page 13: Jmeter Cuore

Plan de pruebas

! El elemento principal en el panel lateral es el plan de pruebas:

5

Plan de pruebasSu nombre puede editarse

Plan de pruebas

! Una vez definido el plan de pruebas los elementos dentro de dicho plan se incorporan mediante del menú contextual:

6

Page 14: Jmeter Cuore

Plan de pruebas

! Para guardar un plan de pruebas:

! También podemos guardar elementos individuales. 7

Plan de pruebas

! Los planes de pruebas se guardan en ficheros con extensión jmx.

! Éstos posteriormente podrán ser recuperados mediante la opción Abrir que se encuentra en el menú Archivo.

8

Page 15: Jmeter Cuore

Thread Group

! Este elemento es el punto de partida de cualquier plan de pruebas.

! Como su nombre indica, define el número de hilos que JMeter ejecutará cuando se lancen las pruebas.

! Para añadir este elemento en un plan de pruebas debe utilizarse el botón derecho seleccionando la opción Add y posteriormente marcando ThreadGroup.

! El elemento Thread Group anida a todos los demás elementos Controllers y Samplers.

9

Thread Group

! Una vez creado se configura:Número de threads.Periodo de arranque (ramp-up period).Número de veces que se ejecutan las pruebas.

10

Page 16: Jmeter Cuore

Número de threads en Thread Group

! Indica el número de ejecuciones que se van a lanzar del plan de test.

! Cada hilo que ejecutamos ejecuta el plan de test completamente y de forma independiente a los demás hilos.

! Los hilos múltiples son utilizados como mecanismo para simular conexiones concurrentes a nuestro servidor de aplicaciones.

11

Periodo de subida en Thread Group

! Define el tiempo (en segundos) que tardará JMeter en lanzar todos los hilos.

! Por ejemplo, si usamos 10 hilos y el valor del periodo de subida lo establecemos a 100 segundos, JMeter tardará 100 segundos en lanzar y ejecutar los 10 hilos. Cada 10 segundos (100/10) JMeter inicializaría un hilo.

! ¿¿¿Qué pasa si establecemos Number of threads = 30 y Ramp-up = 120 ???

12

Page 17: Jmeter Cuore

Ajuste del Periodo de subida en Thread Group

! Es importante ajustar el periodo de subida, de tal manera que nuestro equipo sea capaz de inicializar el test en el tiempo de lanzamiento de cada hilo (número de hilos / periodo de subida).

! Un buen valor para empezar a ajustar el periodo de subida es inicializarlo al número de hilos que tenemos (es decir, empezaríamos probando si podemos inicializar un hilo en un segundo).

13

Ajuste del Periodo de subida en Thread Group

! En general, se busca que el valor sea lo suficientemente alto como para evitar una sobrecarga en la máquina que lanza el test por un exceso de inicializaciones paralelas y lo suficientemente bajo como para que todos los hilos se ejecuten en paralelo (es decir, que cuando lancemos los últimos los primeros aún sigan ejecutándose).

14

Page 18: Jmeter Cuore

Controladores

! JMeter define dos tipos de controladores asociados a un ThreadGroup previamente creado:

Muestreadores / Samplers: informan a JMeter de cuáles son las peticiones que debe enviar.Controladores lógicos: estos controladores permiten definir cuándo deben enviarse las peticiones.

15

Samplers

! Indican a JMeter que envíe peticiones al servidor y espere respuestas.

! Cada sampler define las características de cada petición.

! Por ejemplo:Petición a un servidor web.Petición a una base de datos a través de JDBC.Petición a un servidor ftp.Peticiones a objetos Java.Petición LDAP.Petición SOAP/XML-RPC.Petición a WebService (SOAP).

16

Page 19: Jmeter Cuore

Samplers

! Petición HTTP:Este sampler permite enviar peticiones HTTP/HTTPS a un servidor.

17

Samplers

! Petición FTP:Este sampler permite enviar peticiones a un servidor FTP.

18

Page 20: Jmeter Cuore

Samplers

! Petición JDBC:Este sampler permite enviar peticiones a una base de datos.

19

Controladores lógicos

! Estos elementos permiten definir la lógica que JMeter aplica para decidir cuándo envía las peticiones.

! Estos elementos aplican su lógica sobre sus elementos hijo.

20

Este controlador actúa sobresus elementos hijo

Page 21: Jmeter Cuore

Controladores lógicos

! Controlador simple:Permite organiza samplers y otros controladores lógicos.No proporciona ninguna otra funcionalidad.Su único objetivo es agrupar peticiones.JMeter maneja las peticiones de la misma forma que si no estuvieran dentro de un controlador simple.

21

Controladores lógicos

! Controlador bucle (Loop controller):Como su nombre indica, permite realizar iteraciones.

22

Número de veces que serepite el bucle

Page 22: Jmeter Cuore

Controladores lógicos

! Once only controller:Este controlador indica que sus hijos sólo se ejecutarán una vez.

! Interleave controller:Ejecuta una de las peticiones que almacena de forma alternativa.

! Random controller:Selecciona uno de los samplers hijo de forma aleatoria.

! Runtime controller:Controla cuanto tiempo se ejecutan sus hijos.

23

Controladores lógicos

! If controller:Este controlador impone una condición para que se puedan ejecutar los elementos hijo que alberga.

24

Page 23: Jmeter Cuore

Aserciones

! Se utilizan para realizar comprobaciones adicionales sobre los samplers.

! Para asegurarse de que una aserción se aplica sobre un único sampler, debe incluirse como elemento hijo del sampler.

! Existen diferentes tipos:De respuesta.De duración.De tamaño....

25

Aserciones

! De respuesta:Esta aserción comprueba que la respuesta coincide con un determinado patrón:

26

Page 24: Jmeter Cuore

Aserciones

! De duración:Esta aserción comprueba que la respuesta se recibe en un determinado tiempo.Cualquier respuesta que tarde más de un número dado en milisegundos se marcará como respuesta fallida.

27

Aserciones

! HTML:Permite al usuario comprobar la sintaxis HTML de la respuesta.

28

Page 25: Jmeter Cuore

Timers

! Por defecto, un thread envía peticiones sin ningún retardo entre cada petición.

! Se recomienda especificar un retardo entre las distintas peticiones añadiendo al ThreadGroup timers.

! Si no se añaden retrasos entre peticiones, JMeter puede sobrecargar un servidor.

! Un timer genera un retraso entre las distintas peticiones enviadas.

29

Timers

! Se procesan antes que los samplers que se encuentran en su alcance (scope).

! Si hay varios samplers en el mismo alcance, todos ellos se ejecutan antes que los samplers.

! JMeter ofrece distintos tipos de timers al desarrollador:

Retraso constante.Retraso gaussiano.Retraso aleatorio uniforme....

30

Page 26: Jmeter Cuore

Timers

! Constant timer:

! Gaussian Random Timer:

31

Preprocesadores

! Es un elemento que ejecuta un conjunto de operaciones sobre un sampler antes de que sea lanzado.

! Existen distintos tipos de proprocesadores:Modificador de reescritura.Máscara de parámetro HTML.Parámetros de usuario.Parser de enlaces HTML....

32

Page 27: Jmeter Cuore

Postprocesadores

! Es un elemento que permite realizar un conjunto de operaciones una vez que se ha recibido la respuesta resultado de un sampler.

! Algunos de los postprocesadores son:Extractor de expresiones regulares.Manejador de acciones.

33

Listeners

! Se utilizan para monitorizar los resultados asociados a las pruebas.

! Se procesan al final del alcance en el que se encuentran.

! Ejemplo:Controlador simple:" sampler 1" sampler 2" listener 1

Controlador If:" sampler 3" sampler 4.

34

El alcance del listener es lazona donde se ha declarado.

Page 28: Jmeter Cuore

Elementos de configuración

! Estos elementos permiten definir una configuración por defecto que posteriormente se aplicará sobre samplers.

! Estos elementos se procesan los primeros dentro del alcance donde se definan.

! Algunos de ellos son:FTP Request Defaults.HTTP Request Defaults.HTTP Cookie Manager.HTTP Authorization Manager....

35

Elementos de configuración

! FTP Request Defaults:Permite definir parámetros de configuración por defecto para peticiones FTP. Cualquier sampler ftp puede asumir dichos parámetros como propios.

36

Page 29: Jmeter Cuore

Elementos de configuración

! HTTP Request Defaults:Permite definir parámetros de configuración por defecto para peticiones HTTP. Cualquier sampler HTTP puede asumir dichos parámetros como propios.

37

Elementos de configuración

! HTTP Cookie Manager:La incorporación de este elemento permite a JMeter gestionar las cookies asociadas a una aplicación web.

38

Page 30: Jmeter Cuore

Elementos de configuración

! HTTP Authorization Manager:Este elemento permite configurar uno o más procesos de login asociados a aplicaciones.

39

El fichero de Log

! Para hacer un seguimiento de las operaciones internas de JMeter y analizar cada uno de los errores que se producen en las pruebas de estrés (por ejemplo, la recepción de errores 404 de HTTP) utilizaremos el fichero jmeter.log localizado en la carpeta <jmeter>/bin.

40

Page 31: Jmeter Cuore

JMeter

Planes de pruebas para la Web

Índice del capítulo

! Valores por defecto en una petición.! Gestión de sesiones.! URL-Rewriting.! Simular el envío de formularios.! Páginas protegidas.! Grabando y reproduciendo planes de prueba.

2

Page 32: Jmeter Cuore

Valores por defecto en una petición

! El primer paso será incluir un thread group al plan de pruebas.

! Permite definir el número de usuarios que se quieren simular, cuántas peticiones se deben enviar, etc.

3

Valores por defecto en una petición

! Si tenemos 100 muestreadores HTTP en un mismo plan de pruebas que envían peticiones contra el mismo servidor, no es necesario escribir 100 veces los datos comunes como el nombre del servidor, el puerto o los timeouts.

! También podríamos enviar parámetros con valores por defecto.

! Podemos definir un Elemento de configuración de “Valores por defecto de petición HTTP”

4

Page 33: Jmeter Cuore

Valores por defecto en una petición

! Se definen parámetros por defecto comunes a las distintas peticiones HTTP:

5

Gestión de sesiones

! HTTP es un protocolo sin estado.! El estado del cliente se guarda en el servidor.! El cliente debe informar al servidor de quién es

a través de un identificador de sesión.! Si el cliente no envía el identificador de sesión,

el servidor no lo asocia con el estado que ya tenía guardado.

6

Page 34: Jmeter Cuore

Gestión de sesiones

! Para ello se debe incluir un HTTP Cookie manager.

7

Manejar la sesión del usuario con URL-Rewriting

! Si la aplicación web a testear utiliza el método conocido como “URL Rewriting” o paso del identificador de la sesión a través de la URL, entonces la estrategia de usar un gestor de cookies no es válida.

! JMeter necesita parsear la respuesta HTML recibida para extraer el ID de sesión único. A partir de ahí tiene que usar un modificador de URL para que introduzca el identificador en cada una de las peticiones HTTP que lancen los muestreadores.

8

Page 35: Jmeter Cuore

Manejar la sesión del usuario con URL-Rewriting

9

Simular el envío de formularios

! Tenemos que enviar tantas peticiones como el usuario real enviaría

Petición que recupera el formularioPetición que envía los datos del formulario al servidor

! Tenemos que usar el mismo método de envío de peticiones que este usando el formulario de la página Web que queremos emular.

Inspeccionar el valor de la propiedad method del elemento form del HTML del formulario." GET --> Petición GET" POST --> Petición POST" vacía --> Petición GET (por defecto)

10

Page 36: Jmeter Cuore

Simular envío de formulario

Tenemos que enviar el formulario a la URL que se indica en el atributo action del form

! Tenemos que enviar los mismos datos que envía el formulario HTML

Inspeccionar los elementos input anidados dentro del form. Usar los mismos identificadores para cada propiedad que pone en el name o id del input.Incluir también los valores de los campos hidden.

11

Gestor de Autorizaciones HTTP

12

Page 37: Jmeter Cuore

Extracción de parámetros

! El postprocesador Extractor de expresiones regulares nos permite recuperar información de las respuesta generadas que nos va a ser de gran utilidad de forma totalmente dinámica:

13

Parámetros de las peticiones

! Se puede definir un sampler para que envíe parámetros a una determinada url.

! Si queremos que para cada hilo estos parámetros sean diferentes podemos utilizar el preprocesador Parámetros de usuario.

14

Page 38: Jmeter Cuore

Grabando y reproduciendo planes

! Introducción.! HTTP Proxy Server.! Configuración del navegador.! Grabación de la navegación.

Introducción

! Se describe a continuación cómo grabar una navegación real sobre una aplicación web.

! Posteriormente esta grabación podrá reproducirse con distinto número de usuarios concurrentes y configuración con el fin de obtener información asociada al comportamiento de aplicación en el escenario definido.

! El HTTP Proxy grabará todas las peticiones http que se realicen posteriormente con nuestro navegador.

16

Page 39: Jmeter Cuore

HTTP Proxy

! Este elemento debe incluirse en el elemento Workbench:

17

El proxy se incorpora mediante el método Add ...en la opción Non-test Elements.

HTTP Proxy

18

Page 40: Jmeter Cuore

HTTP Proxy

! Parámetros del proxy:port: indica el puerto en el que escuchará las peticiones a grabar.Target controller: indica que grupo de hilos (puede haber varios) serán el que ejecuten posteriormente la navegación.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.HTTP Sampler Type, indica el API de cliente que usaremos para enviar las peticiones.

19

HTTP Proxy

! Parámetros del proxy (cont):URL Patterns to include: patrón url que se debe incluir.URL Patterns to exclude: patrón url que se debe excluir.

20

Page 41: Jmeter Cuore

Configuración del navegador

! Se debe configurar el browser que se va a utilizar para realizar la grabación de la navegación, para que lo haga a través del proxy.

21

Grabación de la navegación

! Para comenzar la grabación se debe arrancar el proxy:

22

Se debe hacer click en el botón Start

Page 42: Jmeter Cuore

Grabación de la navegación

! Una vez arrancado el proxy, cualquier operación que se lleve a cabo mediante el navegador será grabada por JMeter:

23

Grabación de la navegación

! Mediante la exclusión de determinados recursos se puede filtrar la grabación, guardando sólo las peticiones que sean de interés.

! Por ejemplo: imágenes y JavaScript.

24

No se recuperan ni imágenes ni js

Page 43: Jmeter Cuore

JMeter

Test de carga distribuidos

Índice del capítulo

! Introducción.! Test de carga desde varios equipos.! Terminología.! Requisitos de funcionamiento.! Configuración de las máquinas esclavas.! Configuración de la máquina máster.! Ejecutar un test en modo distribuido.

Page 44: Jmeter Cuore

Introducción

! Con una sola máquina es habitual que no sea posible simular todos los usuarios que vamos a tener en el entorno de máxima carga.

! Probablemente no podríamos llevar al sistema a los límites sometiéndolo a un gran estrés, puesto que la máquina que ejecuta los test se sobrecargaría antes que el servidor.

3

! Solución más sencilla: varias máquinas independientes con JMeter.

Test de carga desde varios equipos

4

Servidor Web(objetivo del test)

JMeter192.168.0.1

JMeter192.168.0.2

JMeter192.168.0.3

Peticiones HTTP

Peticiones HTTP

Peticiones HTTP

Operador

Operador

Operador

Page 45: Jmeter Cuore

! Solución potente: varias máquinas coordinadas con JMeter.

Test de carga desde varios equipos

5

Servidor Web(objetivo del test)

JMeter192.168.0.1

JMeter192.168.0.2

JMeter192.168.0.3

Peticiones HTTP

Peticiones HTTP

Peticiones HTTPOperador

ESCLAVOS

<<Máster>>

JMeter192.168.0.4

Terminología

! Máster – La máquina que está ejecutando JMeter en modo gráfico y que controla la ejecución del test

! Esclavo (Slave) – las máquinas que están ejecutando jmeter en modo servidor (jmeter-server). Reciben órdenes del máster y envían peticiones HTTP al servidor objetivo.

! Objetivo (target) – El servidor web sobre el que queremos ejecutar el test de estrés.

6

Page 46: Jmeter Cuore

Requisitos de funcionamiento

! Para que los test de carga distribuidos funcionen, debemos comprobar los siguientes prerequisitos:1.Los cortafuegos están desactivados en las máquinas

esclavas. 2.Todos los clientes (esclavos) y el máster están en la

misma subred (generalmente IPs del tipo 192.x.x.x o 10.x.x.x).

3.El objetivo está accesible desde la subred. 4.Todos los sistemas usan la misma versión de JMeter

(en caso contrario pueden aparecer comportamientos erráticos).

7

Configuración de las máquinas esclavas

! Generalmente no es necesaria configuración, basta con ejecutar jmeter-server.bat (en windows) o jmeter-server (en unix/linux)

8

Page 47: Jmeter Cuore

Configuración de la máquina máster

! Editar el fichero <jmeter>/bin/ jmeter.properties! Buscar la línea remote_hosts=127.0.0.1

Añadir cada una de las IPs de las máquinas esclavas que se quiera controlar. Ejemplo:remote_hosts=192.168.0.10,192.168.0.11,192.168.0.12,192.168.0.13,192.168.0.14

! Ejecutar JMeter en modo gráfico (como lo hemos venido haciendo normalmente).

9

Ejecutar un test en modo distribuido

! Abre un plan de test en la máquina máster.! Lánzalo en las máquinas esclavas desde el

menú “Ejecutar”. Podemos lanzarlo en una única máquina o en todas a la vez.

10

Page 48: Jmeter Cuore

Comentarios

! RMI no puede comunicarse a través de subredes sin un servidor proxy, por lo tanto JMeter tampoco.

! Si añadimos un listener a nuestro plan de pruebas para ver los resultados desde el máster, los clientes envían todos los datos de los resultados al máster y es fácil saturar la red y la máquina máster procesándolos para mostrarlos gráficamente. Es una buena idea utilizar el informe “Escritor de datos simple” para guardar los resultados y ver el archivo más tarde desde un listener gráfico.

11

Comentarios

! Salvo que el servidor sea un sistema multiprocesador potente, 1-2 máquinas esclavas son suficientes para saturar el servidor.

! Un cliente de jmeter funcionando en una CPU de entre 1.4 y 3Ghz puede gestionar entre 100 y 300 hilos, dependiendo del tipo de test.

! Para test de estrés sobre servicios Web y aplicaciones centradas en XML el número de hilos que podremos gestionar desde un cliente oscilará entre 10 y 90. Esto es así porque el procesamiento de XML consume mucha CPU y rápidamente nos quedaremos sin ciclos.

12

Page 49: Jmeter Cuore

JMeter

Conceptos avanzados

Índice del capítulo

! Cargar datos desde un fichero CSV.! Usar las variables desde otros elementos de

JMeter.! Modificar las cabeceras HTTP.! JUnit y JMeter.! JMeter y Maven.

Page 50: Jmeter Cuore

Cargar datos desde un fichero CSV

! Podemos cargar dinámicamente datos que estén en un fichero CSV y guardarlos en variables de JMeter.

! Los ficheros CSV tendrán una línea por cada entrada (cada fila de datos) y las columnas estarán separadas por comas.

! Para cargar los datos en JMeter usaremos en elemento de configuración “Configuración del CSV Data Set”

3

Cargar datos desde un fichero CSV (II)

! Por defecto el fichero se abre una única vez y cada hilo de ejecución utiliza una línea del fichero para obtener los valores de las variables.

! El orden en el que las líneas son asignadas a hilos de ejecución depende de su orden de ejecución y puede variar entre distintas iteraciones. Cada línea es leida en cada iteración del test. El nombre del fichero y el modo son resueltos en la primera iteración.

4

Page 51: Jmeter Cuore

Cargar datos desde un fichero CSV (III)

! Si queremos que cada hilo tenga su propio conjunto de valores entonces necesitaremos crear un conjunto de ficheros, uno para cada hilo. Por ejemplo test1.csv, test2.csv,... testn.csv.

! Estableceremos como nombre del fichero un valor dinámico, por ejemplo,test${__threadNum}.csv y cambiaremos el modo de "Sharing mode" a "Current thread".

5

Cargar datos desde un fichero CSV

6

Fichero CVS

Page 52: Jmeter Cuore

Cargar datos desde un fichero CSV

7

Nombre de variable JMeter : cargaría “a”, “b”, “c”, “d” en cada hilo para la variable

$ACTION

Usar las variables desde otros elementos de JMeter

8

Aquí se ha usado la variable para iterar mientras existan

acciones en el fichero (no se llegue al End Of File o final del

archivo)

Page 53: Jmeter Cuore

Opciones avanzadas

9

Tenemos 4 tipos de modos de compartición del fichero....

Opciones de compartición del fichero

! All threads - (the default) the file is shared between all the threads.

! Current thread group - each file is opened once for each thread group in which the element appears

! Current thread - each file is opened separately for each thread

! Identifier - all threads sharing the same identifier share the same file. So for example if you have 4 thread groups, you could use a common id for two or more of the groups to share the file between them. Or you could use the thread number to share the file between the same thread numbers in different thread groups.

10

Page 54: Jmeter Cuore

Opciones avanzadas

11

¿Borramos el valor de las variables cuando se llegue al

final del fichero?

Opciones avanzadas

12

¿Paramos el hilo si se ha llegado al fin del fichero?

Page 55: Jmeter Cuore

Modificar las cabeceras HTTP

! Para ello tenemos que usar un elemento conocido como “HTTP Header Manager” o “Gestor de cabeceras HTTP”.

! Este elemento permite personalizar la información que JMeter envía en las peticiones HTTP. Por ejemplo, podemos modificar las cabeceras "User-Agent", "Pragma", "Referer", etc.

! Generalmente se añade al nivel del Grupo de Hilos, salvo que queramos especificar distintas cabeceras para distintos muestreadores HTTP.

13

Ejemplo de HTTP Header Manager

14

Page 56: Jmeter Cuore

JMeter y JUnit

! El sampler de JUnit proporciona una forma sencilla de lanzar pruebas unitarias sobre aplicaciones Java.

! Cada clase Java tendrá una clase Java JUnit que testeará los métodos de la clase.

15

JMeter y JUnit

! Se deben empaquetar las clases del proyecto y las pruebas unitarias almacenándolas en el directorio jmeter/lib/unit:

16

Page 57: Jmeter Cuore

Introducción

! Build tool:Herramienta para construir artefactos desplegables a partir de código fuente, es decir, para realizar tareas de preprocesado, compilación, empaquetado, test y distribución.

! Herramienta para la gestión de un proyecto:Creación de informes.Generación de sitios web.Facilita la comunicación entre los distintos miembros del proyecto.

Introducción

! Se ha convertido en una herramienta indispensable para proyectos de tamaño grande que necesitan encontrar una forma sencilla de manejar distintos módulos relacionados, cientos de librerías que a su vez dependen de componentes de terceras personas.

Page 58: Jmeter Cuore

Introducción

! Definición:Es una herramienta para la gestión de proyectos que abarca:" Modelo de objetos de proyectos (POM)." Conjunto de estándares." Ciclo de vida de proyecto." Sistema de gestión de dependencias." Lógica para ejecutar determinadas tareas en

determinadas fases del proyecto.

Integración con JMeter

! La integración de maven con JMeter implica incorporar un nuevo plugin al proyecto maven en el que nos encontremos trabajando.

! Existen varias alternativas:JMeterMavenPlugin.Chronos Maven Plugin.

Page 59: Jmeter Cuore

El plugin JMeterMavenPlugin

! Este plugin permite automatizar las pruebas de carga diseñadas mediante JMeter mediante maven.

El plugin Chronos

! Chronos Maven Plugin.