You are on page 1of 25

MANUAL APACHE JMETER

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje


Manual Apache Jmeter

Estructura de contenidos.

Introducción..................................................................................3
1. Primeros pasos - Instalación.........................................................4
2. Plan de Pruebas..........................................................................5
2.1. Añadir y eliminar elementos.................................................6
2.2. Guardar el Plan de Pruebas..................................................6
2.3. Ejecución 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 lógicos)...................... 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 configuración)............ 14
3.7. Pre-Processor Elements (Pre-procesadores de elementos)...... 15
3.8. Post-Processor Elements (Post- procesadores de elementos)... 16
4. Construcción 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
Bibliografía..................................................................................25

2
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

Introducción.

El Apache JMeter es un software de código abierto, una aplicación


diseñada 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 estáticos y


dinámicos (archivos, Servlets, scripts de Perl, objetos Java, bases de
datos - consultas, servidores FTP y mucho más). 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 análisis gráfico 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 través de JDBC.

• LDAP.

3
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

1. Primeros pasos - Instalación.

El proceso inicia con la descarga e instalación, el vínculo 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 descompresión.

La publicación contiene todos los archivos necesarios para generar y


ejecutar la mayoría 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. Asegúrese
de que el archivo sea .jar y guárdelo 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 - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

Se debe tener instalada la máquina virtual de java 1.5 o superior para


su funcionamiento, Jmeter funciona en cualquier sistema operativo que
tenga implementación con Java y que su máquina virtual lo soporte.

Para instalar una versión 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 ejecución de Jmetter, en


él se determinan los aspectos relacionados con una prueba de carga,
como pueden ser los parámetros empleados por requisición, el tipo de
reportes a generarse, la posible reutilización 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 lógicos)

• Listeners (Receptores)

5
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

• Timers (Temporizadores)

• Assertions (Afirmaciones - Aserciones)

• Configuration elements (Elementos de configuración)

2.1. Añadir y eliminar elementos.

Parta añadir 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, asegúrese de que el elemento está seleccionado,

haga clic en el elemento y elija la opción “Eliminar” opción.

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 - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

2.3. Ejecución de un plan de pruebas.

Para ejecutar su plan de pruebas, seleccione en el menú “Lanzar”, “Arrancar”


(Ejecutar), con las teclas rápidas (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 rápida (Control + .) Evita que los hilos sean ejecutados
inmediatamente.

7
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

• Interrumpir techa (Control + ,) Permite que se termine la ejecución en


curso.

3. Elementos de un plan de pruebas.

A continuación se presentan los elementos de un plan de pruebas:

3.1. Thread Group (Grupo de Hilos).

En la opción 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 - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

de Hilos controla el número de hilos que JMeter utilizará para ejecutar la


prueba. Los controles para un grupo de hilos le permiten:

• Establecer el número de hilos

• Establecer el período de tiempo – en segundos

• Establecer el número de veces que debe ejecutar la prueba

Por ejemplo, si se utilizan 10 hilos, y el período es de 100 segundos, cada


hilo se iniciará 10 (100/10) segundos después de que el hilo anterior fue
comenzado. Si hay 30 hilos y un período de 120 segundos, cada hilo se
ejecutara cada 4 segundos.

El período debe ser lo suficientemente largo para evitar un número


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
cuándo inicia y termina el grupo de hilos.

3.2. Controllers (Controladores).

JMeter tiene dos tipos de controladores: Samplers (Muestreador) y Logical


Controllers (Controladores Lógicos).

Samplers: se utiliza para enviar peticiones a un servidor. Por ejemplo, se


debe añadir un muestreador de solicitud HTTP, si se desea que JMeter envíe
una petición HTTP. También se puede personalizar mediante la adición de
una solicitud de uno o varios elementos de configuración en un sampler.

Logical Controllers: que permiten personalizar la lógica que JMeter utilizará


para decidir cuándo enviar las solicitudes.

9
FAVA - Formación 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 número
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 - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

indicar información asociada al servidor: nombre, puertos, rutas,


protocolos, etc. Así como el manejo que se debe dar a las respuestas
del servidor, que incluyen la generación de gráficas, tablas, etc. con los
resultados obtenidos de la simulación.

3.2.2. Logic Controllers (Controladores lógicos).

Los controladores lógicos permiten personalizar la lógica que JMeter utiliza


para decidir cuándo 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 reutilización de código dentro de los planes de


prueba.

11
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

3.3. Listeners (Receptores).

Un Receptor facilita el acceso a la información de JMeter. Escucha los


tiempos y provee una gran cantidad de información 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 - Formación 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. También hay un botón de configuración que se
puede utilizar para elegir los campos a guardar, y el formato a usar: CSV
o XML. Los receptores se pueden añadir en cualquier lugar de la prueba,
incluso directamente al inicio.

3.4. Timers (Temporizadores).

Por defecto, un hilo JMeter envía peticiones sin pausa entre cada solicitud,
sin embargo es recomendable especificar un retraso mediante la adición
de uno de los temporizadores a disposición del grupo de hilos. Si no se
agrega un retraso, JMeter podría saturar el servidor, haciendo demasiadas
solicitudes en un lapso muy corto de tiempo.

Si decide agregar más 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 ejecución de las muestras a las que se aplican
los temporizadores. Los temporizadores se pueden añadir 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 afirmación, puede

13
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

esencialmente probar que la aplicación devuelve los resultados que usted


espera.

Se puede agregar una afirmación a cualquier muestreador. Por ejemplo,


puede agregar una afirmación a una petición 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 configuración).

