logo

Pruebas de rendimiento

En esta sección, aprenderemos sobre las pruebas de rendimiento, por qué las necesitamos, los tipos de pruebas de rendimiento y el proceso de prueba de rendimiento.

Los siguientes son los temas que entenderemos en esta sección:

¿Qué son las pruebas de rendimiento?

Es la parte más importante de las pruebas no funcionales.

Verificar el comportamiento de una aplicación aplicando cierta carga se conoce como prueba de rendimiento.

Generalmente, esta prueba define qué tan rápido responde el servidor a la solicitud del usuario.

Mientras realizamos pruebas de rendimiento en la aplicación, nos concentraremos en varios factores como Tiempo de respuesta, carga y estabilidad de la aplicación.

Tiempo de respuesta: El tiempo de respuesta es el tiempo que tarda el servidor en responder a la solicitud del cliente.

Carga: Aquí, Load significa que cuando número N de usuarios que utilizan la aplicación simultáneamente o envían la solicitud al servidor a la vez.

Estabilidad: Para el factor de estabilidad, podemos decir que cuando N-número de usuarios usan la aplicación simultáneamente durante un tiempo determinado.

¿Cuándo utilizamos pruebas de rendimiento?

Realizaremos pruebas de rendimiento una vez que el software esté estable y se haya movido a producción, y es posible que varios usuarios accedan a él simultáneamente; por esta razón, pueden ocurrir algunos problemas de rendimiento. Para evitar estos problemas de rendimiento, el evaluador realiza una ronda de pruebas de rendimiento.

Dado que se trata de pruebas no funcionales, lo que no significa que siempre usemos pruebas de rendimiento, solo realizamos pruebas de rendimiento cuando la aplicación es funcionalmente estable.

Nota: Las pruebas de rendimiento no se pueden realizar manualmente ya que no se pueden mantener sus resultados costosos y precisos.

Tipos de pruebas de rendimiento

Los siguientes son los tipos de pruebas de rendimiento:

leyendo desde un archivo csv en java
    Prueba de carga Pruebas de estrés Pruebas de escalabilidad Pruebas de estabilidad
Pruebas de rendimiento

Discutamos uno por uno para brindarle una comprensión completa de Carga, estrés, escalabilidad, y Estabilidad pruebas de rendimiento.

Prueba de carga

La prueba de carga se utiliza para verificar el rendimiento de una aplicación aplicando una carga que es menor o igual a la carga deseada, lo que se conoce como prueba de carga.

Por ejemplo: En la imagen de abajo, 1000 usuarios son los carga deseada , que es proporcionado por el cliente, y 3/segundo es el meta que queremos lograr al realizar una prueba de carga.

Pruebas de rendimiento

Pruebas de estrés

La prueba de estrés es una prueba que verifica el comportamiento de una aplicación aplicando una carga mayor que la carga deseada.

Por ejemplo: Si tomamos el ejemplo anterior y aumentamos la carga deseada de 1000 a 1100 usuarios, el objetivo es 4/segundo. Al realizar la prueba de esfuerzo en este escenario, pasará porque la carga es mayor (100 más) que la carga real deseada.

Pruebas de rendimiento

Pruebas de escalabilidad

Verificar el rendimiento de una aplicación aumentando o disminuyendo la carga en escalas particulares (no de un usuario) se conoce como pruebas de escalabilidad . Las pruebas de escalabilidad ascendente y descendente se denominan pruebas de escalabilidad.

Las pruebas de escalabilidad se dividen en dos partes que son las siguientes:

    Pruebas de escalabilidad ascendente Pruebas de escalabilidad descendente

Pruebas de escalabilidad ascendente

Es una prueba donde nosotros aumentar el número de usuarios en una escala particular hasta que lleguemos a un punto de colisión. Utilizaremos pruebas de escalabilidad ascendente para encontrar la capacidad máxima de una aplicación.

Pruebas de escalabilidad descendente

La prueba de escalabilidad descendente se utiliza cuando no se pasa la prueba de carga, luego comienza disminuyendo el no. de usuarios en un intervalo particular hasta lograr el objetivo. Para que sea fácil identificar el cuello de botella (error).

Pruebas de estabilidad

Comprobar el rendimiento de una aplicación mediante aplicar la carga durante un período de tiempo particular que se conoce como Pruebas de estabilidad .

Ejemplo de prueba de rendimiento

Tomemos un ejemplo en el que probar el comportamiento de una aplicación donde la carga deseada es menor que 1000 o igual a 1000 usuarios .

