Tips y guía para empezar con pruebas de rendimientos con JMeter

Ya hemos hablado de las Pruebas de rendimiento, que un QA debería conocer. Ahora le toca el turno a que herramientas podríamos utilizar para ejecutar dichas pruebas. La más conocida, usada y que es de código abierto es JMeter.

JMeter, simula el comportamiento del navegador (aunque no es un navegador!) Enviando solicitudes a servidores web o de aplicaciones para diferentes cargas. JMeter también puede analizar las respuestas. En local, puedes escalar hasta aproximadamente 100 usuarios virtuales, pero puede subir a más de 1.000.000 si utilizas herramientas basadas en la nube, como Blazemeter.

No voy a utilizar este Post, para hablar de cómo funciona esta herramienta, porque ya hay muchos sitios especializados dónde se habla muy bien de ello. Uno de los tutoriales que usé como guía, creo que es muy completo y me fue muy bien es: JMeter Tutorial.

Mi idea, es exponer una serie de consejos antes de empezar a utilizar la herramienta:

  1. Tal como ya he dicho en alguna otra ocasión, la herramientas no sirven de nada sin definir antes una buena estrategia de cómo serán las pruebas, analizar que scripts gravaremos, y definir los escenarios de carga y su ejecución.
  2. Utiliza siempre la última versión de JMeter.
  3. Usa el gravador de pruebas de JMeter. Cuando empecé, el principal problema que me encontré fue en configurar la herramienta para gravar los escenarios de pruebas ya que usa los mismos puertos que el navegador, y cada vez que quieres hacer pruebas de rendimiento debes deshabilitarlos.
  4. Utiliza el número correcto de hilos y no confundas, Thread Count con Loop Count. Tener 10 usuarios en 1 bucle, no es lo mismo que 1 usuario en 10 bucles. Aunque puede parecer obvio, es un error común.
  5. Agregar elementos de configuración, cómo HTTP Cookie Manager, para mantener la sesión de usuario para las solicitudes posteriores después del inicio de sesión
  6. Uso correcto de la Correlación, ya que en JMeter es un poco confuso. Por ejemplo, si las pruebas generan muchos datos dinámicos como id de sesión, debemos estar seguros que este id sea único para la sesión de usuario.
  7. Testea pronto y a menudo.
  8. Enfócate en los usuarios, no sólo en los servidores.
  9. Crea pruebas realistas.
  10. Monitoreo y crea Alertas.
  11. Escoger bien El Listener. No hay necesidad de añadir muchos listener y escribir los resultados en un informe.
  12. Utiliza aserciones para que JMeter te informe más detalladamente sobre que fallos se encuentra en la ejecución, pero sin pasarse, ya que podría afectar al rendimiento de las pruebas, por uso excesivo de memoria.
  13. Es muy importante ejecutar siempre las prueba en modo NON-GUI, sinó se consume mucha memoria.