You are on page 1of 25

LABORATORIO 6.

Manual Apache Jmeter

GUA DE LABORATORIO N 6
Actividad de Proyecto No. 4: ESTABLECER LOS NIVELES DE
SERVICIO DE ACUERDO CON ESTANDARES Y REQUERIMIENTOS
DE LA ORGANIZACIN

FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter


Estructura de contenidos.
Introduccin..................................................................................3
1. Primeros pasos - Instalacin.........................................................4
2. Plan de Pruebas..........................................................................5
2.1. Aadir y eliminar elementos.................................................6
2.2. Guardar el Plan de Pruebas..................................................6
2.3. Ejecucin de un plan de pruebas...........................................7
2.4. Detener una prueba............................................................7
3. Elementos de un plan de pruebas.................................................8
3.1. Thread Group (Grupo de Hilos).............................................8
3.2. Controllers (Controladores)..................................................9
3.2.1. Samplers (Muestreador)............................................. 10
3.2.2. Logic Controllers (Controladores lgicos)...................... 11
3.2.3. Test Fragments (Fragmentos de prueba)....................... 11
3.3. Listeners (Receptores)....................................................... 12
3.4. Timers (Temporizadores)................................................... 13
3.5. Assertions (Afirmaciones).................................................. 13
3.6. Configuration Elements (Elementos de configuracin)............ 14
3.7. Pre-Processor Elements (Pre-procesadores de elementos)...... 15
3.8. Post-Processor Elements (Post- procesadores de elementos)... 16
4. Construccin de un plan de pruebas para Base de Datos................ 16
4.1. Usuarios.......................................................................... 17
4.2. Peticiones JDBC................................................................ 18
4.3. Ver y guardar los resultados............................................... 22
Glosario......................................................................................24
Bibliografa..................................................................................25

2
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

Introduccin.
El Apache JMeter es un software de cdigo abierto, una aplicacin
diseada totalmente en JAVA para medir el rendimiento y comportamiento
de servidores mediante pruebas. Originalmente se dise para probar
aplicaciones Web, pero se ha ampliado desde entonces a otras funciones.
Se utilizar para probar el rendimiento tanto de los recursos estticos y
dinmicos (archivos, Servlets, scripts de Perl, objetos Java, bases de
datos - consultas, servidores FTP y mucho ms). Se puede utilizar para
simular una carga pesada en un servidor, la red o un objeto para poner a
prueba su resistencia o para analizar el rendimiento global en diferentes
tipos de carga. Puede usarlo para hacer un anlisis grfico de rendimiento
o para probar el comportamiento de diferentes elementos con un gran
volumen de carga y concurrencia.
Algunos de los tipos de Servidor que se pueden probar son:
Web HTTP y HTTPS.
SOAP.
Base de datos a travs de JDBC.
LDAP.

3
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

1. Primeros pasos - Instalacin.


El proceso inicia con la descarga e instalacin, el vnculo de descarga
es http://jmeter.apache.org/download_jmeter.cgi. Resultante de esta
tarea obtenemos el archivo comprimido Apache-Jmeter-2.6.zip que pesa
aproximadamente 22.6 Mb y se necesita al menos 80 Mb de espacio libre
en disco para su descompresin.

La publicacin contiene todos los archivos necesarios para generar y


ejecutar la mayora de los tipos de pruebas, por ejemplo, Web (HTTP /
HTTPS), FTP, JDBC, LDAP, Java y JUnit.
Si usted desea llevar a cabo pruebas de JDBC, necesita el correspondiente
controlador JDBC de su proveedor. JMeter no viene con los drivers JDBC.
Usted tendr que agregar el controlador de la base de datos del proveedor
de JDBC a la ruta de clases si quiere hacer pruebas de JDBC. Asegrese
de que el archivo sea .jar y gurdelo en la siguiente ruta:
apache-jmeter-2.6/lib/JDBCbasededatos.jar
Para ejecutar el programa debe descomprimir los archivos descargados e
ir a la siguiente ruta:
apache-jmeter-2.6/bin/jmeter.bat

4
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

Se debe tener instalada la mquina virtual de java 1.5 o superior para


