Вы находитесь на странице: 1из 14

ESCUELA POLITÉCNICA NACIONAL

FACULTAD DE INGENIERÍA DE SISTEMAS


INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Laboratorio de: Calidad de Software

Práctica No.: 4

Tema: Herramientas para pruebas de carga.

Nombre: Alex Ulloa Fecha: 02/03/2019


1. Objetivos

1.1. Objetivo General

Utilizar la herramienta JMeter para realizar pruebas de carga de sitio web.

1.2. Objetivos Específicos

Realizar pruebas de carga utilizando la herramienta JMeter dentro de un


ambiente de desarrollo web.

Entender las funciones que la herramienta Jmeter proporciona para la


realización de pruebas de carga.

2. Marco teórico

Descripción
JMeter es una herramienta de testing cuyas funcionalidades se pueden
resumir en tres:

Diseñar un testplan, esto es, generar un fichero. jmx


Ejecutar un testplan
Ver de distintas formas los resultados de la ejecución de un testplan
(vía listeners)

Para diseñar un testplan, JMeter dispone de una interfaz GUI a modo de


diseñador, en la que el tester puede ir agregando componentes de manera
visual, y ejecutar los componentes agregados, viendo el resultado. Una vez
finalizado el diseño del testplan, la herramienta permite grabar este como un
fichero. jmx.

La propia herramienta permite ejecutar un fichero .jmx previamente generado,


vía línea de comandos o vía la propia interfaz GUI. La ejecución de un fichero
.jmx realiza peticiones contra la aplicación objetivo a testear (peticiones del

Página 1 de 14
tipo que se hayan especificado al generar el fichero .jmx, JMeter dispone de la
posibilidad de generar muchos tipos de peticiones: HTTP, FTP, LDAP, ...). Para
cada petición ejecutada, JMeter recopila ciertos datos. Además, en el fichero
.jmx se puede especificar qué número de usuarios de cada tipo ejecuta las
peticiones contra la aplicación, es decir, el .jmx simula una o más comunidades
de usuarios (roles) trabajando contra la aplicación objetivo.

Los datos generados por la herramienta para cada petición se procesan o bien
con un tipo de componente que proporciona la interfaz GUI llamados listeners,
o bien con herramientas externas. Los listeners permiten ver los resultados de
una o mas ejecuciones de múltiples maneras (cada listener de una manera).

Este manual es una introducción al uso de la herramienta JMeter. Explica los


conceptos básicos que es necesario conocer para entender la herramienta, y las
posibles formas de utilizar ésta.

Es adecuado tanto para personas con un perfil técnico sin conocimientos previos
que deseen iniciarse en el uso de la herramienta, como para diretores, jefes de
proyecto y analistas que deseen conocer las posibilidades de la herramienta en
la ejecución de tests.

Los lectores interesados en profundizar en el uso de la herramienta quizás estén


interesados en las siguientes referencias:

Construcción de un testplan con JMeter


Ejecución de un testplan con JMeter

Ventajas e inconvenientes

JMeter es una herramienta ideal para realizar pruebas de rendimiento de


aplicaciones web. Sus principales debilidades son:

Aunque la versión actual (2.4) permite también el diseño y automatización de


pruebas funcionales, existen otras herramientas más adecuadas para esta
función.
JMeter NO se comporta como un navegador. Esto tiene varias implicaciones
importantes: por defecto no guarda ni envía cookies, no interpreta código
JavaScript, … Cualquier funcionalidad de estas debe ser implementada
específicamente en el testplan

Con JMeter el tester trabaja a nivel de protocolos: el desarrollador de un


testplan ha de descender a este nivel, por lo que normalmente el tester tiene
que apoyarse en herramientas adicionales durante el desarrollo de un testplan,
como Firebug, HttpFox, SoapUI, Badboy, ...
Los tipos de aplicaciones que se pueden testear con JMeter dependen de los
protocolos que implementen las interfaces de acceso a la aplicación. Con
JMeter se pueden testear los siguientes tipos de interfaces: HTTP, HTTPS, SOAP
(sobre HTTP), XML-RPC (sobre HTTP), FTP, LDAP, POP3, IMAP, SMTP, JMS, JDBC
y TCP. El testeo de otro tipo de interfaces no es inmediato. En concreto, con

Página 2 de 14
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

JMeter no es posible (con un esfuerzo razonable), implementar un testplan para


una interfaz RMI o WebDav

Prerequisitos e incompatibilidades de la tecnología


Los prerequisitos se especifican en la sección Instalación configuración, y
acceso a la documentación.

