SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Pruebas de Estrés
por: Sergio Martínez
@SuperSerch
¿Qué es una prueba de estrés?
estrés.
(Del ingl. stress).
1. m. Med. Tensión provocada por
situaciones agobiantes que originan
reacciones psicosomáticas o trastornos
psicológicos a veces graves.
Real Academia Española © Todos los derechos reservados
¿Qué es una prueba de estrés?
Es un proceso en donde, con ayuda de
herramientas se crea un ambiente
adverso a fin de determinar la habilidad de
un sistema a mantener un cierto nivel de
efectividad
¿Para qué hacerlas?
Encontrar cuellos de botella
Encontrar “Memory leaks”
Encontrar fallas de concurrencia
Conocer la capacidad del sistema con la
infraestructura actual
Herramientas
fwptt
JCrawler
Web Capacity Analysis Tool (WCAT)
Siege
¿Por qué no falló en la prueba?
La prueba y el sistema estaban en el mismo equipo
Millones de peticiones a un solo URL
Mal diseño del script de pruebas
Incorrecta ejecución de la prueba
Falta de monitoreo durante la prueba
Puntos a considerar al
diseñar y realizar una
prueba de estrés
Hipótesis
¿Qué es lo que estoy queriendo probar?
Peticiones por segundo antes del punto de
degradación
Relación: Transferencia - Memoria - CPU
Eficacia de la Arquitectura del sistema
Soporte a fallos
Infraestructura similar a
Producción
Tener los mismos componentes
Tener configuraciones similares
Conocer las diferencias y como afectan al sistema
Ancho de banda
Minimizar puntos intermedios
Incluir (o no) elementos estáticos
Carga de bibliotecas externas (CDNs)
Usuarios (cuentas)
Sistema de autenticación y seguimiento
Cookies
Header
URL
Usar Múltiples cuentas
Cache
Naturales
Memcached
Aleatoriedad en el comportamiento de los usuarios
Contención en Escritura
Bases de datos
Archivos
Recursos de Red
Diferentes usuarios sobre el mismo recurso
Escalabilidad
¿Existe una manera simple de escalar el sistema?
Incremento o decremento de la cantidad de
servidores durante la prueba
Multiples clientes de prueba
Demo
Resultados
¿Se confirmó la hipótesis?
¿El monitoreo refleja la forma de la prueba?
¿El cambio del código de la función X afectó al
rendimiento global del sistema?
¿Se encontraron problemas de rendimiento?
Si no experimentamos con el
sistema, Producción será el
primer experimento.
Preguntas
¿Cómo puedo hacer una prueba con
millones de usuarios?
Instalar JMeter en varios servidores
Tener un servidor central
Registrar las IPs en el servidor central
http://jmeter.apache.org/usermanual/remote-test.html
¿Se puede probar una aplicación
que recibe tweets?
Se podría intentar simular con el JSR223 Sampler
JSR223: Scripting for the Java Platform
http://jmeter.apache.org/usermanual/component_reference.html#JSR223_Sampler
https://blazemeter.com/blog/queen-jmeters-built-componentshow-use-beanshell
Se puede programar un plugin para simular el stream
https://github.com/apache/jmeter/blob/doc-v2_3_1/src/examples/org/apache/jmeter/
examples/sampler/ExampleSampler.java
¿Cuándo se deben iniciar las
pruebas de estrés?
Lo antes posible
Fail-Fast: en cuanto se defina la arquitectura del sistema
y se pueda tenerlo operando, así se puede validar

Más contenido relacionado

Destacado

Disciplined agile business analysis
Disciplined agile business analysisDisciplined agile business analysis
Disciplined agile business analysisScott W. Ambler
 
How Comcast uses Data Science to Improve the Customer Experience
How Comcast uses Data Science to Improve the Customer ExperienceHow Comcast uses Data Science to Improve the Customer Experience
How Comcast uses Data Science to Improve the Customer ExperienceTuri, Inc.
 
[PREMONEY 2014] Mayfield Fund >> Tim Chang, "Mobile Is The Future Of YOU: Why...
[PREMONEY 2014] Mayfield Fund >> Tim Chang, "Mobile Is The Future Of YOU: Why...[PREMONEY 2014] Mayfield Fund >> Tim Chang, "Mobile Is The Future Of YOU: Why...
[PREMONEY 2014] Mayfield Fund >> Tim Chang, "Mobile Is The Future Of YOU: Why...500 Startups
 