su funcionamiento, Jmeter funciona en cualquier sistema operativo que
tenga implementacin con Java y que su mquina virtual lo soporte.
Para instalar una versin de lanzamiento, simplemente descomprimir el
archivo zip / tar en el directorio donde quiere que sea guardado JMeter.
Tener JRE / JDK correctamente instalado y el conjunto de variables de
entorno JAVA_HOME.

2. Plan de Pruebas.
Un Plan de Prueba o Test Plan, es el eje de ejecucin de Jmetter, en
l se determinan los aspectos relacionados con una prueba de carga,
como pueden ser los parmetros empleados por requisicin, el tipo de
reportes a generarse, la posible reutilizacin de requisiciones compuestas
por usuarios, entre otros aspectos.
Un plan de pruebas completo trabaja en forma de rbol y consta de los
siguientes tems:
Threads(users) (Hilos(Usuarios))> Thread Groups (Grupo de Hilos)
Logic controllers (Controladores lgicos)
Listeners (Receptores)

5
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

Timers (Temporizadores)
Assertions (Afirmaciones - Aserciones)
Configuration elements (Elementos de configuracin)
2.1. Aadir y eliminar elementos.
Parta aadir los elementos a un plan de prueba se puede hacer clic derecho
sobre un elemento en el rbol, y escoger el elemento de la lista.
Para eliminar un elemento, asegrese de que el elemento est seleccionado,

haga clic en el elemento y elija la opcin Eliminar opcin.


2.2. Guardar el Plan de Pruebas.
Guarde el plan de pruebas en un archivo antes de ejecutarlo. Para guardar
el plan de pruebas, seleccione Guardar o Guardar como, Plan de Pruebas

6
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

2.3. Ejecucin de un plan de pruebas.


Para ejecutar su plan de pruebas, seleccione en el men Lanzar, Arrancar
(Ejecutar), con las teclas rpidas (Control + R), o con el triangulo verde
de la barra de botones.

2.4. Detener una prueba.


Hay dos formas disponibles para detener la prueba:
Parar tecla rpida (Control + .) Evita que los hilos sean ejecutados
inmediatamente.

7
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

Interrumpir techa (Control + ,) Permite que se termine la ejecucin en


curso.

3. Elementos de un plan de pruebas.


A continuacin se presentan los elementos de un plan de pruebas:
3.1. Thread Group (Grupo de Hilos).

En la opcin Threads(users) (Hilos(Usuarios)) se selecciona Thread Groups


(Grupo de Hilos), que corresponde al conjunto de usuarios que se desea
simular para la prueba. Como su nombre lo indica, el elemento Grupo

8
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

de Hilos controla el nmero de hilos que JMeter utilizar para ejecutar la


prueba. Los controles para un grupo de hilos le permiten:
Establecer el nmero de hilos
Establecer el perodo de tiempo en segundos
Establecer el nmero de veces que debe ejecutar la prueba
Por ejemplo, si se utilizan 10 hilos, y el perodo es de 100 segundos, cada
hilo se iniciar 10 (100/10) segundos despus de que el hilo anterior fue
comenzado. Si hay 30 hilos y un perodo de 120 segundos, cada hilo se
ejecutara cada 4 segundos.
El perodo debe ser lo suficientemente largo para evitar un nmero
excesivo de trabajo al comienzo de la prueba, y suficientemente corto
para que los ltimos hilos empiecen a correr antes de que finalicen los
primeros (a menos que se quiera que eso suceda).
Se puede utilizar un repetidor para que se ejecuten los hilos las veces que
se desee, adicionalmente se encuentra un planificador para determinar
cundo inicia y termina el grupo de hilos.
3.2. Controllers (Controladores).
JMeter tiene dos tipos de controladores: Samplers (Muestreador) y Logical
Controllers (Controladores Lgicos).
Samplers: se utiliza para enviar peticiones a un servidor. Por ejemplo, se
debe aadir un muestreador de solicitud HTTP, si se desea que JMeter enve
una peticin HTTP. Tambin se puede personalizar mediante la adicin de
una solicitud de uno o varios elementos de configuracin en un sampler.
Logical Controllers: que permiten personalizar la lgica que JMeter utilizar
para decidir cundo enviar las solicitudes.

9
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

3.2.1. Samplers (Muestreador).


