0% encontró este documento útil (0 votos)
2 vistas62 páginas

Modulo4 Performance

El documento aborda las pruebas de rendimiento en software, incluyendo conceptos, tipos y metodologías de pruebas como pruebas de carga y estrés. Se discuten las herramientas como JMeter y se detallan los beneficios y desventajas de las pruebas de performance. Además, se presentan documentos clave en el proceso de pruebas y se explican protocolos HTTP y su importancia en el contexto de pruebas.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas62 páginas

Modulo4 Performance

El documento aborda las pruebas de rendimiento en software, incluyendo conceptos, tipos y metodologías de pruebas como pruebas de carga y estrés. Se discuten las herramientas como JMeter y se detallan los beneficios y desventajas de las pruebas de performance. Además, se presentan documentos clave en el proceso de pruebas y se explican protocolos HTTP y su importancia en el contexto de pruebas.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Pruebas de Performance

Módulo 3

Ing. María Belen Vera Calle


mbvera@[Link]
Contenido
● Qué son las pruebas funcionales.
● Qué es un Test de performance
● Conceptos.
● Tipos de pruebas de performance.
● Qué es un Test de carga.
● Concepto.
● Donde se aplica.
● Qué es un test de Stress.
● Concepto.

Software Testing /QA


Contenido
● Otros test no funcionales.
● Plan de pruebas no funcionales - Contenido.
● Qué es Jmeter.
● Filosofía de trabajo de Jmeter.
● Buenas practicas.
● Descubriendo la herramienta Jmeter.
● Monitoreos de la aplicación.

Software Testing /QA


¿Qué son las pruebas no funcionales?
❖ Prueba donde los atributos de un componente o sistema puede no estar relacionados
a la funcionalidad.

❖ Verifican que el componente del sistema funcione normalmente como esta definido
en los requerimientos

Incluyen:
✓ Test de Rendimiento.
✓ Test de Seguridad.
✓ Test de Estrés.
✓ Test de Carga o Volumen.
✓ Test de Configuración.
✓ Test de Instalación o Portabilidad.
✓ Test de Usabilidad.

Software Testing /QA


Qué es un Test de Performance
En la ingeniería del software, las pruebas de Pueden servir para diferentes propósitos:
rendimiento son las pruebas que se realizan
● Demostrar que el sistema cumpla los
para determinar lo rápido que realiza una
tarea un sistema en condiciones particulares criterios de rendimiento.
de trabajo. ● Comparar dos sistemas para encontrar
También puede servir para validar y verificar cuál de ellos funciona mejor.
otros atributos de la calidad del sistema, tales ● Medir qué partes del sistema provocan
como la escalabilidad, fiabilidad y uso de los que el conjunto rinda mal.
recursos.

Software Testing /QA


Conceptos del Test de Performance
● Determina el comportamiento del sistema
ante distintos niveles de carga para asegurar
su correcto funcionamiento.
● Simula el accesos de cientos de usuarios en
simultáneo en un determinado tiempo.
● Generalmente se llevan a cabo en una
arquitectura cliente-servidor (2, 3 o 4 capas).

Software Testing /QA


Beneficios del Test de Performance
● Determina la velocidad, estabilidad y
escalabilidad de un sistema.
● Focaliza si el usuario está satisfecho con el
comportamiento del sistema.
● Identifica diferencias entre comportamiento
esperado y el comportamiento real.

Software Testing /QA


Desventajas del Test de Performance
● Pruebas funcionales se realicen aplicadas
erróneamente después de pruebas de rendimiento.
● Puede ocurrir que las cargas no simulen el
comportamiento real.

Software Testing /QA


Herramientas
● [Link]

● [Link]

● [Link]

Software Testing /QA


Tipos de pruebas de Performance
● Pruebas de carga (load)
● Pruebas de estrés (stress)
● Pruebas de pico (spike)
● Pruebas de resistencia (endurance)
● Pruebas de escalabilidad (scalability)

Software Testing /QA


