Está en la página 1de 59

JMeter

Introduccin a JMeter

ndice del captulo


! ! ! ! ! ! Introduccin. Requisitos. Instalacin. Ejecucin. La interfaz grfica. Ejecucin en lnea de comandos.

Introduccin
! 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 Ingeniera de software. As se ejecuta un programa y mediante tcnicas experimentales se trata de descubrir que errores tiene.

Introduccin
! Tambin 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 ingeniera de pruebas, una prctica informtica que se esfuerza por mejorar el rendimiento, englobndose en el diseo y la arquitectura de un sistema, antes incluso del esfuerzo inicial de la codificacin.

Introduccin
! 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.

Introduccin ! Segn el objetivo, podemos clasificar las pruebas en:


Pruebas unitarias (comprobar el correcto funcionamiento de un mdulo de cdigo por separado). Pruebas funcionales y de validacin (el software cumple con las especificaciones y con los deseos del cliente). Pruebas de Integracin( comprobar el correcto funcionamiento de un sistema completo).
6

Introduccin
! ... continuacin
Pruebas de carga o estrs(comprobacin de que el sistema puede soportar la carga de trabajo esperada en el entorno de produccin) Pruebas de prestaciones o rendimiento (comprobacin de que el sistema puede conseguir los objetivos de los usuarios en los tiempos y con los recursos deseados).

Introduccin
! JMeter es una aplicacin de escritorio construida en Java que sirve como herramienta para probar software, en concreto es muy utilizado para, aplicaciones web aunque tambin sera aplicable a servidores FTP, Bases de datos, etc. ! Se usa habitualmente para analizar las prestaciones (el rendimiento) de recursos dinmicos y estticos, tales como, servlets, objetos Java, bases de datos, etc.