No se han descrito incompatibilidades.

Si se va a hacer un uso masivo de esta herramienta, es importante conocer las


posibilidades de la línea de comando y las propiedades de configuración para
sacarle partido.

Listeners
Los listeners son uno de los tipos de componentes de un tesplan (más sobre los
tipos de componentes de un testplan en Interfaz GUI y Tipos de componentes
de un testplan, ámbito y orden de ejecución).

La importancia que tienen los listeners respecto a los otros tipos de


componentes es que procesan las peticiones realizadas a la aplicación objetivo
por los samplers del testplan, y muestran el resultado del procesamiento de
diferentes formas según el tipo de listener de que se trate.

Se pueden usar los listeners de dos formas:

Si el testplan se ejecuta desde la interfaz GUI, muestran en tiempo real el


procesamiento de las peticiones que realizan los samplers. Así por ejemplo, el
listener View Results Tree muestra los samplers en el orden en que se ejecutan,
y para cada uno de ellos se puede visualizar los datos de la petición realizada y
la respuesta de la aplicación (muy util para depurar un testplan mientras se
construye). Otro ejemplo: el listener Graph Results muestra en forma de gráfica
los tiempos de respuesta de la aplicación objetivo.
Una vez ejecutado el testplan, si se ha generado el fichero sample result, este
se puede cargar en el campo Filename: de un listener (por ejemplo creando un
plan vacío que solo contenga el listener que nos interesa, o creando el
componente listener que nos interesa en el componente Workbench de la
interfaz GUI). Al hacer esto, el listener mostrará el resultado de procesar el
fichero en un determinado formato.
Nota: Esta última es la forma como se recomienda trabajar en la ejecución de
pruebas de rendimiento. Resumiendo,

Generar el fichero sample result en formato CSV, vía opción -l de la línea de


comando o vía un listener global del tipo Simple Data Writer.

Página 3 de 14
Una vez ejecutada la prueba de rendimiento, cargar el fichero result sample
generado en uno o varios de los listeners que nos muestren las medidas de
rendimiento que queremos obtener.
Características
JMeter implementa las siguientes funcionalidades:

Simular, con el nivel de concurrencia que se desee, las interacciones de una o


varias comunidades de usuarios virtuales (perfiles o roles) con la aplicación
Interfaz GUI para diseñar casos de prueba (tetplans)
Posibilidad de grabar las interacciones de un usuario, vía navegador, con la
interfaz HTTP de una aplicación, y convertir la grabación en un testplan
Ejecución de un testplan desde la interfaz GUI o desde línea de comando,
permitiendo así la automatización de la ejecución de pruebas.
Construcción de testplans configurables
Ejecución de un testplan en modo cliente, en modo remoto o en modo
distribuido
Visualización de los resultados de la ejecución de un testplan de múltiples
formas, obteniendo diferentes métricas.

3. Desarrollo de la práctica

3.1. Configuración del Ambiente de Pruebas


3.2.
Detallar el nombre completo y versión de sistemas operativos, software base,
herramientas, librerías, etc. utilizadas para realizar el laboratorio.

Nombre y Versión Características


1 Windows 10 -64 bits Es el vigente sistema operativo
desarrollado por Microsoft como parte de
la familia de sistemas operativos Windows
NT
2 ApacheJMeter 5 La versión 5 de apacheJMeter
version
3 JDK 8 Máquina Virtual de Java. Necesaria para
compilar y correr los programas realizados
con un lenguaje JAVA.
4 Java 8 Version de Java a usar

3.3. Esquemas de Funcionamiento de las Herramientas

ApacheJMeter

Usuarios

Página 4 de 14
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Listener Sitios Web

Resultados de JMEtER

3.4. Procedimiento de la Práctica

1. Abrir Apache JMeter

Página 5 de 14
2. Se abre un nuevo archivo

3. Se crear un thread group

4. Se escoge un nombre, se debe escribir el número de hilos


(usuarios) y cuantos hilos se crearán por segundo y por
ultimo por cuanto tiempo

Página 6 de 14
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

5. Se crea el sampler http request

6. Se agrega el server name al cual vamos ha realizar el


test, en este caso Facebook.com y señalamos el método.

Página 7 de 14
7. Agregamos los diferentes listener:
a. View Results Tree
b. View Results in Table
c. Graph Results
d. Summary Report

Página 8 de 14
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

8. Se observa los diferentes listener

9. Dar clic en start y empieza la prueba, seleccionar yes y


grabar la prueba realizada.

Página 9 de 14
10. View Result tree

11. Sumary Report