Qué es un Test de Carga
Una prueba de carga se realiza generalmente para observar el comportamiento de una
aplicación bajo una cantidad de peticiones esperada (número esperado de usuarios
concurrentes que realizan transacciones especificas durante un tiempo determinado).

Fuente: Wikipedia

Software Testing /QA


Conceptos del Test de Carga
● Evalúa el comportamiento del sistema ante
distintos volúmenes de carga.
● Mide el tiempo que le llevará al sistema ejecutar
acciones y funciones en condiciones normales y/o
pico.
● Determina cuántos usuarios y/o transacciones
puede soportar un sistema sin dejar de alcanzar
un rendimiento adecuado.

Software Testing /QA


Beneficios del Test de Carga
● Anticipa cargas tipo.
● Detecta problemas de concurrencia.
● Detecta errores de funcionalidad ante la
carga.

Software Testing /QA


Desventajas del Test de Carga
● El ambiente sea inestable, por ende las pruebas también.
● Pueden no estar focalizadas en la velocidad de respuestas.
● Los resultados no son comparados correctamente con otras
pruebas.

Software Testing /QA


Dónde aplica
● Memoria
● CPU
● TCP/IP
● Red
● Manejo de archivos
● ...

Software Testing /QA


Donde se aplica
Si se tiene en cuenta el software en la web, se aplica a…

✓ Los servicios que consume.


✓ Un modulo que se esta implementando.
✓ Todos los procesos que un usuario final debería hacer.
✓ Envió de datos

Que resultado se obtiene de estas pruebas:

✓ Informe de la herramienta con la que se hizo la prueba.


✓ Saber si el servidor soporto o no la prueba..
✓ Saber si es el resultado esperado.
✓ Tener evidencia sobre como se comporto el sistema, mientras se hacia la prueba.

Software Testing /QA


Herramientas de monitoreo que colaboran
Nagios Google Analytics

Software Testing /QA


Ejercicio

1. ¿Cómo pruebo 100 usuarios concurrentes?

Corro los 100 en 1 segundo. ¿Qué piensan?

Software Testing /QA


Ejercicio

1. ¿Cómo pruebo 100 usuariosconcurrentes?

Corro los 100 en 1 segundo. ¿Qué piensan?

La capacidad de resolverlo antes del time-out no garantiza soportar 100


usuarios concurrentes.
Como no existe otra carga adicional, tengo todo el tiempo para resolverlo.

Respuesta: Se hace por períodos largos.

Software Testing /QA


Ejercicio Gráfico

CPU: Ejecuta 80 Request por segundo.


Cola de Espera: Puede almacenar 60 Request
Secuencia de entrar de Request
100 100 100 100
req/seg req/seg req/seg req/seg

1’ 2’ 3’ 4’
’ ’ ’ ’
CPU CPU CPU CPU

60
40 anteriores
20 anteriores
anteriores

Quedan 20 en Quedan 40 en Quedan 60 en Se ejecutan los 60 anteriores


cola de espera cola de espera cola de espera y 20 nuevos. Quedan 60 en la
cola y 20 caen en Código 404

Software Testing /QA


Qué es un Test de Stress
Esta prueba se utiliza normalmente para romper la
aplicación. Se va subiendo el número de usuarios que se
agregan a la aplicación y se ejecuta una prueba de
carga hasta que se rompe.

Se realiza para determinar la solidez de la aplicación


en los momentos de carga extrema.

Ayuda a los administradores para determinar si la


aplicación rendirá lo suficiente en caso de que la carga
real supere a la carga esperada.

Fuente: Wikipedia

Software Testing /QA


Conceptos del Test de Stress
● Mide el comportamiento ante un nivel pico de actividad,
forzándolo hasta su caída.
● Ante una quita recursos del sistema (Negative Test).
● Busca encontrar cuellos de botella (componentes
críticos).

● Busca determinar si las interrupciones y recuperaciones


del sistema son aceptables (Graceful recovery).

Software Testing /QA