Introduccin
! Tambin se utiliza con frecuencia para disear test de estrs (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.

Introduccin
! JMeter es un proyecto Apache:

10

Introduccin
! JMeter es un proyecto Apache:
http://jakarta.apache.org/jmeter/index.html Se puede encontrar toda la informacin necesaria para su uso:
" " "

Ejecutables. Manuales de usuario. Wikis.

11

Requisitos
! Mquina virtual Java:
1.4 o superior.

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

12

Instalacin
! Su proceso de instalacin se reduce a su descarga desde la web de JMeter del fichero zip o tar de la ltima distribucin:
Hacer click en el enlace marcado

Se descarga la versin deseada

13

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

14

Instalacin
! Instalar correctamente JDK/JRE gracias a la configuracin de la variable de entorno JAVA_HOME.

15

Ejecucin
! La ejecucin estndar de JMeter se realiza de la siguiente manera:
En windows:
"

> jmeter.bat > jmeter

En unix:
"

! Tras unos instantes aparecer la interfaz grfica de JMeter.

16

Interfaz grca
! La herramienta JMeter est organizada en tres reas claramente diferenciadas:
Barra de men: esta barra tiene cinco mens independientes Panel 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 informacin especfica de dicho elemento en el panel central.

17

Interfaz grca
Barra de mens

Panel central: almacena informacin detallada del elemento que se encuentre seleccionado en cada caso

Panel lateral 18

Ejecucin en lnea de comandos


! Se puede trabajar con JMeter en modo no grfico. ! Las opciones ms habituales son:
-n: especifica la ejecucin de JMeter en modo lnea 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

Ejecucin en lnea de comandos


! Las opciones ms habituales son (cont.):
-H: direccin IP o hostname del servidor. -P: puerto.

! Ejemplos:

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

20

JMeter

Conceptos bsicos

ndice del captulo


! ! ! ! ! ! ! ! ! ! Introduccin. Plan de pruebas. Thread Group. Controladores:
Samplers y controladores lgicos.

Timers. Aserciones. Preprocesadores. Postprocesadores. Listeners. Elementos de configuracin.

Introduccin
! Para manejar adecuadamente JMeter se deben conocer los elementos importantes que lo vertebran. ! Este captulo describe de forma general cada uno de ellos.

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 incorporarn en un plan de pruebas son:
Thread Groups. Controladores lgicos. Sample generating controllers. Listeners. Timers. Aserciones. Elementos de configuracin.
4

Plan de pruebas
! El elemento principal en el panel lateral es el plan de pruebas:
Plan de pruebas
Su 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:

Plan de pruebas
! Para guardar un plan de pruebas:

! Tambin podemos guardar elementos individuales.

Plan de pruebas
! Los planes de pruebas se guardan en ficheros con extensin jmx. ! stos posteriormente podrn ser recuperados mediante la opcin Abrir que se encuentra en el men Archivo.

Thread Group
! Este elemento es el punto de partida de cualquier plan de pruebas. ! Como su nombre indica, define el nmero de hilos que JMeter ejecutar cuando se lancen las pruebas. ! Para aadir este elemento en un plan de pruebas debe utilizarse el botn derecho seleccionando la opcin Add y posteriormente marcando ThreadGroup. ! El elemento Thread Group anida a todos los dems elementos Controllers y Samplers.
9

Thread Group
! Una vez creado se configura:
Nmero de threads. Periodo de arranque (ramp-up period). Nmero de veces que se ejecutan las pruebas.

10

Nmero de threads en Thread Group


! Indica el nmero 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 dems hilos. ! Los hilos mltiples 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 inicializara un hilo. ! Qu pasa si establecemos Number of threads = 30 y Ramp-up = 120 ???

12

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 (nmero de hilos / periodo de subida). ! Un buen valor para empezar a ajustar el periodo de subida es inicializarlo al nmero de hilos que tenemos (es decir, empezaramos 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 mquina 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 an sigan ejecutndose).

14

Controladores
! JMeter define dos tipos de controladores asociados a un ThreadGroup previamente creado:
Muestreadores / Samplers: informan a JMeter de cules son las peticiones que debe enviar. Controladores lgicos: estos controladores permiten definir cundo deben enviarse las peticiones.

15

Samplers
! Indican a JMeter que enve peticiones al servidor y espere respuestas. ! Cada sampler define las caractersticas de cada peticin. ! Por ejemplo:
Peticin a un servidor web. Peticin a una base de datos a travs de JDBC. Peticin a un servidor ftp. Peticiones a objetos Java. Peticin LDAP. Peticin SOAP/XML-RPC. Peticin a WebService (SOAP).
16

Samplers
! Peticin HTTP:
Este sampler permite enviar peticiones HTTP/HTTPS a un servidor.

17

Samplers
! Peticin FTP:
Este sampler permite enviar peticiones a un servidor FTP.

18

Samplers
! Peticin JDBC:
Este sampler permite enviar peticiones a una base de datos.

19

Controladores lgicos
! Estos elementos permiten definir la lgica que JMeter aplica para decidir cundo enva las peticiones. ! Estos elementos aplican su lgica sobre sus elementos hijo.
Este controlador acta sobre sus elementos hijo

20

Controladores lgicos
! Controlador simple:
Permite organiza samplers y otros controladores lgicos. 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 lgicos
! Controlador bucle (Loop controller):
Como su nombre indica, permite realizar iteraciones.

Nmero de veces que se repite el bucle

22

Controladores lgicos
! Once only controller:
Este controlador indica que sus hijos slo se ejecutarn 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 lgicos
! If controller:
Este controlador impone una condicin para que se puedan ejecutar los elementos hijo que alberga.

24

Aserciones
! Se utilizan para realizar comprobaciones adicionales sobre los samplers. ! Para asegurarse de que una asercin se aplica sobre un nico sampler, debe incluirse como elemento hijo del sampler. ! Existen diferentes tipos:
De respuesta. De duracin. De tamao. ...

25

Aserciones
! De respuesta:
Esta asercin comprueba que la respuesta coincide con un determinado patrn:

26

Aserciones
! De duracin:
Esta asercin comprueba que la respuesta se recibe en un determinado tiempo. Cualquier respuesta que tarde ms de un nmero dado en milisegundos se marcar como respuesta fallida.

27

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

28

Timers
! Por defecto, un thread enva peticiones sin ningn retardo entre cada peticin. ! Se recomienda especificar un retardo entre las distintas peticiones aadiendo al ThreadGroup timers. ! Si no se aaden 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

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. Mscara de parmetro HTML. Parmetros de usuario. Parser de enlaces HTML. ...

32

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: El alcance del listener es la
Controlador simple:
" " "

zona donde se ha declarado.

sampler 1 sampler 2 listener 1 sampler 3 sampler 4.

Controlador If:
" "

34

Elementos de conguracin
! Estos elementos permiten definir una configuracin 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 conguracin
! FTP Request Defaults:
Permite definir parmetros de configuracin por defecto para peticiones FTP. Cualquier sampler ftp puede asumir dichos parmetros como propios.

36

Elementos de conguracin
! HTTP Request Defaults:
Permite definir parmetros de configuracin por defecto para peticiones HTTP. Cualquier sampler HTTP puede asumir dichos parmetros como propios.

37

Elementos de conguracin
! HTTP Cookie Manager:
La incorporacin de este elemento permite a JMeter gestionar las cookies asociadas a una aplicacin web.

38

Elementos de conguracin
! HTTP Authorization Manager:
Este elemento permite configurar uno o ms procesos de login asociados a aplicaciones.

39

El chero 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 estrs (por ejemplo, la recepcin de errores 404 de HTTP) utilizaremos el fichero jmeter.log localizado en la carpeta <jmeter>/bin.
40

JMeter

Planes de pruebas para la Web

ndice del captulo


! ! ! ! ! ! Valores por defecto en una peticin. Gestin de sesiones. URL-Rewriting. Simular el envo de formularios. Pginas protegidas. Grabando y reproduciendo planes de prueba.

Valores por defecto en una peticin


! El primer paso ser incluir un thread group al plan de pruebas. ! Permite definir el nmero de usuarios que se quieren simular, cuntas peticiones se deben enviar, etc.

Valores por defecto en una peticin


! Si tenemos 100 muestreadores HTTP en un mismo plan de pruebas que envan peticiones contra el mismo servidor, no es necesario escribir 100 veces los datos comunes como el nombre del servidor, el puerto o los timeouts. ! Tambin podramos enviar parmetros con valores por defecto. ! Podemos definir un Elemento de configuracin de Valores por defecto de peticin HTTP

Valores por defecto en una peticin


! Se definen parmetros por defecto comunes a las distintas peticiones HTTP:

Gestin de sesiones
! HTTP es un protocolo sin estado. ! El estado del cliente se guarda en el servidor. ! El cliente debe informar al servidor de quin es a travs de un identificador de sesin. ! Si el cliente no enva el identificador de sesin, el servidor no lo asocia con el estado que ya tena guardado.

Gestin de sesiones
! Para ello se debe incluir un HTTP Cookie manager.

Manejar la sesin del usuario con URL-Rewriting


! Si la aplicacin web a testear utiliza el mtodo conocido como URL Rewriting o paso del identificador de la sesin a travs de la URL, entonces la estrategia de usar un gestor de cookies no es vlida. ! JMeter necesita parsear la respuesta HTML recibida para extraer el ID de sesin 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.

Manejar la sesin del usuario con URL-Rewriting

Simular el envo de formularios


! Tenemos que enviar tantas peticiones como el usuario real enviara
Peticin que recupera el formulario Peticin que enva los datos del formulario al servidor

! Tenemos que usar el mismo mtodo de envo de peticiones que este usando el formulario de la pgina Web que queremos emular.
Inspeccionar el valor de la propiedad method del elemento form del HTML del formulario.
" " "

GET --> Peticin GET POST --> Peticin POST vaca --> Peticin GET (por defecto)
10

Simular envo 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 enva 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 tambin los valores de los campos hidden.

11

Gestor de Autorizaciones HTTP

12

Extraccin de parmetros
! El postprocesador Extractor de expresiones regulares nos permite recuperar informacin de las respuesta generadas que nos va a ser de gran utilidad de forma totalmente dinmica:

13

Parmetros de las peticiones


! Se puede definir un sampler para que enve parmetros a una determinada url. ! Si queremos que para cada hilo estos parmetros sean diferentes podemos utilizar el preprocesador Parmetros de usuario.

14

Grabando y reproduciendo planes


! ! ! ! Introduccin. HTTP Proxy Server. Configuracin del navegador. Grabacin de la navegacin.

Introduccin
! Se describe a continuacin cmo grabar una navegacin real sobre una aplicacin web. ! Posteriormente esta grabacin podr reproducirse con distinto nmero de usuarios concurrentes y configuracin con el fin de obtener informacin asociada al comportamiento de aplicacin en el escenario definido. ! El HTTP Proxy grabar todas las peticiones http que se realicen posteriormente con nuestro navegador.

16

HTTP Proxy
! Este elemento debe incluirse en el elemento Workbench:

El proxy se incorpora mediante el mtodo Add ... en la opcin Non-test Elements.

17

HTTP Proxy

18

HTTP Proxy
! Parmetros del proxy:
port: indica el puerto en el que escuchar las peticiones a grabar. Target controller: indica que grupo de hilos (puede haber varios) sern el que ejecuten posteriormente la navegacin. Grouping: indica como se agruparn una peticin y las subpeticiones relacionadas, por ejemplo: Una pgina HTML, hace que se soliciten imgenes, JS, CSS, etc. HTTP Sampler Type, indica el API de cliente que usaremos para enviar las peticiones.

19

HTTP Proxy
! Parmetros del proxy (cont):
URL Patterns to include: patrn url que se debe incluir. URL Patterns to exclude: patrn url que se debe excluir.

20

Conguracin del navegador


! Se debe configurar el browser que se va a utilizar para realizar la grabacin de la navegacin, para que lo haga a travs del proxy.

21

Grabacin de la navegacin
! Para comenzar la grabacin se debe arrancar el proxy:

Se debe hacer click en el botn Start

22

Grabacin de la navegacin
! Una vez arrancado el proxy, cualquier operacin que se lleve a cabo mediante el navegador ser grabada por JMeter:

23

Grabacin de la navegacin
! Mediante la exclusin de determinados recursos se puede filtrar la grabacin, guardando slo las peticiones que sean de inters. ! Por ejemplo: imgenes y JavaScript.

No se recuperan ni imgenes ni js

24

JMeter

Test de carga distribuidos

ndice del captulo


! ! ! ! ! ! ! Introduccin. Test de carga desde varios equipos. Terminologa. Requisitos de funcionamiento. Configuracin de las mquinas esclavas. Configuracin de la mquina mster. Ejecutar un test en modo distribuido.

Introduccin
! Con una sola mquina es habitual que no sea posible simular todos los usuarios que vamos a tener en el entorno de mxima carga. ! Probablemente no podramos llevar al sistema a los lmites sometindolo a un gran estrs, puesto que la mquina que ejecuta los test se sobrecargara antes que el servidor.

Test de carga desde varios equipos


! Solucin ms sencilla: varias mquinas independientes con JMeter.
JMeter
192.168.0.1
Peticiones HTTP Operador

Servidor Web
(objetivo del test)
Peticiones HTTP

JMeter
192.168.0.2
Operador

Peticiones HTTP

JMeter
192.168.0.3
Operador

Test de carga desde varios equipos


! Solucin potente: varias mquinas coordinadas con JMeter.
JMeter
192.168.0.1
Peticiones HTTP

Servidor Web
(objetivo del test)
Peticiones HTTP

Peticiones HTTP

E S C L A V O S

JMeter
192.168.0.2

<<Mster>>

JMeter
192.168.0.4
Operador

JMeter
192.168.0.3

Terminologa
! Mster La mquina que est ejecutando JMeter en modo grfico y que controla la ejecucin del test ! Esclavo (Slave) las mquinas que estn ejecutando jmeter en modo servidor (jmeterserver). Reciben rdenes del mster y envan peticiones HTTP al servidor objetivo. ! Objetivo (target) El servidor web sobre el que queremos ejecutar el test de estrs.

Requisitos de funcionamiento
! Para que los test de carga distribuidos funcionen, debemos comprobar los siguientes prerequisitos:
1. Los cortafuegos estn desactivados en las mquinas esclavas. 2. Todos los clientes (esclavos) y el mster estn 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 versin de JMeter (en caso contrario pueden aparecer comportamientos errticos).

Conguracin de las mquinas esclavas


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

Conguracin de la mquina mster


! Editar el fichero <jmeter>/bin/ jmeter.properties ! Buscar la lnea remote_hosts=127.0.0.1 Aadir cada una de las IPs de las mquinas esclavas que se quiera controlar. Ejemplo: remote_hosts=192.168.0.10,192.168.0.11,1 92.168.0.12,192.168.0.13,192.168.0.14 ! Ejecutar JMeter en modo grfico (como lo hemos venido haciendo normalmente).

Ejecutar un test en modo distribuido


! Abre un plan de test en la mquina mster. ! Lnzalo en las mquinas esclavas desde el men Ejecutar. Podemos lanzarlo en una nica mquina o en todas a la vez.

10

Comentarios
! RMI no puede comunicarse a travs de subredes sin un servidor proxy, por lo tanto JMeter tampoco. ! Si aadimos un listener a nuestro plan de pruebas para ver los resultados desde el mster, los clientes envan todos los datos de los resultados al mster y es fcil saturar la red y la mquina mster procesndolos para mostrarlos grficamente. Es una buena idea utilizar el informe Escritor de datos simple para guardar los resultados y ver el archivo ms tarde desde un listener grfico.
11

Comentarios
! Salvo que el servidor sea un sistema multiprocesador potente, 1-2 mquinas 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 estrs sobre servicios Web y aplicaciones centradas en XML el nmero 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 rpidamente nos quedaremos sin ciclos.
12

JMeter

Conceptos avanzados

ndice del captulo


! Cargar datos desde un fichero CSV. ! Usar las variables desde otros elementos de JMeter. ! Modificar las cabeceras HTTP. ! JUnit y JMeter. ! JMeter y Maven.

Cargar datos desde un chero CSV


! Podemos cargar dinmicamente datos que estn en un fichero CSV y guardarlos en variables de JMeter. ! Los ficheros CSV tendrn una lnea por cada entrada (cada fila de datos) y las columnas estarn separadas por comas. ! Para cargar los datos en JMeter usaremos en elemento de configuracin Configuracin del CSV Data Set

Cargar datos desde un chero CSV (II)


! Por defecto el fichero se abre una nica vez y cada hilo de ejecucin utiliza una lnea del fichero para obtener los valores de las variables. ! El orden en el que las lneas son asignadas a hilos de ejecucin depende de su orden de ejecucin y puede variar entre distintas iteraciones. Cada lnea es leida en cada iteracin del test. El nombre del fichero y el modo son resueltos en la primera iteracin.

Cargar datos desde un chero 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 dinmico, por ejemplo, test${__threadNum}.csv y cambiaremos el modo de "Sharing mode" a "Current thread".

Cargar datos desde un chero CSV

Fichero CVS
6

Cargar datos desde un chero CSV

Nombre de variable JMeter : cargara a, b, c, d en cada hilo para la variable $ACTION


7

Usar las variables desde otros elementos de JMeter

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)
8