Cwin16 - lyon - faurecia customer cockpit
Cwin16 - lyon - faurecia customer cockpitCwin16 - lyon - faurecia customer cockpit
Cwin16 - lyon - faurecia customer cockpitCapgemini
 

Destacado (7)

Disciplined agile business analysis
Disciplined agile business analysisDisciplined agile business analysis
Disciplined agile business analysis
 
How Comcast uses Data Science to Improve the Customer Experience
How Comcast uses Data Science to Improve the Customer ExperienceHow Comcast uses Data Science to Improve the Customer Experience
How Comcast uses Data Science to Improve the Customer Experience
 
How to Start a Startup at NYU
How to Start a Startup at NYUHow to Start a Startup at NYU
How to Start a Startup at NYU
 
[PREMONEY 2014] Mayfield Fund >> Tim Chang, "Mobile Is The Future Of YOU: Why...
[PREMONEY 2014] Mayfield Fund >> Tim Chang, "Mobile Is The Future Of YOU: Why...[PREMONEY 2014] Mayfield Fund >> Tim Chang, "Mobile Is The Future Of YOU: Why...
[PREMONEY 2014] Mayfield Fund >> Tim Chang, "Mobile Is The Future Of YOU: Why...
 
Introduction to the Innovation Corps (NSF I-Corps)
Introduction to the Innovation Corps (NSF I-Corps)Introduction to the Innovation Corps (NSF I-Corps)
Introduction to the Innovation Corps (NSF I-Corps)
 
Cwin16 - lyon - faurecia customer cockpit
Cwin16 - lyon - faurecia customer cockpitCwin16 - lyon - faurecia customer cockpit
Cwin16 - lyon - faurecia customer cockpit
 
April: My Best Mistake
April: My Best MistakeApril: My Best Mistake
April: My Best Mistake
 

Similar a Pruebas de estrés: qué son, para qué sirven y cómo realizarlas de forma efectiva

Ejemplo pruebas de software
Ejemplo pruebas de softwareEjemplo pruebas de software
Ejemplo pruebas de softwareJohn Fonseca
 
Sistema para la gestión de interrupciones y medios informáticos en Artex S.A
Sistema para la gestión de interrupciones y medios informáticos en Artex S.ASistema para la gestión de interrupciones y medios informáticos en Artex S.A
Sistema para la gestión de interrupciones y medios informáticos en Artex S.ARodrigoGonzlezEsparz
 
Estrategias de aplicación de pruebas del sistema
Estrategias de aplicación de pruebas del sistemaEstrategias de aplicación de pruebas del sistema
Estrategias de aplicación de pruebas del sistemaResidencia en el CICY
 
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...Abstracta
 
¿Porqué son importantes las Pruebas de Software?
¿Porqué son importantes las Pruebas de Software?¿Porqué son importantes las Pruebas de Software?
¿Porqué son importantes las Pruebas de Software?jose diaz
 
Doo 13-testing
Doo 13-testingDoo 13-testing
Doo 13-testingJulio Pari
 
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
 Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe... Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...Federico Toledo
 
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Abstracta
 
Cesnavarra 2009-boletín 3
Cesnavarra 2009-boletín 3Cesnavarra 2009-boletín 3
Cesnavarra 2009-boletín 3Cein
 
Argentesting 2017 - Performance testing 101 con jmeter
Argentesting 2017 - Performance testing 101 con jmeterArgentesting 2017 - Performance testing 101 con jmeter
Argentesting 2017 - Performance testing 101 con jmeterArgentesting
 
ALM Sessions 2012 - Entrega Continua con VS ALM y TFS
ALM Sessions 2012 - Entrega Continua con VS ALM y TFSALM Sessions 2012 - Entrega Continua con VS ALM y TFS
ALM Sessions 2012 - Entrega Continua con VS ALM y TFSJose Luis Soria
 
Mv unidad 1
Mv unidad 1Mv unidad 1
Mv unidad 1Norerod
 

Similar a Pruebas de estrés: qué son, para qué sirven y cómo realizarlas de forma efectiva (20)

Pruebas de estress
Pruebas de estressPruebas de estress
Pruebas de estress
 
Pruebas de estres
Pruebas de estresPruebas de estres
Pruebas de estres
 