Beneficios del Test de Carga
● Determina si se pueden corromper los datos en el
estresando al sistema.
● Verifica que la seguridad del sistema no será vulnerada
debido a las diferentes condiciones de estrés.
● Ayuda a determinar qué fallas se deben considerar en
el límite del crash del sistema.

Software Testing /QA


Desventajas del Test de Carga
● Comúnmente no son realistas.
● Complejas y dificultosas de realizar.
● El ambiente casi siempre es compartido.

Software Testing /QA


Esquema de carga
#User
STRESS
Latencia:20000ms Escalabilidad:
5000 500 user concurrentes
+10 GM +3 procesadores
+ 60 users acceso a BBDD

Latencia:4500ms …..
2000
1000 User concurrentes
+18 GM +5 procesadores
Latencia:2500ms + 80 users acceso a BBDD
1000

Latencia:1000ms
50
10’ 10´ 10’ 8’ 10’ 10’ Tiempo
(minutos)
5’ 15’ 20’ 30’ 38’ 48’

Software Testing /QA


Otros tests no funcionales
● Prueba de estabilidad (soak testing)
Se hace para determinar si la aplicación puede aguantar
una carga esperada continuada.

● Pruebas de picos (spike testing)


Se observa el comportamiento del sistema cuando tiene
cambios drásticos en su carga.

Software Testing /QA


Metodología de pruebas de rendimiento
● Planificación de pruebas: Armado del plan de pruebas de rendimiento.
1. Datos de Pruebas
2. Infraestructuras de las pruebas
3. Criterio de aceptación.

● Especificación de escenarios de prueba: Se define un detalle de las pruebas que componen


cada uno de los escenarios
1. Escenario de prueba
2. Guiones de pruebas

● Automatización de prueba: Se construyen los scripts para llevar a cabo las transacciones.

Software Testing /QA


Metodología de pruebas de rendimiento
● Armado de ambiente: Consiste en distintas actividades que permiten la preparación del
ambiente de ejecución.

● Ejecución de pruebas : Se ejecuta pruebas para analizar el comportamiento del sistema, uso
de recursos y tiempo de respuestas.

● Análisis de resultados : Se realiza el análisis del desempeño del sistema y de sus


componentes , en base a los datos obtenidos en la ejecución de pruebas.

Software Testing /QA


Documentos de pruebas de rendimiento
Los principales documentos son:

1. Plan de pruebas de rendimiento


2. Guion de pruebas
3. Informe de resultados

Software Testing /QA


Documentos de pruebas de rendimiento
✓ Plan de pruebas de rendimiento: Es el documento que guía el proceso de pruebas, donde se
plasman las principales decisiones y acuerdos.
Esta compuesto por:
• Introducción
• Marco de trabajo:
❖ Alcance
❖ Cronograma de actividades
❖ Organización del equipo
❖ Hitos y entregables
• Plan de pruebas
❖ Sistema bajo pruebas :Arquitectura del sistema e Interfaces con otros sistemas

Software Testing /QA


Documentos de pruebas de rendimiento
✓ Plan de pruebas de rendimiento: Es el documento que guía el proceso de pruebas, donde se
plasman las principales decisiones y acuerdos.
Esta compuesto por:

• Análisis de riesgos/criticidad
• Ambiente e infraestructura de pruebas e Integración con sistemas externos
• Criterios de aceptación
• Escenarios de pruebas
• Datos de pruebas
• Herramientas de generación de carga
• Monitorización
• Herramientas de monitorización
• Indicadores de monitorización
Software Testing /QA
Documentos de pruebas de rendimiento
✓ Guion de pruebas: Contiene la información detallada de cada una de las pruebas con sus
pasos, que se ejecutara en el sistemas.
El guion contiene la siguiente información:
• Objetivo
• Usuario que lo ejecuta
• Pasos para la ejecución (se presenta en formato tabla)
❖ Detalle de cada paso
❖ Validaciones de cada paso
❖ Tiempo de espera
• Resultado esperado a nivel global