12. View Result table

Página 10 de 14
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

13. Aggregate Graph

3.5. Resolución de Preguntas y Problemas

Preguntas:

Página 11 de 14
¿Cuál es el objetivo de las pruebas de carga?

Se utilizan para observar el comportamiento de una aplicación bajo una


cantidad de peticiones esperada. Esta carga puede ser el número de usuarios
concurrentes utilizando la aplicación y que realizan un número especifico de
transacciones durante el tiempo que dura la carga.

¿Cuántos sampler posee la herramienta Apache JMeter?

Los samplers que tiene incluido la herramienta JMeter son los siguientes:
 FTP Request
 HTTP Request
 Java object request
 JMS request
 Junit test request
 LDAP request
 Mail request
 OS process request
 TCP request
En total viene a ser un número de 9 samplers.

Describa todos los listener que se pueden usar para observar datos de un
sampler.

 View Results Tree: se presentan los resultados en el orden que fueron


generados, además, provee parámetros y datos de cada uno de ellos.
 View Results in Table: se presenta la información de cada prueba en
formato de una tabla. Se presentan valores relacionados al tiempo, el
payload, número de thread y el resultado de la ejecución.
 Spline Visualizer: se presentan los cambios del tiempo de respuesta
sobre la ejecución de manera gráfica.
 Response time Graph: Se plotea la información sobre las pruebas
seleccionadas de manera gráfica.
 Assertion Results: se muentran los resultados de todos los assert y su
alcance. Solo se muestran los asserts que no han pasado la prueba.
 Simple Data Writer: se puede escribir los resultados en un archivo, del
cual se debe proveer el nombre.
 Save Responses to a File: se guarda la información de cada respuesta a
un archivo separado, luego se indexan los mismos. El nombre del
archivo se crea con la parte base del archivo más un índice.

¿Cuál es la diferencia entre Load time, Connect Time, Latency?

Página 12 de 14
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

 Load Time: Tiempo que se toma en descargar y desplegar todo el


contenido de la página web.
 Connect Time: Es el tiempo que se demora en establecerse la conexión
TCP entre el cliente y el servidor, utilizando el proceso de handshake
TCP.
 Latency: Es el tiempo medido desde un instante antes de enviar el
requerimiento hasta el primer instante en el cual se recibe una
respuesta.

Problemas:

Hacer pruebas de carga con un sitio web de su eleccion, con el sample http
request y con 4 diferentes listener y describir los resultados encontrados.
Escoger Numberof threads 1000 y Ramp-Up Period 10 loop Count 1

Realizar una prueba de carga escogiendo un sample diferente al http


request, presentar el análisis y describir los resultados usando los listener:
View Results in Table, Graph Results, Summary Report.

4. Análisis de resultados
Los resultandos encontrados nos ofrecen la latencia, el tiempo de conexión,
el tiempo de carga de cada usuario ingresando a la pagina web
seleccionada.

Se puede observar los resultados en gráfico, en tabla, en arboles y inclusive


se obtiene un resumen del todos los resultados obtenidos de las diferentes
conexiones realizadas con la pagina web.

5. Conclusiones y recomendaciones

5.1. Conclusiones
 Los “Listeners” en el diseño de la prueba son importantes,
pero también generar un esfuerzo mayor para el sistema en
la medida que se usen en mayor cantidad, por ello, es
necesario intentar reducir el uso de los mismos, en caso que
Página 13 de 14
sean necesarios, es válido dividir las pruebas en diferentes
scripts donde se tengan Listeners diferentes y tener
resultados de pruebas por separado.

 JMeter es una de esas aplicaciones de código abierto


con grandes posibilidades pero con carencias en cuanto
a documentación… por lo que para sacarle todo su
potencial hay que tirarse horas probando para exprimir
sus posibilidades.

5.2. Recomendaciones
 No usar listeners innecesarios en el testplan
 Utiliza el número correcto de hilos y no confundas, Thread
Count con Loop Count. Tener 10 usuarios en 1 bucle, no es
lo mismo que 1 usuario en 10 bucles. Aunque puede parecer
obvio, es un error común.

6. Bibliografía
[1]C. Stefan Bechtold, "JUnit 5 User Guide", Junit.org, 2019. [Online]. Available:
https://junit.org/junit5/docs/current/user-guide/. [Accessed: 07- Jan- 2019].
[2]"JUnit", Es.wikipedia.org, 2019. [Online]. Available: https://es.wikipedia.org/wiki/JUnit.
[Accessed: 14- Jan- 2019].

Página 14 de 14

Вам также может понравиться