2. ¿Que son las pruebas de estress?
Es el proceso de poner demanda en un sistema
o dispositivo y medir su respuesta
No se trata solo de presionar hasta romper.
Se consideran pruebas no funcionales
3. ¿Por qué hacer pruebas de estress?
Identificar cuellos de botella
Reducir el riesgo de “caídas del sistema”
Aprovechar los recursos de IT mas eficientemente
Conocer los límites que soporta el sistema
Permite tomar decisiones sobre configuraciones de
hardware, ajustes de software y selección de
arquitecturas
Los fallos por estos motivos suelen ser muy costosos
4. En general los objetivos suelen ser
Mejorar:
Rendimiento
Escalabilidad
Estabilidad
5. ¿Que pasa cuando le ponemos presión
a algo?
Diferentes sistemas reaccionan
de manera diferente a la presión,
la cuestión es determinar que
reacciones son las que interesa medir
6. Definiciones previas a la prueba
Establecer un escenario de pruebas
Determinar que es lo que interesa medir
en las pruebas
7. El escenario de prueba
Nosiempre se puede evaluar sobre
ambientes similares a aquellos donde
funcionará el sistema
Sinembargo se puede establecer un
escenario similar o análogo y proyectar
resultados
8. Formas
Simular el uso del sistema por múltiples usuarios
concurrentemente
Puede evaluarse el uso del sistema por un mismo
usuario durante tiempo prolongado y continuo
También se puede establecer pruebas para evaluar el
comportamiento de un componente del sistema (ej. la
base de datos)
9. Objetivos de medición de las pruebas
Medir:
El tiempo de respuesta
El número de solicitudes atendidas
La cantidad de memoria consumida para resolver las
peticiones (y otros recursos como tiempo de
procesador y accesos a disco)
El número de transacciones realizadas en un
determinado periodo de tiempo
Evaluar los límites de los componentes del sistema
10. Software para pruebas de estress
Jmeter de Apache
Grinder hecho en Jython
LoadSim
Apache Benchmark
Paessler
11. Ejemplo de resultados
Usando Apache BenchMark: ab -n 1000 -c 10 http://localhost/myapp
Concurrency Level: 10
Time taken for tests: 22.206642 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 857000 bytes
HTML transferred: 665000 bytes
Requests per second: 45.03 [#/sec] (mean)
Time per request: 222.066 [ms] (mean)
Time per request: 22.207 [ms] (mean, across all concurrent requests)
Transfer rate: 37.65 [Kbytes/sec] received
Reque