Los Muestreadores se utilizan para enviar peticiones a un servidor y
esperar una respuesta. Se procesan en el orden en que aparecen en el
rbol. Los controladores pueden ser utilizados para modificar el nmero
de repeticiones de una muestra.
Los muestreadores JMeter incluyen:
Solicitud de FTP
Solicitud HTTP
Solicitud de JDBC
Java Object Request
Solicitud de LDAP
Solicitud SOAP / XML-RPC
Solicitud WebService (SOAP)
Dependiendo del tipo de Servidor al cual se desea acceder, se requiere

10
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

indicar informacin asociada al servidor: nombre, puertos, rutas,


protocolos, etc. As como el manejo que se debe dar a las respuestas
del servidor, que incluyen la generacin de grficas, tablas, etc. con los
resultados obtenidos de la simulacin.
3.2.2. Logic Controllers (Controladores lgicos).
Los controladores lgicos permiten personalizar la lgica que JMeter utiliza
para decidir cundo enviar las solicitudes. Se Puede cambiar el orden
de las solicitudes procedentes de los elementos, establecer condiciones,
intervalos, repeticiones, etc.

3.2.3. Test Fragments (Fragmentos de prueba).


Los fragmentos de prueba son un tipo especial de controlador que existe
en el rbol de plan de pruebas en el mismo nivel que el elemento de grupo
de hilos. Se distingue de un grupo de hilos en que no se ejecuta a menos
que se adicione el elemento Include Controller.
Su objetivo principal es la reutilizacin de cdigo dentro de los planes de
prueba.

11
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

3.3. Listeners (Receptores).


Un Receptor facilita el acceso a la informacin de JMeter. Escucha los
tiempos y provee una gran cantidad de informacin de forma grafica.
Muestra los detalles de las solicitudes de todas las respuestas de los
servidores, y puede mostrar las representaciones en HTML y XML, as
como dirigir los datos a un archivo para su uso posterior.

12
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

Cada receptor en JMeter ofrece un campo para indicar el archivo que


almacenar los datos. Tambin hay un botn de configuracin que se
puede utilizar para elegir los campos a guardar, y el formato a usar: CSV
o XML. Los receptores se pueden aadir en cualquier lugar de la prueba,
incluso directamente al inicio.
3.4. Timers (Temporizadores).

Por defecto, un hilo JMeter enva peticiones sin pausa entre cada solicitud,
sin embargo es recomendable especificar un retraso mediante la adicin
de uno de los temporizadores a disposicin del grupo de hilos. Si no se
agrega un retraso, JMeter podra saturar el servidor, haciendo demasiadas
solicitudes en un lapso muy corto de tiempo.
Si decide agregar ms de un temporizador para un grupo de hilos, JMeter
toma la suma de los contadores de tiempo y se detiene por esa cantidad
de tiempo antes de la ejecucin de las muestras a las que se aplican
los temporizadores. Los temporizadores se pueden aadir como hijos de
muestras o controladores con el fin de restringir las muestras a los que
se aplican.
3.5. Assertions (Afirmaciones).
Las afirmaciones permiten recibir hechos acerca de las respuestas recibidas
desde el servidor que se est probando. Usando una afirmacin, puede

13
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

esencialmente probar que la aplicacin devuelve los resultados que usted


espera.

Se puede agregar una afirmacin a cualquier muestreador. Por ejemplo,


puede agregar una afirmacin a una peticin HTTP que comprueba el texto,
</ HTML>. JMeter comprobar entonces que el texto est presente en
la respuesta HTTP. Si JMeter no puede encontrar el texto, entonces se
marcar como una solicitud con error.
3.6. Configuration Elements (Elementos de configuracin).
Un elemento de configuracin trabaja en estrecha colaboracin con un
Muestreador. Se puede acceder slo dentro de la rama de un rbol donde
se coloca el elemento. Adems, un elemento de configuracin dentro de
una rama de un rbol tiene mayor prioridad que el mismo elemento en un
padre rama.

14
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

3.7. Pre-Processor Elements (Pre-procesadores de elementos).


El pre-procesador de elementos es una accin previa a una solicitud
Sampler que se est realizando. Si esta unido a un elemento de muestreo,
se ejecutar justo antes de este elemento. Se utiliza con mayor frecuencia
para modificar la configuracin de una solicitud de muestreo justo antes
de que se ejecute, o para actualizar las variables que no se extraen.