Un elemento de configuración trabaja en estrecha colaboración con un


Muestreador. Se puede acceder sólo dentro de la rama de un árbol donde
se coloca el elemento. Además, un elemento de configuración dentro de
una rama de un árbol tiene mayor prioridad que el mismo elemento en un
“padre” rama.

14
FAVA - Formación 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 acción 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 configuración de una solicitud de muestreo justo antes
de que se ejecute, o para actualizar las variables que no se extraen.

15
FAVA - Formación 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 acción después de una


solicitud Sampler. Cuando está conectado a un elemento de muestreo,
se ejecutará justo después de que se ejecuta este elemento. Aun cuando
es usado para procesar los datos, a menudo se utiliza para extraer los
valores.

4. Construcción de un plan de pruebas para Base de


Datos.

En esta sección, se presenta un ejemplo de cómo 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 términos generales:

• Creación de usuarios: se crearán 8 usuarios que envían cinco peticiones


SQL al servidor de base de datos.

• Configuración: Las pruebas se ejecutarán en tres ocasiones. Por lo


tanto, el número 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 presentarán en modo
gráfico.

16
FAVA - Formación 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 extensión .jar en el directorio
Lib de la carpeta principal de Jmeter. Para la ejecución 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 añadir el


elemento grupo de hilos. El Grupo indica a JMeter el número de usuarios
que se desea simular, con qué frecuencia los usuarios deben enviar las
solicitudes, y el número de solicitudes que deben enviar.

Después, para modificar las propiedades por defecto se selecciona en el


árbol del plan de pruebas el elemento Grupo de Hilos.

17
FAVA - Formación 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 período de subida indica a JMeter cuánto 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 sería 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 cuántas veces debe repetir la prueba. Para que
JMeter repita esta prueba sin parar, se activa la casilla sin fin.

JMeter guarda automáticamente 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 continuación se deben definir las tareas que se van a realizar. En esta


sección, se detallará la petición JDBC a ejecutar.

Crear un elemento de configuración para la conexión JDBC

La configuración que se presenta a continuación indica que se va a utilizar


una base de datos local llamada prueba con un usuario denominado
administrador y su respectiva contraseña.

18
FAVA - Formación 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 configuración 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
• Contraseña: ******
• Los otros campos en la pantalla se puede dejar con los valores
predeterminados.

19
FAVA - Formación 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 configuración que se utilizará.
• URL Base de datos: jdbc:postgresql://localhost/prueba
• JDBC clase Driver: com.postgresql.jdbc.driver
• Nombre de Usuario: Administrador
• Contraseña: ******

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 configuración que se utilizará.
• URL Base de datos: jdbc:oracle:thin:@//localhost/prueba
• JDBC clase Driver: oracle.jdbc.OracleDriver
• Nombre de Usuario: administrador
• Contraseña: *****

20
FAVA - Formación 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 selección del elemento de JDBC: Para esto se debe


hacer clic con el botón derecho del ratón para obtener el menú Agregar y,
a continuación, seleccionar Agregar > Muestreador > Solicitud de JDBC.

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


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

21
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

ejecuta los elementos como están ordenados en el árbol ubicado en la


parte izquierda de la imagen.

Para empezar, se modifican algunas propiedades como el nombre de la


petición y el de la variable, así mismo se debe ingresar la consulta SQL a
ejecutar.

Luego se configura la segunda petición, con un nombre de petición


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 presentación de
un modelo visual.

22
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

Para este ejemplo se selecciona el elemento de JDBC y luego añadir


“Gráfico de Resultados”.

23
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

Las gráficas proporcionan un recurso para analizar y medir el desempeño


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

Glosario.

SOAP.

SOAP (siglas de Simple Object Access Protocol) es un protocolo estándar


que define cómo 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, más conocida por sus siglas JDBC, es una API
que permite la ejecución de operaciones sobre bases de datos desde el
lenguaje de programación 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 español
Protocolo Ligero de Acceso a Directorios) que hacen referencia a un
protocolo a nivel de aplicación el cual permite el acceso a un servicio de
directorio ordenado y distribuido para buscar diversa información en un
entorno de red. LDAP también 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 programación para hacer pruebas unitarias de
aplicaciones Java.

24
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje
Manual Apache Jmeter

Bibliografía.

• Elahi, M. (4 de Abril de 2011). Testing Thoughts. Recuperado el 15


de abril de 2012, de http://scornik.blogspot.com/2011/05/sql-query-
performance-test-with-jmeter.html.

• La lista oficial de Colaboradores aquí. (1 de Junio de 1999). Fundación


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 - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

You might also like