Al momento de evaluar la performance de un sistema se debe ejercitar el mismo con una determinada carga con el fin de evaluar su desempeño. Si bien se podría invitar a todos los potenciales usuarios del sistema y pedirles que “hagan sus actividades” en el sistema mientras los ingenieros evalúan el comportamiento del mismo, esto en la mayoría de los casos es imposible o tiene muchas desventajas.
Como mencionamos semanas atrás en una de las charlas, que tuvimos el gusto de compartir en el Testing Day, cuanto más distribuidos están los potenciales usuarios del sistema – más complejo será sincronizar la prueba (momento en que comenzamos la prueba). Y cuantos más sean los usuarios – más costosa será la “prueba” ya que se tendrá que pagar horas extras a cada una de las personas que vayan a participar de la simulación (seguramente no es viable parar la empresa, es decir las actividades cotidianas para realizar las simulaciones) y se necesitará una estación de trabajo para que esta persona pueda operar con el sistema… el caso en que esta estación de trabajo no sea un simple PC (sino por ejemplo un cajero automático – cómo se vió en un post anterior) también influirá en la cantidad de tiempo que tengo para utilizarlo ya que son horas que tendré que arrendar ese recurso (o no lo tengo disponible para otras actividades).
Por este motivo es necesario utilizar una herramienta que permita automatizar las distintas acciones que realizan los usuarios en el sistema para luego modelar la realidad de uso del mismo y poder estudiar su comportamiento. Para dicha automatización existen distintas herramientas Open Source y comerciales, que son de utilidad a la hora de hacer una prueba de performance.
Esta solución a diferencia de las simulaciones con usuarios reales (en vez de virtuales) tiene la ventaja de que es escalable. Es decir, una vez que una máquina capaz de generar carga alcanza su «tope» de cantidad de usuarios y sea necesario generar más carga, se pueden agregar más máquinas y se tiene un potencial para ejecutar cientos de usuarios MÁS. Esto no tiene asociado mayores costos que el tiempo de los responsables asignados para la configuración de la herramienta y la posterior ejecución de cada prueba… En próximos posts intentaremos responder las siguientes preguntas:
¿Por qué es necesaria una prueba de performance?
¿Por qué es necesario utilizar una herramienta?
¿Cómo elegir una herramienta adecuada?
Hasta la próxima! saludos.