Te comparto las slides de la charla que dí en Agile Testing Days USA 2018, titulada Challenges to Effective Performance Testing in CI.
Si bien esta charla, con este título, la he dado varias veces en español, terminé agregando varias cosas más, como para no repetirme a mí mismo. Esa exigencia me lleva a razonar cosas de otra forma, generar conversaciones bien interesantes con la gente a la que le pido feedback, sobretodo pensando en cómo transmitir algunas ideas. Siempre disfruto del proceso de creación de una nueva charla o de un nuevo curso.
Considerando el público que iba a tener, principalmente gente de Estados Unidos y Europa, comencé la charla hablando de Uruguay. Contando cosas básicas como que estamos a 14 horas de distancia, pero solo una hora de diferencia en el time zone con respecto a Boston. Siempre hemos sido reconocidos por el fútbol, la carne y nuestras playas, pero en los últimos años también hemos sido reconocidos por liderar algunos cambios sociales a nivel de América Latina, tal como la legalización de la marihuana, del aborto, del matrimonio igualitario, y también por implementar el One Laptop Per Child a través del Plan Ceibal, donde todo niño estudia con una computadora. Además de todo esto, podemos estudiar en la Universidad de forma gratuita. Todos estos aspectos me llenan de orgullo, tanto y más que la selección Uruguaya de fútbol, la cual hizo un excelente papel en este mundial, a pesar que hace momentos acabamos de perder contra Francia.
Estuve conversando un poco también del TestingUY, de modo de invitar a los asistentes a que vengan a este evento gratuito, donde hemos tenido asistentes y speakers internacionales durante estos 5 años en los que lo organizamos.
Los puntos principales de la charla fueron:
- Introducción a cómo se hacen las pruebas de performance, qué objetivo se persigue, qué tipo de herramientas se necesitan y cómo funcionan.
- Al querer agregar pruebas de performance en un pipeline, me resulta importante considerar herramientas que tengan un lenguaje de scripting basado en texto o código (como Taurus o Gatling). El problema de JMeter (que para mí es la mejor herramienta de todas) es que el script se prepara con un modelo gráfico que se guarda en un XML, con lo cual no es práctico comparar versiones en Github o lo que se use para repositorio de código.
- Presenté un modelo en el cual es posible basarse para definir una estrategia de pruebas de performance en integración continua, donde la idea es tener pruebas más unitarias, a nivel de capa de servicios, que se ejecuten a diario, y por otro lado tener simulaciones de usuarios que se ejecuten con menor frecuencia (ya que son pruebas más caras de hacer y más difíciles de mantener).
- Por último, presenté una forma en la que se pueden diseñar las pruebas, más que nada en cuanto a la cantidad de threads a simular y cómo configurar las assertions. Esto, basado en lo que aprendí cuando trabajé en Shutterfly.
Además de las distintas cosas comentadas, algo importante es intentar mantener el esquema de pruebas lo más simple posible, y no generar una sobreingeniería para poder chequear la performance.
La experiencia de participar en este evento, y en particular dando una charla, realmente fue algo que valoro mucho, lo sufrí y lo disfruté, así que espero poder repetirlo.