Software Testing /QA


Documentos de pruebas de rendimiento
✓ Informe de resultados: Contiene la siguiente información:

• Resumen de las pruebas realizadas.


• Resultados de las pruebas: Bitácora de ejecuciones, Línea base, Detalle de los escenarios
ejecutados e Información de monitoreo de cada escenario.
• Mejoras aplicadas durante las pruebas.
• Limitantes.
• Conclusiones.
• Recomendaciones.

Software Testing /QA


Protocolos HTTP(s)
• Es un protocolo de comunicación entre un Cliente y un Servidor. El cliente es el que
inicia una petición q es enviada al servidor y este devuelve una respuesta que esta
asociada a esa petición que fue enviada por el cliente.
• Es un protocolo sin estado, es decir el servidor no esta obligado a almacenar
información de ala sesión y que casa solicitud es independiente de otra

Software Testing /QA


Protocolos HTTP(s) – Códigos de estados
Cuando un cliente realiza una solicitud al servidor, los códigos de estado le permiten saber
si la solicitud se realizó correctamente, ha fallado o algo diferente.

• 1xx: Informativo – Solicitud recibida, proceso continuo


• 2xx: Success – La acción fue recibida, entendida y aceptada con éxito
• 3xx: Redirección – Se deben tomar medidas adicionales para completar la solicitud
• 4xx: Error de cliente: la solicitud contiene una sintaxis incorrecta o no se puede cumplir
• 5xx: Error de servidor – El servidor no pudo cumplir con una solicitud aparentemente
válida

Software Testing /QA


Herramientas de carga y stress
● [Link]

● [Link]

● [Link]

Software Testing /QA


Ejemplo de requerimiento

● Requerimiento: 500 usuarios deben ser capaces


de ingresar por 5’
● Meta: El tiempo de respuesta de las páginas < 3’’
● Objetivo: Mejorar el rendimiento y escalabilidad
de server.

● Norma: Asegurar procedimiento, programas,


datos y resultados para validar el requerimiento
y poder reutilizarlos.

Software Testing /QA


Qué esJMeter
JMeter es una herramienta de prueba de carga
utilizado para analizar y medir el rendimiento de una
variedad de servicios, con énfasis en aplicaciones web.

JMeter soporta aserciones para asegurar que los datos


recibidos son correctos, por lo que también se usa para
realización de pruebas automáticas.

Fuente: Wikipedia

Software Testing /QA


Instalar JMeter
1. Acceder al sitio de descarga:
[Link]
2. Hacer scroll-down hasta llegar al párrafo de Binaries.
3. Bajar el Zip del link. Por ejemplo: [Link]
4. Deszipear en una carpeta.
5. Acceder a la carpeta bin. Por ejemplo: …Clase
5\apache-jmeter-5.3\bin
6. Ejecutar el archivo [Link] o [Link]
Importante: Antes de realizar la instalación debe
descargar Java versión 8+

Software Testing /QA


Ejecutar JMeter

Barra de
Menú
Panel de
Barra de
detalles
Iconos

Panel de
proyecto

Software Testing /QA


Filosofía de trabajo de JMeter
Jmeter → Simula al navegador

Software Testing /QA


Jmeter – Buenas prácticas
• Usar la ultima versión de JMeter.
• Usar el número correcto de hilos.
• Instalar el JMeter Plugins Manager (manejo de plugins desde la interfaz visual).
• Ejecución de pruebas en modo CLI (terminal de comandos).
• Realizar varias grabaciones del mismo caso de prueba para identificar las
variables dinámicas.
• Coordinar las presentaciones técnicas con el equipo que desarrollo el
sistema(componentes que intervienen, servidores que se utilizan, diagrama de
despliegue, etc.).
• Involucrar al arquitecto desde las fases iniciales del proceso de pruebas de
rendimiento.

Software Testing /QA


Jmeter – Descubriendo la herramienta
Un SCRITP es un código de programación, sencillo, que contiene comandos u
ordenes que se ejecutan de manera secuencial y comúnmente se usan para
controlar el comportamiento de un programa especifico.