En la imagen de abajo podemos ver que el 100 arriba Los usuarios aumentan continuamente para comprobar el carga máxima , que también se llama pruebas de escalabilidad ascendente .

    Escenario 1:Cuando tengamos los 1000 usuarios como carga deseada, y el tiempo objetivo de 2,7/seg., estos escenarios pasarán al realizar la prueba de carga porque en las pruebas de carga, nos concentraremos en el no. de usuarios, y según el requisito es igual a 1000 usuarios.Escenario 2:En el siguiente escenario, aumentaremos la carga deseada en 100 usuarios y el tiempo objetivo aumentará a 3,5 segundos. Este escenario pasará si realizamos pruebas de estrés porque aquí, la carga real es mayor que (1100) la carga deseada (1000).Escenario 3:En esto, si aumentamos la carga deseada tres veces más
    1200 → 3,5seg: [no es menor o igual a la carga deseada por eso será Fallar ]
    1300 → 4seg: [no es menor o igual a la carga deseada. es decir., Fallar ]
    1400 → Se estrelló
Pruebas de rendimiento

Nota 1: Las pruebas de volumen y absorción son un tipo de prueba, pero no una prueba de rendimiento.

Prueba de volumen

La prueba de volumen es una prueba que nos ayuda a verificar el comportamiento de una aplicación insertando un volumen masivo de carga en términos de datos, lo que se conoce como prueba de volumen, y aquí nos concentraremos en la cantidad de velocidades de datos que en la cantidad de usuarios. .

Nota 2:
El volumen es una capacidad, mientras que la carga es una cantidad, es decir, la prueba de carga significa que no. de usuarios, y las pruebas de volumen significan cantidad de datos.

Prueba de remojo

En este tipo de prueba, verificaremos el comportamiento de una aplicación en el entorno, que no es compatible durante un período prolongado, lo que se conoce como prueba de remojo.

Generalmente, las pruebas de remojo son un tipo de prueba negativa porque ya sabemos que el servidor o el entorno no son compatibles.

matriz de cadenas

Proceso de prueba de rendimiento

Las pruebas de rendimiento no se pueden realizar manualmente ya que:

  • Necesitamos muchos recursos y se convirtió en un enfoque más costoso.
  • Y la precisión no se puede mantener cuando realizamos un seguimiento del tiempo de respuesta manualmente.

El proceso de prueba de rendimiento se completará en los siguientes pasos:

  • Identificar escenarios de rendimiento
  • Planificar y diseñar un guión de prueba de rendimiento.
  • Configure el entorno de prueba y distribuya la carga.
  • Ejecutar scripts de prueba
  • Resultado
  • Resultado de analisis
  • Identificar el cuello de botella
  • Volver a ejecutar la prueba
Pruebas de rendimiento

Si realizamos un flujo positivo Del proceso de prueba de rendimiento, podría seguir el siguiente proceso:

Identificar escenarios de rendimiento

En primer lugar, identificaremos los escenarios de rendimiento en función de los siguientes factores:

Escenarios más comunes: Significa que podemos encontrar los escenarios de rendimiento basados ​​en los escenarios, que se usan comúnmente como en el Aplicación de Gmail; vamos a realizar iniciar sesión, enviar entrada, enviar elementos, redactar un correo y cerrar sesión .

Escenarios más críticos: Los escenarios críticos significan que se utilizan con regularidad y son importantes para la aplicación empresarial de Gmail. iniciar sesión, redactar, bandeja de entrada y cerrar sesión .

Gran transacción de datos: Si tenemos una gran cantidad de datos, significa que n-número de usuarios utilizan la aplicación al mismo tiempo.

Una vez que identifiquemos los escenarios de rendimiento, pasaremos al siguiente paso.

Planificar y diseñar un guión de prueba de rendimiento.

En este paso, instalaremos las herramientas en la máquina del ingeniero de pruebas y accederemos al servidor de pruebas y luego escribiremos algún script de acuerdo con los escenarios de prueba y ejecutaremos la herramienta.

Una vez que hayamos terminado de escribir el guión, pasaremos al siguiente paso.

Configure el entorno de prueba y distribuya la carga.

Después de escribir los scripts de prueba, organizaremos el entorno de prueba antes de la ejecución. Y además, gestionar las herramientas, otros recursos y distribuir la carga según el 'Patrón de uso' o mencionar la duración y estabilidad.

Ejecutar scripts de prueba

Una vez que hayamos terminado con la distribución de la carga, ejecutaremos, validaremos y monitorearemos los scripts de prueba.

Resultado

Después de ejecutar los scripts de prueba, obtendremos el resultado de la prueba. Y verifique que el resultado cumpla con el objetivo en el tiempo de respuesta dado o no, y que el tiempo de respuesta pueda ser máximo, promedio y mínimo.

Si la respuesta no cumple con el tiempo requerido, entonces optaremos por el flujo negativo donde realizará los siguientes pasos:

int a cadena c++

Resultado de analisis

Primero, analizaremos el resultado de la prueba si cumple con el tiempo de respuesta o no.

Identificar el cuello de botella

