En esta página intento ordenar toda la información que he ido publicando y que te sirve para aprender cómo hacer pruebas de performance (también conocidas como pruebas de rendimiento, pruebas de carga, pruebas de estrés, stress testing, load testing…).
Introducción
Primero veamos las básicas de las pruebas de performance. Lo mejor, es arrancar por acá, ¿Cómo funciona una herramienta de simulación de carga para pruebas de performance?
Para arrancar también te recomiendo leer mi Libro de testing: Introducción a las Pruebas de Sistemas de Información. Lo puedes bajar gratis en PDF y tiene todo un capítulo bien introductorio y completo a lo que son las pruebas de performance.
Creo que otra buena introducción es la que muestra este post ¿Cómo armar un plan de pruebas de performance? Ahí verás cómo planificar una prueba, pudiendo definir los escenarios de carga en base al tipo de pruebas que quieras ejecutar.
Para entender de pruebas de performance, es necesario entender de los protocolos que estaremos automatizando. En mi experiencia, la gran mayoría de las veces es HTTP, con lo cual te recomiendo ver y usar HTTP Debugger: Charles vs Fiddler.
Es importante también tener una visión global y estratégica, para lo cual te recomiendo leer Asesorar sobre pruebas de performance, y luego Pirámide para las Pruebas de Performance.
Otros posts que me parecen interesantes:
JMeter
Para aprender más de JMeter, te recomiendo los cursos de BlazeMeter University o nuestro curso en Abstracta Academy.
Algunos otros posts que te pueden interesar para profundizar:
- Cambios de comportamiento entre JMeter 4 y 5.
- Pruebas de performance sobre HLS (streaming de video).
- Connect time en JMeter.
- How-to JMeter: Ajustar carga en tiempo de ejecución.
- Nuevos Plugins de JMeter y Convertir Scripts de Load Runner a JMeter y Selenium.
- Los tiempos de respuesta de JMeter incluyen los tiempos de embedded resources
- Experimentando con Gatling y JMeter – Resultados.
- Manejo de hilos y conexiones: Gatling vs JMeter.
- HTTP Authorization Manager
O podés revisar la categoría JMeter.
Gatling
Gatling es una herramienta open source para simulación de carga para pruebas de performance. Los test se implementan en lenguaje Scala y soporta HTTP/S, JMS y JDBC.
Acá vas a encontrar un tutorial súper completo de Gatling, todo en español. Lo preparamos y seguimos alimentando en base a las experiencias usando la herramienta en diferentes proyectos con los ingenieros de performance de Abstracta.
Monitorización y Análisis
Para hacer pruebas de performance no alcanza con simular carga, es necesario entender qué le pasa al sistema, cómo se comporta, dónde están los cuellos de botella. Te dejo acá algunos post que te pueden ayudar a ver qué herramientas son útiles para estas tareas:
- Cuello de botella o nada.
- ¿Cómo obtener tiempos de respuesta en Tomcat e IIS?
- Aprender New Relic usando un sistema con problemas de performance.
- La importancia de validar la infraestructura de pruebas.
- Aplicaciones con mucha infraestructura.
- GoAccess: herramienta opensource para analizar accesslogs.
- Monitorizar una aplicación GeneXus .NET con APM: NewRelic vs Dynatrace.
- Optimizando un sitio WordPress con Cloudflare gratis.
- Alertas en NewRelic Synthetics: verificar la salud de sitios web desde distintos puntos del mundo (gratis).
Hay conceptos matemáticos que son importantes de entender para analizar datos y comportamientos, acá algunos:
- Little’s law y Earlang aplicados a performance testing.
- Promedio, desviación estándar y percentiles: métricas para testing de performance.
Performance del lado del browser
Hasta ahora venimos hablando de pruebas de performance donde se analiza el servidor ante concurrencia. También es importante analizar qué pasa en el cliente y cómo se puede optimizar. Te recomiendo comenzar acá: Analizar client side performance con PageSpeed y Yslow.
Pruebas de performance en mobile
Te recomiendo ver esta Charla en Córdoba (Argentina): testing exploratorio y performance en mobile. En la segunda parte estuve hablando específicamente de pruebas de performance en aplicaciones móviles.
Hace años que estamos trabajando en una herramienta (que podés descargar gratis) para analizar la performance del lado del cliente. Se llama Apptim (tal vez antes la pudiste haber conocido como Monkop).
Pruebas de performance en CI/CD
He compartido mucho material también de cómo integrar las pruebas de performance a tu pipeline de Integración Continua. Una muy buena introducción es esta Pruebas de Performance en Integración Continua.
Luego hay otros posts que te pueden servir, quizá más orientados a herramientas. Por ejemplo:
- Cómo usar Taurus y Jenkins para pruebas de performance en Integración Continua
- Pruebas de performance con Taurus en Integración Continua con Travis-CI.
Otros posts relacionados:
Curso de Abstracta Academy
Nosotros tenemos un curso online de performance en JMeter y Blazemeter en nuestra plataforma Abstracta Academy.
Si querés saber más qué aprenderás, acá hay un resumen hecho por Valeria cuando completó el curso.
Charlas
Aquí te dejo algunas de las charlas que he dado sobre pruebas de performance:
- Charla en Neotys PAC: Adding performance verifications in Continuous Delivery.
- Video del webinar de Pruebas de Performance en CI/CD (la misma pero en español).
- Ejecutando pruebas de performance todos los días y a bajo costo.
- GX28: Charla “Pruebas de Performance en Integración Continua” (misma estrategia pero enfocada al mundo GeneXus).
- Webinar: Pruebas de mainframe con herramientas open source (esta en particular no la di yo, pero la dio Roger de Abstracta, que es uno de los que está trabajando en el desarrollo de plugins de JMeter).
- Testing de Performance: Los nuevos desafíos tecnológicos (charla de dos abstracteros en TestingUY 2017).
- Participación en la NetConfUy: charla de performance en mobile específica para plataforma Microsoft
Trabajo Práctico del Taller de Estrategia de Pruebas de Performance
Diseño de Documento de Estrategia de Pruebas de Performance
En este documento te planteo un trabajo práctico para ejercitar el diseño de una estrategia de pruebas de performance, que espero que con todo este material ahora seas capaz de realizar en mejor manera.