15
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

3.8. Post-Processor Elements (Post- procesadores de elementos).


El post-procesador de elementos ejecuta alguna accin despus de una
solicitud Sampler. Cuando est conectado a un elemento de muestreo,
se ejecutar justo despus de que se ejecuta este elemento. Aun cuando
es usado para procesar los datos, a menudo se utiliza para extraer los
valores.

4. Construccin de un plan de pruebas para Base de


Datos.
En esta seccin, se presenta un ejemplo de cmo crear un plan de pruebas
en Jmeter para validar el rendimiento y comportamiento del manejo de
concurrencia de un servidor de base de datos.
Para esto se realizaran las siguientes actividades en trminos generales:
Creacin de usuarios: se crearn 8 usuarios que envan cinco peticiones
SQL al servidor de base de datos.
Configuracin: Las pruebas se ejecutarn en tres ocasiones. Por lo
tanto, el nmero total de solicitudes es (8 usuarios X 3 veces) = 24
peticiones.
Elementos a utilizar: El plan de pruebas usar las opciones: grupo de
hilos, la solicitud de JDBC y los resultados se presentarn en modo
grfico.

16
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

Es necesario contar con los controladores JDBC de acuerdo con el servidor


de base de datos a utilizar. Para poder utilizar cualquier controlador de BD
se deben descargar y guardar el archivo con extensin .jar en el directorio
Lib de la carpeta principal de Jmeter. Para la ejecucin del laboratorio
se suministraran los archivos correspondientes a Oracle, SQLServer y
PostgreSQL en el espacio destinado para cada laboratorio.
4.1. Usuarios.
El primer paso para construir un plan de prueba de JMeter es aadir el
elemento grupo de hilos. El Grupo indica a JMeter el nmero de usuarios
que se desea simular, con qu frecuencia los usuarios deben enviar las
solicitudes, y el nmero de solicitudes que deben enviar.

Despus, para modificar las propiedades por defecto se selecciona en el


rbol del plan de pruebas el elemento Grupo de Hilos.

17
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

Debe proporcionarse un nombre descriptivo para el grupo de hilos. En el


ejemplo se utilizar el nombre Usuarios de JDBC, y se establecer un total
de 8 usuarios
El campo perodo de subida indica a JMeter cunto tiempo se demora
para dar comienzo a cada usuario. Por ejemplo, si se introduce una fase
de arranque de 5 segundos, JMeter debe iniciar todos los usuarios al
finalizar los 5 segundos. Por lo tanto, si se tiene 5 usuarios y un periodo
de 5 segundos el retraso entre los usuarios de partida sera de 1 segundo
(5 usuarios y 5 segundos = 1 usuario por segundo). Si establece el valor
a 0, entonces JMeter comenzar inmediatamente con todos los usuarios.
Por ltimo, al introducir un valor de 3 en el campo Contador del bucle, se
estar indicando a JMeter cuntas veces debe repetir la prueba. Para que
JMeter repita esta prueba sin parar, se activa la casilla sin fin.
JMeter guarda automticamente los cambios hechos en el plan de
pruebas, quiere decir que si se cambia el nombre de los elementos o sus
propiedades ser guardado inmediatamente.

4.2. Peticiones JDBC.


A continuacin se deben definir las tareas que se van a realizar. En esta
seccin, se detallar la peticin JDBC a ejecutar.
Crear un elemento de configuracin para la conexin JDBC
La configuracin que se presenta a continuacin indica que se va a utilizar
una base de datos local llamada prueba con un usuario denominado
administrador y su respectiva contrasea.

18
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

Plan para base de datos SQL Server.


Nombre de la variable debe ser nico. Es utilizado por la Muestra JDBC
para identificar la configuracin que se utilizar.
URL Base de datos: jdbc:sqlserver://localhost:1433;databaseName=
prueba
JDBC clase Driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
Nombre de Usuario: Administrador
Contrasea: ******
Los otros campos en la pantalla se puede dejar con los valores
predeterminados.

19
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

Plan para base de datos PostgreSQL.


Nombre de la variable debe ser nico. Es utilizado por la Muestra JDBC
para identificar la configuracin que se utilizar.
URL Base de datos: jdbc:postgresql://localhost/prueba
JDBC clase Driver: com.postgresql.jdbc.driver
Nombre de Usuario: Administrador
Contrasea: ******

