Tutorial de pruebas de rendimiento

ยฟQuรฉ son las pruebas de rendimiento?
Test de rendimiento es un proceso de prueba de software que se utiliza para probar la velocidad, el tiempo de respuesta, la estabilidad, la confiabilidad, la escalabilidad y el uso de recursos de una aplicaciรณn de software bajo una carga de trabajo particular. El objetivo principal de las pruebas de rendimiento es identificar y eliminar los cuellos de botella en el rendimiento de la aplicaciรณn de software. Es un subconjunto de la ingenierรญa de rendimiento y tambiรฉn se conoce como "Pruebas de rendimiento".
El objetivo de las pruebas de rendimiento es comprobar la calidad de un programa de software.
- Speed (Rapidez) โ Determina si la aplicaciรณn responde rรกpidamente
- Global โ Determina la carga mรกxima de usuarios que la aplicaciรณn de software puede manejar.
- Estabilidad โ Determina si la aplicaciรณn es estable bajo cargas variables
ยฟPor quรฉ realizar pruebas de rendimiento?
Las caracterรญsticas y funcionalidades soportadas por un sistema de software no son la รบnica preocupaciรณn. El rendimiento de una aplicaciรณn de software, como su tiempo de respuesta, confiabilidad, uso de recursos y escalabilidad, sรญ importa. El objetivo de las pruebas de rendimiento no es encontrar errores sino eliminar los cuellos de botella en el rendimiento.
Las pruebas de rendimiento se realizan para proporcionar a las partes interesadas informaciรณn sobre su aplicaciรณn en cuanto a velocidad, estabilidad y escalabilidad. Mรกs importante aรบn, las pruebas de rendimiento descubren lo que se debe mejorar antes de que el producto salga al mercado. Sin pruebas de rendimiento, es probable que el software sufra problemas como: funcionamiento lento mientras varios usuarios lo utilizan simultรกneamente, inconsistencias entre diferentes sistemas operativos y poca usabilidad.
Las pruebas de rendimiento determinarรกn si su software cumple con los requisitos de velocidad, escalabilidad y estabilidad bajo las cargas de trabajo esperadas. Las aplicaciones enviadas al mercado con mรฉtricas de rendimiento deficientes debido a pruebas de rendimiento deficientes o inexistentes probablemente obtengan una mala reputaciรณn y no cumplan con los objetivos de ventas esperados.
Tambiรฉn, aplicaciones de misiรณn crรญtica como los programas de lanzamiento espacial o los equipos mรฉdicos que salvan vidas deben someterse a pruebas de rendimiento para garantizar que funcionen durante un largo perรญodo sin desviaciones.
Segรบn Dunn & Bradstreet, el 59 % de las empresas de Fortune 500 experimentan aproximadamente 1.6 horas de inactividad cada semana. Si se tiene en cuenta que la empresa promedio de Fortune 500 con un mรญnimo de 10,000 56 empleados paga 896,000 dรณlares por hora, la parte laboral de los costos de inactividad para una organizaciรณn de este tipo ascenderรญa a 46 XNUMX dรณlares semanales, lo que se traduce en mรกs de XNUMX millones de dรณlares al aรฑo.
Sรณlo un 5 minutos de inactividad Se estima que Google.com (19 de agosto de 13) le costarรก al gigante de las bรบsquedas tanto como $ 545,000.
Se estima que las empresas perdieron valor de ventas $ 1100 por segundo debido a una reciente Amazon Interrupciรณn del servicio web.
Por tanto, las pruebas de rendimiento son importantes. Para ayudarle con este proceso, consulte esta lista de herramientas de prueba de rendimiento.
Tipos de pruebas de rendimiento
Existen principalmente seis tipos de pruebas de rendimiento en las pruebas de software, que se explican a continuaciรณn.
- Prueba de carga - Comprueba la capacidad de la aplicaciรณn para funcionar bajo cargas de usuario anticipadas. El objetivo es identificar cuellos de botella en el rendimiento antes de que la aplicaciรณn de software entre en funcionamiento.
- Prueba de esfuerzo โ Implica probar una aplicaciรณn bajo cargas de trabajo extremas para ver cรณmo maneja el alto trรกfico o el procesamiento de datos. El objetivo es identificar el punto de ruptura de una aplicaciรณn.
- Pruebas de resistencia โ se realiza para garantizar que el software pueda manejar la carga esperada durante un largo perรญodo de tiempo.
- Prueba de picos โ prueba la reacciรณn del software ante grandes picos repentinos en la carga generada por los usuarios.
- Pruebas de volumen โ Bajo Prueba de Volumen grande no. de. Los datos se completan en una base de datos y se monitorea el comportamiento general del sistema de software. El objetivo es comprobar el rendimiento de la aplicaciรณn de software en diferentes volรบmenes de bases de datos.
- Prueba de escalabilidad โ El objetivo de las pruebas de escalabilidad es determinar la eficacia de la aplicaciรณn de software en su โampliaciรณnโ para soportar un aumento en la carga de usuarios. Ayuda a planificar la adiciรณn de capacidad a su sistema de software.
Problemas comunes de rendimiento
La mayorรญa de los problemas de rendimiento tienen que ver con la velocidad, el tiempo de respuesta, el tiempo de carga y la escasa escalabilidad. La velocidad suele ser uno de los atributos mรกs importantes de una aplicaciรณn. Una aplicaciรณn que se ejecuta con lentitud perderรก usuarios potenciales. Las pruebas de rendimiento garantizan que una aplicaciรณn se ejecute lo suficientemente rรกpido como para mantener la atenciรณn y el interรฉs del usuario. Eche un vistazo a la siguiente lista de problemas de rendimiento comunes y observe cรณmo la velocidad es un factor comรบn en muchos de ellos:
- Largo tiempo de carga โ El tiempo de carga normalmente es el tiempo inicial que tarda una aplicaciรณn en iniciarse. Por lo general, esto deberรญa mantenerse al mรญnimo. Si bien es imposible cargar algunas aplicaciones en menos de un minuto, el tiempo de carga debe mantenerse por debajo de unos pocos segundos si es posible.
- Mal tiempo de respuesta โ El tiempo de respuesta es el tiempo que transcurre desde que un usuario ingresa datos en la aplicaciรณn hasta que la aplicaciรณn genera una respuesta a esa entrada. Generalmente, esto deberรญa ser muy rรกpido. Nuevamente, si un usuario tiene que esperar demasiado, pierde interรฉs.
- Poca escalabilidad โ Un producto de software adolece de una escalabilidad deficiente cuando no puede manejar el nรบmero esperado de usuarios o cuando no se adapta a una gama suficientemente amplia de usuarios. Prueba de carga Se debe hacer para estar seguro de que la aplicaciรณn puede manejar la cantidad anticipada de usuarios.
- Cuellos de botella โ Los cuellos de botella son obstrucciones en un sistema que degradan el rendimiento general del mismo. Los cuellos de botella se producen cuando errores de codificaciรณn o problemas de hardware provocan una disminuciรณn en el rendimiento bajo ciertas cargas. Los cuellos de botella suelen deberse a una secciรณn de cรณdigo defectuosa. La clave para solucionar un problema de cuello de botella es encontrar la secciรณn de cรณdigo que causa la desaceleraciรณn e intentar solucionarlo allรญ. Los cuellos de botella generalmente se solucionan arreglando procesos que se ejecutan deficientemente o agregando hardware adicional. Alguno cuellos de botella de rendimiento comunes son
- Utilizaciรณn de la CPU
- Utilizaciรณn de la memoria
- Utilizaciรณn de la red
- OperaLimitaciones del sistema
- Uso del disco
Cรณmo hacer pruebas de rendimiento
La metodologรญa adoptada para las pruebas de desempeรฑo puede variar ampliamente, pero el objetivo de las pruebas de desempeรฑo sigue siendo el mismo. Puede ayudar a demostrar que su sistema de software cumple con ciertos criterios de rendimiento predefinidos. O puede ayudar a comparar el rendimiento de dos sistemas de software. Tambiรฉn puede ayudar a identificar partes de su sistema de software que degradan su rendimiento.
A continuaciรณn se muestra un proceso genรฉrico sobre cรณmo realizar pruebas de rendimiento.