❑ Plan de pruebas : Define una estructura basada en arboles de cómo, cuando y


que probar, proporcionando la ejecución de una secuencia de acciones.

Software Testing /QA


Jmeter – Descubriendo la herramienta
Grupo de hilos: Representan un conjunto de usuarios de el sistema. Son usados para ejecutar
as pruebas de rendimiento simulando la concurrencia de los usuarios sobre la aplicación.

➢ Número de hilos : 100 (Número de usuarios conectados al sitio web de destino: 100)
➢ Recuento de bucles : 10 (Número de tiempo para ejecutar pruebas).
➢ Período de aumento de velocidad : 100. Le dice a JMeter cuánto tiempo debe demorarse antes de
comenzar con el siguiente usuario. Por ejemplo, si tenemos 100 usuarios y un período de Ramp-Up de 100
segundos, el retraso entre los usuarios iniciales sería de 1 segundo (100 segundos / 100 usuarios)

Software Testing /QA


Jmeter – Descubriendo la herramienta
Peticiones Http(s): Maneja cada petición de manera independiente y se configura
invocando una url especifica.

Software Testing /QA


Jmeter – Descubriendo la herramienta
Grabación de scripts: Se permite grabar la navegación de un usuario interactuando con
aplicaciones web.

Usamos el elemento “servidor proxy HTTPs” en donde lo mas importante es identificar el


puerto, necesario para configurar nuestro navegador, y la selección del grupo de hilos

Software Testing /QA


Jmeter – Descubriendo la herramienta
Receptores de resultados, escuchas: Muestra los resultados de las pruebas. Son los que
“escuchan” dichas respuestas, son los que se procesan al ultimo

Tipos de escuchas

✓ Árbol de resultados : Permite visualizar todas las peticiones y sus respuestas con una
estructura de árbol.

Software Testing /QA


Jmeter – Descubriendo la herramienta
Tipos de escuchas
✓ Informe agregado: Permite observar en un alto nivel los resultados q se obtuvieron.

✓ Tabal de resultados: Analiza los resultados en una tabla detallada, donde cada línea corresponde a cada
una de las peticiones ejecutadas.

Software Testing /QA


Jmeter – Descubriendo la herramienta
Tipos de escuchas
✓ Resultados del grafico: Permite generar un grafico que traza todos los tiempos de la muestra. Las datos
se representan de la siguiente forma: la muestra actual (negro), el promedio actual de todas las muestras
(azul), la desviación estándar actual (rojo) y la tasa de rendimiento actual (verde) se muestran en
milisegundos.

Software Testing /QA


Jmeter – Descubriendo la herramienta
Tipos de escuchas
✓ Grafico agregado: similar al informe agregado, pero la principal diferencia es que proporciona una
manera mas fácil de generar gráficos de barras y guardarlo como un archivo PNG.

Software Testing /QA


Jmeter – Descubriendo la herramienta
Aserciones: Son las que validan las respuestas de peticiones que son enviadas al servidor.
Ayudan a verificar y asegurar que las pruebas de rendimiento están siendo ejecutadas
satisfactoriamente y que el servidor bajo prueba retorna los resultados esperados

Tipos de aserciones
❖ Aserción de respuesta: Permite comparar cadenas de texto con la respuesta que
proviene del servidor.

Software Testing /QA


Jmeter – Descubriendo la herramienta
Tipos de aserciones
❖ Aserción de duración: Permite verificar que las respuestas del servidor se reciban dentro
de un periodo de tiempo determinado. Si una respuesta toma mas tiempo que la cantidad
configurada en milisegundos se marca como respuesta fallida.

Software Testing /QA


Jmeter – Descubriendo la herramienta
Temporizadores: Es el tiempo entre las distintas interacciones de usuario, son los tiempos de
esperas (think time). Se procesan antes de cada petición, de acuerdo al nivel donde se
encuentran definidos.