Opciones avanzadas

Tenemos 4 tipos de modos de comparticin del fichero....


9

Opciones de comparticin del chero


! 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

Opciones avanzadas

Borramos el valor de las variables cuando se llegue al final del fichero?

11

Opciones avanzadas

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

12

Modicar 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 informacin que JMeter enva en las peticiones HTTP. Por ejemplo, podemos modificar las cabeceras "User-Agent", "Pragma", "Referer", etc. ! Generalmente se aade al nivel del Grupo de Hilos, salvo que queramos especificar distintas cabeceras para distintos muestreadores HTTP.

13

Ejemplo de HTTP Header Manager

14

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 mtodos de la clase.

15

JMeter y JUnit
! Se deben empaquetar las clases del proyecto y las pruebas unitarias almacenndolas en el directorio jmeter/lib/unit:

16

Introduccin
! Build tool:
Herramienta para construir artefactos desplegables a partir de cdigo fuente, es decir, para realizar tareas de preprocesado, compilacin, empaquetado, test y distribucin.

! Herramienta para la gestin de un proyecto:


Creacin de informes. Generacin de sitios web. Facilita la comunicacin entre los distintos miembros del proyecto.

Introduccin
! Se ha convertido en una herramienta indispensable para proyectos de tamao grande que necesitan encontrar una forma sencilla de manejar distintos mdulos relacionados, cientos de libreras que a su vez dependen de componentes de terceras personas.

Introduccin
! Definicin:
Es una herramienta para la gestin de proyectos que abarca:
" " " " "

Modelo de objetos de proyectos (POM). Conjunto de estndares. Ciclo de vida de proyecto. Sistema de gestin de dependencias. Lgica para ejecutar determinadas tareas en determinadas fases del proyecto.

Integracin con JMeter


! La integracin 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.

El plugin JMeterMavenPlugin
! Este plugin permite automatizar las pruebas de carga diseadas mediante JMeter mediante maven.

El plugin Chronos
! Chronos Maven Plugin.