2010-03-01 14 views
5

nuestra organización está buscando una herramienta para ayudar con las pruebas de rendimiento en cada lanzamiento. Enviamos un montón de software nuevo y queremos asegurarnos de que el rendimiento en las funciones clave no se haya ralentizado desde la última versión de producto. Tenemos código en C# y Java. Esto puede ser cualquier cosa desde:cuál es la mejor herramienta para la prueba de regresión de rendimiento

  1. cuando funciono esta función se necesita < 2 segundos
  2. cuando funciono este conjunto de funciones de los totales < 5 segundos
  3. etc. .

Es mejor hacerlo utilizando nuestra unidad básica que prueba la integración continua (nunit, junit, team city) con comprobaciones de rendimiento escritas a mano o hay herramientas específicas que pueden ayudar a enfocarse en esta área.

¿Alguna sugerencia?

+0

no estoy al tanto de cualquier herramienta y estoy interesado en las respuestas que vas a llegar hasta aquí. Pero las pruebas unitarias no serían el lugar adecuado porque el rendimiento varía según dónde se ejecutan. Por ejemplo, en una máquina de desarrollador, las pruebas pueden fallar solo porque el desarrollador tiene otros procesos ejecutándose en segundo plano. –

Respuesta

3

En mis proyectos (que tienden a usar Spring), utilizo el AOP y el PerformanceMonitorInterceptor.

Si bien no puedes usar Spring, definitivamente es un buen código para mirar y puede basar una versión propia. Encontré AOP perfecto para esta situación porque no satura las llamadas de función reales. Si tiene una aplicación por niveles, puede colocar estos monitores de rendimiento en cada nivel. (Típicamente para mis aplicaciones web, lo pongo como mi capa de acceso de datos para que pueda supervisar el rendimiento de consulta de base de datos.)

0

Lo que usamos es python para escribir scripts + extenso logging para generar registros XML que luego pueden importarse en una hoja de cálculo.

0

He estado retocando con una herramienta llamada 'Basher' que le permite escribir "tareas" que el sistema recoge y luego ejecuta durante un tiempo configurable (para permitir que la JVM se caliente, por ejemplo) y luego realiza una ejecución, registrando tiempos de ejecución de tareas, promedios y similares.

La versión 1.0 ha estado en silencio por un tiempo y si es que quiere echar un vistazo, que está disponible en http://basher.sourceforge.net

La versión tronco contiene algunas mejoras - hay una integración experta, con configuraciones que se especifican en el pom.xml, los huesos de un framework de informes, etc.

Cuestiones relacionadas