Los otros campos en la pantalla se puede dejar con los valores
predeterminados.

Plan para base de datos Oracle.


Nombre de la variable debe ser nico. Es utilizado por la Muestra JDBC
para identificar la configuracin que se utilizar.
URL Base de datos: jdbc:oracle:thin:@//localhost/prueba
JDBC clase Driver: oracle.jdbc.OracleDriver
Nombre de Usuario: administrador
Contrasea: *****

20
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter


Los otros campos en la pantalla se puede dejar con los valores
predeterminados.

La siguiente tarea es la seleccin del elemento de JDBC: Para esto se debe


hacer clic con el botn derecho del ratn para obtener el men Agregar y,
a continuacin, seleccionar Agregar > Muestreador > Solicitud de JDBC.

Para este ejemplo en el plan de pruebas, se van a hacer 2 peticiones


JDBC. La primera peticin es que consulte los primeros 1000 registro de
la tabla cliente de la base de datos prueba. La segunda peticin consulta
todos los registro de la tabla pero solo el nombre de los clientes. JMeter

21
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

ejecuta los elementos como estn ordenados en el rbol ubicado en la


parte izquierda de la imagen.
Para empezar, se modifican algunas propiedades como el nombre de la
peticin y el de la variable, as mismo se debe ingresar la consulta SQL a
ejecutar.

Luego se configura la segunda peticin, con un nombre de peticin


diferente, pero el nombre de la variable igual y la nueva consulta SQL a
ejecutar.

4.3. Ver y guardar los resultados.


El ltimo elemento denominado Receptor o Listener, es necesario para
el plan de pruebas. Este elemento se encarga de almacenar todos los
resultados de las peticiones JDBC en un archivo y la presentacin de
un modelo visual.

22
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

Para este ejemplo se selecciona el elemento de JDBC y luego aadir


Grfico de Resultados.

23
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

Las grficas proporcionan un recurso para analizar y medir el desempeo


de los servicios para los cuales se construyeron las pruebas, detectando
posibles errores y problemas antes de que los servicios entren en
produccin.

Glosario.
SOAP.
SOAP (siglas de Simple Object Access Protocol) es un protocolo estndar
que define cmo dos objetos en diferentes procesos pueden comunicarse
por medio de intercambio de datos XML. SOAP fue creado por Microsoft,
IBM y otros y est actualmente bajo el auspicio de la W3C. Es uno de los
protocolos utilizados en los servicios Web.
JDBC.
Java Database Connectivity, ms conocida por sus siglas JDBC, es una API
que permite la ejecucin de operaciones sobre bases de datos desde el
lenguaje de programacin Java, independientemente del sistema operativo
donde se ejecute o de la base de datos a la cual se accede, utilizando el
dialecto SQL del modelo de base de datos que se utilice.
LDAP.
LDAP son las siglas de Lightweight Directory Access Protocol (en espaol
Protocolo Ligero de Acceso a Directorios) que hacen referencia a un
protocolo a nivel de aplicacin el cual permite el acceso a un servicio de
directorio ordenado y distribuido para buscar diversa informacin en un
entorno de red. LDAP tambin es considerado una base de datos (aunque
su sistema de almacenamiento puede ser diferente) a la que pueden
realizarse consultas.
Junit.
JUnit es un conjunto de bibliotecas creadas por Erich Gamma y Kent
Beck que son utilizadas en programacin para hacer pruebas unitarias de
aplicaciones Java.

24
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Manual Apache Jmeter

Bibliografa.
Elahi, M. (4 de Abril de 2011). Testing Thoughts. Recuperado el 15
de abril de 2012, de http://scornik.blogspot.com/2011/05/sql-queryperformance-test-with-jmeter.html.
La lista oficial de Colaboradores aqu. (1 de Junio de 1999). Fundacin
de Software Apache. Recuperado el 15 de abril de 2012, de http://
jmeter.apache.org.
Wales, J.; Sanger, L. (15 de Enero de 2001). Wikipedia la Enciclopedia
Libre. Recuperado el 15 de abril de 2012, de http://es.wikipedia.org.

25
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

You might also like