Pregunta

Estoy a punto de empezar a probar una aplicación web de intranet.Específicamente, tengo que determinar el rendimiento de la aplicación.

¿Alguien podría sugerir estándares formales/informales sobre cómo puedo juzgar el rendimiento de la aplicación?

¿Fue útil?

Solución

Utilice alguna herramienta para pruebas de estrés y carga.Si estás usando Java, echa un vistazo a JMetro.Proporciona diferentes métodos para probar el rendimiento de su aplicación.Deberías centrarte en:

  • Tiempo de respuesta:Qué tan rápido se ejecuta su aplicación para solicitudes normales.Pruebe algunos casos de uso de lectura/escritura
  • Prueba de carga:Cómo se comporta su aplicación en momentos de alto tráfico.La herramienta enviará varias solicitudes (puede configurarlas correctamente) durante un período de tiempo.
  • Prueba de estrés:¿Su aplicación puede funcionar durante un largo período de tiempo?Esta prueba llevará su aplicación al límite

Empieza por esto, si te interesa, existen otros tipos de pruebas.

Otros consejos

Para probar el front-end, YSlow es excelente para obtener estadísticas sobre cuánto tiempo tardan sus páginas en cargarse desde la perspectiva del usuario.Se desglosa en estadísticas para cada solicitud HTTP específica, el tiempo que tomó, etc.Consíguelo en http://developer.yahoo.com/yslow/

Firebug, por supuesto, también es esencial.Puede perfilar su JS explícitamente o en tiempo real presionando el botón de perfil.Realizar optimizaciones cuando sea necesario y ver cuánto tiempo tardan en ejecutarse todas sus funciones.Esto cambió la forma en que mido el rendimiento de mi código JS. http://getfirebug.com/js.html

Realmente lo más importante en mi opinión es el tiempo de respuesta, pero otros indicadores que consideraría son el uso del procesador y la memoria versus el uso de la memoria.el número de usuarios/procesos simultáneos.También verificaría que todo funcione como se espera en condiciones normales y luego en carga máxima.Es posible que se encuentre con escenarios en los que una carga más alta provoque errores en la aplicación debido a que varias solicitudes se superponen entre sí.

Si realmente desea obtener información detallada, deberá ejecutar diferentes tipos de pruebas de carga/estrés.Probablemente querrá ver una prueba de carga por pasos (un aumento gradual de usuarios en el sistema a lo largo del tiempo) y una prueba de pico (un número significativo de usuarios accediendo al mismo tiempo donde casi nadie accedía antes).También ejecutaría pruebas en el servidor inmediatamente después de reiniciarlo para ver cómo afecta eso al sistema.

Probablemente también quieras consultar un concepto llamado HEAT (Pruebas de aplicaciones en entornos hostiles).Realmente esto muestra lo que sucede cuando alguna parte del sistema se desconecta.¿El sistema se degrada exitosamente?Éste debería ser un estándar clave.

Mi única sugerencia realmente importante es establecer qué se supone que debe hacer el sistema antes de realizar las pruebas.La razón principal es la rendición de cuentas.Haga que la gente admita que se supone que el sistema debe hacer algo y luego pruebe para ver si es cierto.Esto es clave porque la gente verá inmediatamente los resultados y ese será el punto de referencia básico de lo que es aceptable.

"Específicamente, tengo que determinar el rendimiento de la aplicación..."

Esto cierra el círculo de la cuestión de los requisitos, las expectativas capturadas de su comunidad de usuarios sobre lo que se considera razonable y eficaz.Los requisitos tienen varios componentes.

  1. Tiempo de respuesta general, "Bajo una carga de...El Sitio tendrá un tiempo de respuesta general inferior al x, y% del tiempo..."
  2. Tiempos de respuesta específicos, "Bajo una carga de...El procesamiento de la tarjeta de crédito tomará menos de z segundos, un% del tiempo..."
  3. Elementos de capacidad del sistema, "Bajo una carga de...CPU|Red|RAM|DISCO no deberá exceder el n% de la capacidad...."
  4. El perfil de carga, que es la combinación del número de usuarios y transacciones que se llevarán a cabo bajo el cual se recopilan medidas objetivas específicas para determinar el rendimiento del sistema.

Notará que los tiempos de respuesta y otras medidas no son absolutos.Siguiendo los principios de fabricación Six Sigma, el costo de pasar de 1 excepción en un millón a 1 excepción en mil millones es extraordinario y el costo de pasar a cero excepciones suele ser un costo que la organización promedio no puede soportar.Lo que se considera un tiempo de respuesta aceptable para una aplicación única para su organización probablemente será completamente diferente de una oferta altamente mercantilizada que es una aplicación pública orientada a Internet.Para soluciones altamente competitivas, las expectativas de tiempo de respuesta en Internet tienden a ser de 2 a 3 segundos, donde el abandono de los usuarios aumenta considerablemente.Esto ha disminuido en la última década de 8 segundos a 4 segundos y ahora al rango de 2-3 segundos.Algunas aplicaciones, como Facebook, buscan tiempos de respuesta casi imperceptibles en el rango inferior a un segundo por razones competitivas.Si busca un estándar estricto, simplemente no existe.

Algo que le ayudará a comprender es leer un par de puntos de referencia de la industria en cuanto a estilo, forma y función.

Configurar un conjunto sólido de pruebas de rendimiento que represente sus necesidades no es una cuestión trivial.Es posible que desee contratar a un especialista para que se encargue de esta fase de sus esfuerzos de control de calidad.

En su selección de herramientas, asegúrese de obtener una que pueda

  • Ejercita tu interfaz
  • Informe según sus requisitos
  • Usted o su equipo tienen las habilidades para usar
  • Puede recibir capacitación y asistirá con la bendición de la gerencia.

Si falla cualquiera de los cuatro elementos anteriores, usted también habrá comprado la herramienta más cara del mercado y contratado a la empresa más cara para implementarla.

¡Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top