Ejemplo pruebas de software
Ejemplo pruebas de softwareEjemplo pruebas de software
Ejemplo pruebas de software
 
Practico
PracticoPractico
Practico
 
Sistema para la gestión de interrupciones y medios informáticos en Artex S.A
Sistema para la gestión de interrupciones y medios informáticos en Artex S.ASistema para la gestión de interrupciones y medios informáticos en Artex S.A
Sistema para la gestión de interrupciones y medios informáticos en Artex S.A
 
Estrategias de aplicación de pruebas del sistema
Estrategias de aplicación de pruebas del sistemaEstrategias de aplicación de pruebas del sistema
Estrategias de aplicación de pruebas del sistema
 
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
 
Guiaprueba
GuiapruebaGuiaprueba
Guiaprueba
 
¿Porqué son importantes las Pruebas de Software?
¿Porqué son importantes las Pruebas de Software?¿Porqué son importantes las Pruebas de Software?
¿Porqué son importantes las Pruebas de Software?
 
Doo 13-testing
Doo 13-testingDoo 13-testing
Doo 13-testing
 
Pruebas
PruebasPruebas
Pruebas
 
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
 Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe... Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
 
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
 
Cesnavarra 2009-boletín 3
Cesnavarra 2009-boletín 3Cesnavarra 2009-boletín 3
Cesnavarra 2009-boletín 3
 
Argentesting 2017 - Performance testing 101 con jmeter
Argentesting 2017 - Performance testing 101 con jmeterArgentesting 2017 - Performance testing 101 con jmeter
Argentesting 2017 - Performance testing 101 con jmeter
 
ALM Sessions 2012 - Entrega Continua con VS ALM y TFS
ALM Sessions 2012 - Entrega Continua con VS ALM y TFSALM Sessions 2012 - Entrega Continua con VS ALM y TFS
ALM Sessions 2012 - Entrega Continua con VS ALM y TFS
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Calidad del software cap3
Calidad del software   cap3Calidad del software   cap3
Calidad del software cap3
 
Mv unidad 1
Mv unidad 1Mv unidad 1
Mv unidad 1
 
Calidad del software cap2
Calidad del software   cap2Calidad del software   cap2
Calidad del software cap2
 

Más de superserch

Identificando problemas en el JVM
Identificando problemas en el JVMIdentificando problemas en el JVM
Identificando problemas en el JVMsuperserch
 
Introducción al manejo de memoria en el JVM
Introducción al manejo de memoria en el JVMIntroducción al manejo de memoria en el JVM
Introducción al manejo de memoria en el JVMsuperserch
 
Lambda & Stream API workshop 2019
Lambda & Stream API workshop 2019Lambda & Stream API workshop 2019
Lambda & Stream API workshop 2019superserch
 
OWASP Top 10 2017
OWASP Top 10 2017OWASP Top 10 2017
OWASP Top 10 2017superserch
 
Garbage Collection en el JVM
Garbage Collection en el JVMGarbage Collection en el JVM
Garbage Collection en el JVMsuperserch
 
Jvmmx docker jvm
Jvmmx docker jvmJvmmx docker jvm
Jvmmx docker jvmsuperserch
 
Cloudino workshopcpmx7
Cloudino workshopcpmx7Cloudino workshopcpmx7
Cloudino workshopcpmx7superserch
 
Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8superserch
 
Zed Attack Proxy
Zed Attack ProxyZed Attack Proxy
Zed Attack Proxysuperserch
 
Inyección, XSS, CSRF en ChelaJS
Inyección, XSS, CSRF en ChelaJSInyección, XSS, CSRF en ChelaJS
Inyección, XSS, CSRF en ChelaJSsuperserch
 

Más de superserch (11)

Identificando problemas en el JVM
Identificando problemas en el JVMIdentificando problemas en el JVM
Identificando problemas en el JVM
 
Introducción al manejo de memoria en el JVM
Introducción al manejo de memoria en el JVMIntroducción al manejo de memoria en el JVM
Introducción al manejo de memoria en el JVM
 
Lambda & Stream API workshop 2019
Lambda & Stream API workshop 2019Lambda & Stream API workshop 2019
Lambda & Stream API workshop 2019
 
OWASP Top 10 2017
OWASP Top 10 2017OWASP Top 10 2017
OWASP Top 10 2017
 