Después de eso, identificaremos el cuello de botella (error o problema de rendimiento) ). Y el cuello de botella podría ocurrir debido a estos aspectos como el problema en el código, problema de hardware (disco duro, procesador RAM), problemas de red, y el problema de software (sistema operativo) . Y después de encontrar el cuello de botella, realizaremos tuning (arreglo o ajuste) para resolver este cuello de botella.

Volver a ejecutar la prueba

Una vez que solucionemos los cuellos de botella, vuelva a ejecutar los scripts de prueba y verifique si el resultado cumple con el objetivo requerido o no.

El problema ocurre en las pruebas de rendimiento.

Mientras se realizan pruebas de rendimiento en la aplicación, pueden ocurrir algunos problemas, y estos problemas también se denominan problema de rendimiento .

Los problemas de rendimiento son los siguientes:

    Problema de tiempo de respuesta Problema de escalabilidad Embotellamiento Problema de velocidad

Problema de tiempo de respuesta

El tiempo de respuesta significa la rapidez con la que el servidor responde a la solicitud del cliente. Si la solicitud del usuario no se completa en el tiempo de respuesta dado, es posible que el usuario pierda su interés en el software o aplicación en particular. Es por eso que la aplicación o software debe tener un tiempo de respuesta perfecto para responder rápidamente a la solicitud del usuario.

Problema de escalabilidad

Los problemas de escalabilidad ocurren cuando la aplicación no puede aceptar los n números de usuarios y las solicitudes de usuario esperadas al mismo tiempo. Por eso lo haremos pruebas de escalabilidad ascendente (comprobar la capacidad máxima de la aplicación) y pruebas de escalabilidad descendente (cuando la hora prevista no coincide con la hora real).

Embotellamiento

El cuello de botella es el nombre informal de un error que ocurre cuando la aplicación está limitada por un solo componente y crea un impacto negativo en el rendimiento del sistema.

Las principales causas de los cuellos de botella son problemas de software (problemas relacionados con el sistema operativo), problemas de hardware (problemas relacionados con el disco duro, la RAM y el procesador), y problema de codificación, etc.

Los siguientes son los cuellos de botella de rendimiento más comunes:

  • Utilización de la memoria
  • Uso del disco
  • utilización de la CPU
  • Limitaciones del sistema operativo
  • Utilización de la red

Problemas de velocidad

Cuando realizamos pruebas de rendimiento en la aplicación, la aplicación debe tener una velocidad más rápida para captar el interés y la atención del usuario porque si la velocidad de la aplicación es lenta, puede perder el interés del usuario en la aplicación.

Herramientas de prueba de rendimiento

Tenemos varios tipos de herramientas de prueba de rendimiento disponibles en el mercado, algunas de las cuales son herramientas comerciales y herramientas de código abierto.

Herramientas comerciales: LoadRunner[HP], WebLOAD, NeoLoad

Herramienta de código abierto: JMeter

Corredor de carga

Es una de las herramientas más poderosas de pruebas de rendimiento, que se utiliza para respaldar las pruebas de rendimiento para una amplia gama de protocolos, cantidad de tecnologías y entornos de aplicaciones.

Identifica rápidamente las causas más comunes de problemas de rendimiento. Y también predecir con precisión la escalabilidad y capacidad de la aplicación.

JMetro

El software Apache JMeter es una herramienta de código abierto, que es una aplicación enteramente Java diseñada para cargar el comportamiento de la prueba funcional y medir el rendimiento.

Generalmente, fue diseñado para probar aplicaciones web, pero ahora también se expandió a otras funciones de prueba.

Apache JMeter se utiliza para probar el rendimiento de recursos estáticos y dinámicos y de aplicaciones web dinámicas.
Se puede utilizar para reproducir la carga pesada en un servidor, red u objeto, grupo de servidores para probar su resistencia o analizar el rendimiento general bajo diferentes tipos de carga.

tamaño de fuente de látex

WebCARGAR

Herramienta de prueba WebLOAD utilizada para probar las aplicaciones web de prueba de carga, prueba de rendimiento y prueba de estrés.

La herramienta WebLOAD combina rendimiento, escalabilidad e integridad como un proceso único para la verificación de aplicaciones web y móviles.

neocarga

Neotys desarrolla una herramienta de prueba llamada NeoLoad. NeoLoad se utiliza para probar los escenarios de prueba de rendimiento. Con la ayuda de NeoLoad, podemos encontrar las áreas de cuello de botella en la web y el proceso de desarrollo de aplicaciones móviles.

La herramienta de prueba NeoLoad es más rápida en comparación con las herramientas tradicionales.

Aparte de ellos, algunas otras herramientas son Carga eléctrica, herramienta de tensión web, LoadUI Pro, StresStimulus, LoadView, LoadNinja y RedLine13. lo que ayuda a probar el rendimiento del software o una aplicación.