Cómo obtener datos sobre el rendimiento de nuestras aplicaciones con maven

¿Tenéis que obtener datos de rendimiento de vuestro proyecto y no queréis llenar vuestros tests de “System.currentTimeMillis()”? Pues aquí tenéis la solución!

Existe la posibilidad de configurar el tan socorrido plugin maven-surefire para que a la hora de ejecutar los tests los tests de vuestro proyecto (por lo tanto no hará falta implementar tests específicos para medir el rendimiento), se haga uso JIP (Java Interactive Profiler) que nos permitirá obtener una serie de estadísticas sobre la ejecución de dichos tests.  Pero… ¿cómo configuro maven-surefire-plugin para que utilice JIP? Pues es muy sencillo, bastará con realizar los siguientes pasos:

  1. Crear una carpeta profile en el directorio src/test de vuestro proyecto.
  2. Incorporar a dicha carpeta los ficheros profile.jar y profile.properties que podréis encontrar en la distribución de JIP.
  3. En el fichero de configuración habrá que modificar las siguientes propiedades:
    # Indicar el fichero donde se volcarán los resultados del profiler:
    file=target/profile.txt
    # Excluir del profiling los paquetes de testng y de maven para evitar excesivo "ruido" en los resultados exclude=org.testng,org.apache.maven
  4. Modificar la configuración de maven-surefire-plugin para que haga uso de JIP, para ello habrá que añadir la siguiente línea en la sección configuration:
    -javaagent:src/test/profile/profile.jar -Dprofile.properties=src/test/profile/profile.properties

5. Ejecutar mvn test para comprobar que todo está correctamente configurado. Si todo ha ido bien debería existir en el directorio target del proyecto un fichero profile.txt con los resultados.

NOTA: En determinadas máquinas virtuales de Apple parece haber problemas con las rutas relativas para establecer el agente JIP, habría que utilizar rutas absolutas. Con la máquina virtual 1.5.0_16 sobre Mac OS X 10.4.11 no se ha observado dicho problema.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s