Modelado de escenarios a partir de logs W3C

Presentamos una nueva técnica para la generación de escenarios para pruebas de performance de aplicaciones y servicios web. La misma se basa en la generación de escenarios realistas del uso del sistema, mediante el procesamiento de los logs obtenidos del servidor de aplicación. Esta técnica permite, por ejemplo, probar diferentes escenarios de expansión de cantidad de usuarios, o ensayar plataformas de hardware alternativas para un sistema.

La simulación está basada en un modelo de Markov de largo variable que se estima a partir de los logs, generando simulaciones que son estadísticamente similares al comportamiento de usuarios reales.

Prerrequisitos

Los prerrequisitos inherentes a la aplicación de esta metodología son:

  1. Disponer de logs en formato W3C de la aplicación por un período que capture satisfactoriamente el uso real de la aplicación, por ejemplo un mes.
  2. Implementar un modelo  de uso realista (RUM del inglés realistic unified model) para las funcionalidades que se desean incluir en la prueba, que permitirá localizar su utilización en los logs.

Generación de escenarios

Contamos con una herramienta web desarrollada en Java/Spring que permite ingresar el modelo RUM y los logs W3C, a partir de los cuales se ejecutarán los procesos de parseo y simulación, obteniendo como resultado un CSV con el guión para la cantidad de usuarios virtuales que se deseen ejecutar. El guión incluirá la lista ordenada de funcionalidades del RUM a invocar, así como los tiempos de espera involucrados en cada transacción.

Ejecución de pruebas

El resultado de la generación de escenarios es independiente de la herramienta que se desee utilizar para ejecutar las pruebas, por lo tanto existe total libertad para escoger la herramienta de testing. La ejecución del guión deberá ser implementada en el lenguaje de scripting utilizado por la herramienta escogida. Se cuenta con un generador de scripts en JMeter que mapea está nueva técnica.

Ventajas de la metodología

La principal ventaja que obtenemos de la aplicación de esta metodología y herramientas es la de generar escenarios realistas que están basados en el uso real de la aplicación.

El proceso de simulación nos asegura que la probabilidad de aparición de cada funcionalidad y el orden en el que éstas aparezcan será estadísticamente representativo del uso que realmente se le da a la aplicación bajo prueba por parte de los usuarios.

Este trabajo es uno de los frutos de una intensa investigación en el marco del proyecto de grado “Modelado y ejecución de pruebas de performance” y años de experiencia en distintas áreas. El proyecto desarrollado por el Ing. Nicolas Diaz y Gabriel Barbartto fue tutoreado por el Dr. Ing. Álvaro Martín, Ing. Gustavo Vázquez e Ing. Gustavo Guimerans.

Gustavo Guimerans