Paso 1) Identifique su entorno de prueba
Conozca su entorno de prueba fรญsico, el entorno de producciรณn y las herramientas de prueba disponibles. Comprenda los detalles de las configuraciones de hardware, software y red utilizadas durante las pruebas antes de comenzar el proceso de prueba. Esto ayudarรก a los evaluadores a crear pruebas mรกs eficientes. Tambiรฉn ayudarรก a identificar posibles desafรญos que los evaluadores pueden encontrar durante los procedimientos de prueba de rendimiento.
Paso 2) Identificar los criterios de aceptaciรณn del desempeรฑo
Esto incluye objetivos y limitaciones de rendimiento, tiempos de respuesta y asignaciรณn de recursos. Tambiรฉn es necesario identificar criterios de รฉxito del proyecto fuera de estos objetivos y limitaciones. Los evaluadores deben estar facultados para establecer criterios y objetivos de desempeรฑo porque a menudo las especificaciones del proyecto no incluirรกn una variedad suficientemente amplia de puntos de referencia de desempeรฑo. A veces puede que no haya ninguno en absoluto. Cuando sea posible, encontrar una aplicaciรณn similar con la que comparar es una buena manera de establecer objetivos de rendimiento.
Paso 3) Planificar y diseรฑar pruebas de rendimiento
Determine cรณmo es probable que varรญe el uso entre los usuarios finales e identifique escenarios clave para probar todos los casos de uso posibles. Es necesario simular una variedad de usuarios finales, planificar datos de prueba de rendimiento y delinear quรฉ mรฉtricas se recopilarรกn.
Paso 4) Configurar el entorno de prueba
Prepare el entorno de prueba antes de la ejecuciรณn. Ademรกs, organice herramientas y otros recursos.
Paso 5) Implementar el diseรฑo de prueba
Cree las pruebas de rendimiento de acuerdo con su diseรฑo de prueba.
Paso 6) Ejecute las pruebas
Ejecutar y monitorear las pruebas.
Paso 7) Analizar, ajustar y volver a probar
Consolide, analice y comparta resultados de pruebas. Luego ajuste y pruebe nuevamente para ver si hay una mejora o una disminuciรณn en el rendimiento. Dado que las mejoras generalmente disminuyen con cada nueva prueba, detรฉngase cuando el cuello de botella sea causado por la CPU. Entonces es posible que tengas la opciรณn de considerar aumentar la potencia de la CPU.
Mรฉtricas de prueba de rendimiento: parรกmetros monitoreados
Los parรกmetros bรกsicos monitoreados durante las pruebas de rendimiento incluyen:
- Uso del procesador โ una cantidad de tiempo que el procesador pasa ejecutando subprocesos que no estรกn inactivos.
- Uso de memoria - Cantidad de memoria fรญsica disponible para los procesos en una computadora.
- Tiempo de disco โ Cantidad de tiempo que el disco estรก ocupado ejecutando una solicitud de lectura o escritura.
- Banda ancha - Muestra los bits por segundo utilizados por una interfaz de red.
- Bytes privados โ Nรบmero de bytes que un proceso ha asignado y que no se pueden compartir entre otros procesos. Se utilizan para medir el uso y las pรฉrdidas de memoria.
- Memoria comprometida โ cantidad de memoria virtual utilizada.
- Pรกginas de memoria/segundo โ nรบmero de pรกginas escritas o leรญdas en el disco para resolver fallas de pรกginas duras. Los fallos de pรกgina difรญciles se producen cuando se llama a un cรณdigo que no pertenece al conjunto de trabajo actual desde otro lugar y se recupera de un disco.
- Errores de pรกgina/segundo โ la velocidad general a la que el procesador procesa las pรกginas de error. Esto nuevamente ocurre cuando un proceso requiere cรณdigo externo a su conjunto de trabajo.
- Interrupciones de CPU por segundo โ es el nรบmero promedio de interrupciones de hardware que un procesador recibe y procesa cada segundo.
- Longitud de la cola de disco โ es el nรบmero promedio de solicitudes de lectura y escritura en cola para el disco seleccionado durante un intervalo de muestra.
- Longitud de la cola de salida de la red โ longitud de la cola de paquetes de salida en paquetes. Cualquier valor superior a dos significa un retraso y es necesario detener los cuellos de botella.
- Total de bytes de red por segundo โ Tasa de quรฉ bytes se envรญan y reciben en la interfaz, incluidos los caracteres de encuadre.
- Tiempo de respuesta - Tiempo desde que un usuario ingresa una solicitud hasta que se recibe el primer carรกcter de la respuesta.
- Rendimiento โ Calificar una computadora o red que recibe solicitudes por segundo.
- Cantidad de agrupaciรณn de conexiones โ el nรบmero de solicitudes de usuarios que satisfacen las conexiones agrupadas. Cuantas mรกs solicitudes cumplan las conexiones en el grupo, mejor serรก el rendimiento.
- Sesiones activas mรกximas โ el nรบmero mรกximo de sesiones que pueden estar activas a la vez.
- Proporciones de aciertos โ Esto tiene que ver con el nรบmero de SQL declaraciones que se manejan mediante datos almacenados en cachรฉ en lugar de costosas operaciones de E/S. Este es un buen punto de partida para resolver problemas de cuellos de botella.
- Golpes por segundo โ el no. de visitas a un servidor web durante cada segundo de una prueba de carga.
- Segmento de retroceso โ la cantidad de datos que se pueden revertir en cualquier momento.
- Bloqueos de base de datos โ El bloqueo de tablas y bases de datos debe ser monitoreado y ajustado cuidadosamente.
- Las mejores esperas โ son monitoreados para determinar quรฉ tiempos de espera se pueden reducir cuando se trata de quรฉ tan rรกpido se recuperan los datos de la memoria
- Nรบmero de hilos โ El estado de una aplicaciรณn se puede medir mediante el no. de subprocesos que se estรกn ejecutando y actualmente activos.
- Recolecciรณn de basura - Tiene que ver con la devoluciรณn de la memoria no utilizada al sistema. Es necesario supervisar la eficiencia de la recolecciรณn de basura.
Ejemplo de casos de prueba de pruebas de rendimiento
- Caso de prueba 01: Verificar que el tiempo de respuesta no sea mayor a 4 segundos cuando 1000 usuarios acceden al sitio web simultรกneamente.
- Caso de prueba 02: Verifique que el tiempo de respuesta de la aplicaciรณn bajo carga estรฉ dentro de un rango aceptable cuando la conectividad de la red sea lenta
- Caso de prueba 03: Verifique la cantidad mรกxima de usuarios que la aplicaciรณn puede manejar antes de que falle.
- Caso de prueba 04: Verifique el tiempo de ejecuciรณn de la base de datos cuando se leen/escriben 500 registros simultรกneamente.
- Caso de prueba 05: Verifique el uso de CPU y memoria de la aplicaciรณn y del servidor de base de datos en condiciones de carga mรกxima
- Caso de prueba 06: Verifique el tiempo de respuesta de la aplicaciรณn en condiciones de carga baja, normal, moderada y pesada.
Durante la ejecuciรณn de la prueba de rendimiento real, los tรฉrminos vagos como rango aceptable, carga pesada, etc. se reemplazan por nรบmeros concretos. Los ingenieros de rendimiento establecen estos nรบmeros segรบn los requisitos comerciales y el panorama tรฉcnico de la aplicaciรณn.
Herramientas de prueba de rendimiento
Existe una amplia variedad de herramientas de prueba de rendimiento disponibles en el mercado. La herramienta que elija para las pruebas dependerรก de muchos factores, como los tipos de protocolo admitidos, el costo de la licencia, los requisitos de hardware, la compatibilidad de la plataforma, etc. A continuaciรณn se muestra una lista de las herramientas de prueba mรกs utilizadas.
- HP LoadRunner โ es la herramienta de prueba de rendimiento mรกs popular del mercado actual. Esta herramienta es capaz de simular cientos de miles de usuarios, sometiendo aplicaciones a cargas reales para determinar su comportamiento bajo las cargas esperadas. corredor de carga cuenta con un generador de usuarios virtuales que simula las acciones de usuarios humanos reales.
- Jmetro โ una de las herramientas lรญderes utilizadas para pruebas de carga de servidores web y de aplicaciones.
Preguntas Frecuentes
Conclusiรณn
In Ingenierรญa de SoftwareLas pruebas de rendimiento son necesarias antes de comercializar cualquier producto de software. Garantiza la satisfacciรณn del cliente y protege la inversiรณn del inversor contra fallos del producto. Los costos de las pruebas de desempeรฑo generalmente se compensan con creces con una mayor satisfacciรณn, lealtad y retenciรณn del cliente.



