La semana pasada participé en una conferencia online con una charla titulada “Adding performance verifications in Continuous Delivery”. Lo más asombroso es que la conferencia fue una maratón: ¡24 horas corridas de charlas! Esto fue una conferencia online organizada por Neotys (a quienes tuve el placer de visitar cuando fui al WOPR, en Marsella, Francia). Henrik y Stephan estuvieron moderando toda la conferencia, y a medida pasaba el tiempo se iban sumando oradores de distintas partes del mundo, para los cuales el horario de la conferencia era conveniente (no así para los organizadores que estuvieron de 5am a 5am, ¡una locura!).
Todas las charlas eran relacionadas a temas de performance testing. No pude ver muchas, estoy esperando que las dejen online para poder repasarlas, hay muchas que tengo grandes expectativas.
En mi caso estuve exponiendo sobre algunas experiencias y consejos en la tarea de agregar validaciones de performance en un pipeline de Continuous Delivery. Más información sobre la charla acá.
Te comparto las slides que utilicé:
Más adelante estará el video de la transmisión y lo agregaré por acá mismo.
En la charla comencé haciendo una introducción a las pruebas de performance según el enfoque tradicional, en cascada, mostrando por qué no es un enfoque válido para cuando estamos trabajando en Continuous Delivery. Luego, hablé de algunos puntos importantes para agregar validaciones de performance en este esquema:
- Cómo seleccionar la herramienta (que sea CI-friendly, como Taurus, Gatling, Artillery).
- Definiendo pruebas al nivel adecuado, con validaciones unitarias (endpoints probados aisladamente) ejecutadas frecuentemente, pruebas de integración (diferentes endpoints en concurrencia) y con pruebas de carga end-to-end.
Por último, mencioné la importancia de probar también del lado del cliente y no solo la concurrencia en el backend. Para esto hay diferentes herramientas para todo lo que es web, y para mobile sugerí el uso de Apptim para hacer pruebas exploratorias y obtener datos del comportamiento de la aplicación nativa del lado del cliente.