Tipos de Temporizadores

Temporizador constante: Es usado para agregar un tiempo de espera (retardo) constante en


cada petición, este valor es especificado en milisegundos.

Software Testing /QA


Jmeter – Descubriendo la herramienta
Tipos de Temporizadores

Temporizador aleatorio uniforme: Retarda cada petición durante un periodo de tiempo


aleatorio, con un máximo establecido, teniendo cada intervalo de tiempo la misma
probabilidad de ocurrir.

Software Testing /QA


Jmeter – Descubriendo la herramienta
Parametrización: Definen variables, locales a cada hilo de ejecución.

• Origen de datos CSV: Permite leer datos de un archivo que serán utilizados para las
peticiones HTTP(s). Los datos se obtienen del archivo, línea por línea y son almacenados
en variables para ser utilizados en Jmeter.

Software Testing /QA


Monitoreo de la aplicación
➢ El monitoreo es una actividad fundamental a la hora de ejecutar las pruebas de rendimiento y poder
obtener información relevante que será utilizada para analizar mejoras en el rendimiento de la aplicación.

➢ Se requiere realizar un monitores del lado del servidor.

➢ Cuando se realiza una carga de una aplicación web, es necesario entender que esta sucediendo a nivel del
servidor e infraestructura.

➢ Es una tarea compleja, se recomienda trabajar en conjunto con el equipo de infraestructura y de


operaciones para poder definir cuales son los indicadores a probar, recolección de información durante la
ejecución de las pruebas y su posterior análisis.

Software Testing /QA


Monitoreo de la aplicación
Indicadores primarios: Son utilizados para evaluar el estado de los distintos recursos que se
monitorean, son los que realizan el monitoreo del primer nivel.

Los recursos que comúnmente son monitoreados por los indicadores primarios para los
servidores son:
• CPU: Se puede observar el porcentaje de utilización y el largo de la cola de trabajos
que tiene por procesar.
• Memoria: Es importante para monitorear la memoria conocer la capacidad de
servidor y observar la memoria disponible durante las pruebas.
• Disco: Es importante observar la actividad de lectura y escritura en el Se recomienda
observar la cola de trabajos para el disco y el espacio disponible del mismo.
• Red: Es relevante observar la actividad de envió y recepción de datos.

Software Testing /QA


Monitoreo de la aplicación
Herramientas básicas de monitoreo
➢ Windows Performance Monitor :Para soluciones en las que el servidor de aplicaciones ejecuta sobre un
sistema operativo Windows, es posible utilizar la herramienta “Windows Performance Monitor”, también
conocida como “perfmon”.

➢ Nmon: Para las soluciones cuyo servidor de aplicaciones ejecuta sobre sistemas operativos Linux. Dicha
herramienta es del tipo de línea de comando, y tiene dos modos de ejecución.
El primer modo se utiliza para observar la actividad de los indicadores en tiempo real, y se activa solamente
ejecutando el comando “nmon” en la terminal.
El segundo modo es para almacenar la actividad de los indicadores en un archivo que luego podrá ser
analizado.

Software Testing /QA


Ejercicio
#Objetivo: Realice pruebas de carga bajo
Jmeter. Por ejemplo: Realizar a Wiki de 60 hilos
en 5’’, un solo ciclo. Y analizar los resultados a
través de reportes gráficos y tablas.

#Objetivo: Realice pruebas de carga bajo


Jmeter. Por ejemplo: Realizar a Wiki de 60 hilos
en 5’’, un solo ciclo. Y analizar los resultados a
través de reportes gráficos y tablas

Software Testing /QA


Revisión

Repase
● Los puntos visto en la clase.

Realice
● Las preguntas necesarias al o la docente antes
de continuar.
● Realice los ejercicios de la práctica.

Software Testing /QA


¿Preguntas?graci
as!
¡Sigamos trabajando!

Software Testing /QA


Muchas gracias!!!
gracias!
¡Sigamos trabajando!

Software Testing /QA

También podría gustarte