Garbage Collection en el JVM
Garbage Collection en el JVMGarbage Collection en el JVM
Garbage Collection en el JVM
 
Jvmmx docker jvm
Jvmmx docker jvmJvmmx docker jvm
Jvmmx docker jvm
 
Cloudino workshopcpmx7
Cloudino workshopcpmx7Cloudino workshopcpmx7
Cloudino workshopcpmx7
 
Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8
 
Jvmmx jigsaw
Jvmmx jigsawJvmmx jigsaw
Jvmmx jigsaw
 
Zed Attack Proxy
Zed Attack ProxyZed Attack Proxy
Zed Attack Proxy
 
Inyección, XSS, CSRF en ChelaJS
Inyección, XSS, CSRF en ChelaJSInyección, XSS, CSRF en ChelaJS
Inyección, XSS, CSRF en ChelaJS
 

Pruebas de estrés: qué son, para qué sirven y cómo realizarlas de forma efectiva

  • 1. Pruebas de Estrés por: Sergio Martínez @SuperSerch
  • 2. ¿Qué es una prueba de estrés? estrés. (Del ingl. stress). 1. m. Med. Tensión provocada por situaciones agobiantes que originan reacciones psicosomáticas o trastornos psicológicos a veces graves. Real Academia Española © Todos los derechos reservados
  • 3. ¿Qué es una prueba de estrés? Es un proceso en donde, con ayuda de herramientas se crea un ambiente adverso a fin de determinar la habilidad de un sistema a mantener un cierto nivel de efectividad
  • 4. ¿Para qué hacerlas? Encontrar cuellos de botella Encontrar “Memory leaks” Encontrar fallas de concurrencia Conocer la capacidad del sistema con la infraestructura actual
  • 6.
  • 7. ¿Por qué no falló en la prueba? La prueba y el sistema estaban en el mismo equipo Millones de peticiones a un solo URL Mal diseño del script de pruebas Incorrecta ejecución de la prueba Falta de monitoreo durante la prueba
  • 8. Puntos a considerar al diseñar y realizar una prueba de estrés
  • 9. Hipótesis ¿Qué es lo que estoy queriendo probar? Peticiones por segundo antes del punto de degradación Relación: Transferencia - Memoria - CPU Eficacia de la Arquitectura del sistema Soporte a fallos
  • 10. Infraestructura similar a Producción Tener los mismos componentes Tener configuraciones similares Conocer las diferencias y como afectan al sistema
  • 11. Ancho de banda Minimizar puntos intermedios Incluir (o no) elementos estáticos Carga de bibliotecas externas (CDNs)
  • 12. Usuarios (cuentas) Sistema de autenticación y seguimiento Cookies Header URL Usar Múltiples cuentas
  • 13. Cache Naturales Memcached Aleatoriedad en el comportamiento de los usuarios
  • 14. Contención en Escritura Bases de datos Archivos Recursos de Red Diferentes usuarios sobre el mismo recurso
  • 15. Escalabilidad ¿Existe una manera simple de escalar el sistema? Incremento o decremento de la cantidad de servidores durante la prueba Multiples clientes de prueba
  • 16. Demo
  • 17. Resultados ¿Se confirmó la hipótesis? ¿El monitoreo refleja la forma de la prueba? ¿El cambio del código de la función X afectó al rendimiento global del sistema? ¿Se encontraron problemas de rendimiento?
  • 18. Si no experimentamos con el sistema, Producción será el primer experimento.
  • 20. ¿Cómo puedo hacer una prueba con millones de usuarios? Instalar JMeter en varios servidores Tener un servidor central Registrar las IPs en el servidor central http://jmeter.apache.org/usermanual/remote-test.html
  • 21. ¿Se puede probar una aplicación que recibe tweets? Se podría intentar simular con el JSR223 Sampler JSR223: Scripting for the Java Platform http://jmeter.apache.org/usermanual/component_reference.html#JSR223_Sampler https://blazemeter.com/blog/queen-jmeters-built-componentshow-use-beanshell Se puede programar un plugin para simular el stream https://github.com/apache/jmeter/blob/doc-v2_3_1/src/examples/org/apache/jmeter/ examples/sampler/ExampleSampler.java
  • 22. ¿Cuándo se deben iniciar las pruebas de estrés? Lo antes posible Fail-Fast: en cuanto se defina la arquitectura del sistema y se pueda tenerlo operando, así se puede validar