En este artículo, vamos a discutir los aspectos principales del rendimiento en las pruebas de rendimiento.
Antes de comenzar con los detalles, echemos un vistazo a algunos elementos esenciales de las pruebas de rendimiento.
Las pruebas de rendimiento son importantes porque:
Puede comenzar las pruebas de rendimiento lo antes posible en las etapas de desarrollo de su aplicación de software. De esta manera, puede optimizar su servidor web y evitar costos comerciales en etapas posteriores.
Descubrir los problemas de rendimiento después de la implementación de la aplicación significa muchas horas de trabajo para corregir los problemas. Por lo tanto, puede ser muy costoso.
Tan pronto como las páginas web básicas de la aplicación funcionen, el equipo de control de calidad debe realizar las pruebas de carga iniciales. A partir de ese momento, deben realizar pruebas de rendimiento periódicamente para cada compilación.
Existen diferentes herramientas y criterios para las pruebas de rendimiento de las aplicaciones. Aquí hablaremos de una medida importante, es decir, el rendimiento.
Cada aplicación de software o sitio web tiene muchos usuarios que realizan diferentes solicitudes. Los evaluadores deben asegurarse de que la aplicación cumpla con la capacidad requerida de solicitudes antes de lanzarse.
Hay algunos conceptos básicos de pruebas de rendimiento que deben medirse durante el proceso. El rendimiento es uno de ellos . Averigüemos qué es el rendimiento en las pruebas de rendimiento.
Antes de comenzar la prueba, debemos establecer un objetivo de rendimiento de rendimiento realista, para que podamos obtener resultados más precisos y confiables.
Estos son algunos factores importantes para determinar un rendimiento realista:
Aquí, explicaremos el concepto de rendimiento con la ayuda de un ejemplo de la vida real. Imagina que hay un puesto de comida rápida llamado "Yummy Burgers". Sirven hamburguesas y papas fritas para los clientes.
Digamos que "Yummy Burgers" tiene tres trabajadores en el puesto, y cada trabajador siempre tarda 5 minutos en servir la comida a un cliente.
Entonces, si tienen tres clientes en fila para ser atendidos por tres trabajadores, significa que "Yummy Burgers" puede servir comida a tres clientes en 5 minutos.
Por lo tanto, si necesitamos hacer un informe de rendimiento de "Yummy Burgers", mostraría que su rendimiento es de tres clientes cada cinco minutos.
El dilema de Yummy Burgers es que, sin importar cuántos clientes estén esperando por la comida, el número máximo que pueden manejar durante un período de tiempo específico siempre será el mismo, es decir, tres. Este es el rendimiento máximo .
A medida que más clientes hacen fila para la comida, deben esperar su turno, creando una cola.
El mismo concepto se aplica a la prueba de una aplicación web.
Si una aplicación web recibe 100 solicitudes por segundo, pero solo puede manejar 70 solicitudes por segundo, las 30 solicitudes restantes deben esperar en una cola.
En las pruebas de rendimiento, indicamos el rendimiento como "Transacciones por segundo" o TPS .
El uso de Apache JMeter es bastante popular para probar el rendimiento de una aplicación de software. JMeter es útil para determinar la cantidad máxima de usuarios simultáneos que la aplicación puede manejar y también proporciona un análisis gráfico para las pruebas de rendimiento.
JMeter proporciona muchas formas de registrar el valor del rendimiento. Aquí hay algunos oyentes de JMeter que puede usar para este propósito:
JMeter también proporciona un componente de temporizador, ' Temporizador de rendimiento constante' , que puede usar para establecer el valor de Transacciones por segundo (TPS) para probar la carga de la aplicación.
Ahora, mostraremos el uso del rendimiento en la prueba de rendimiento usando JMeter. Digamos que vamos a realizar una prueba de muestra con 100 subprocesos simultáneos y realizar un seguimiento del valor del rendimiento.
Supongamos que tenemos la última versión de JMeter instalada en nuestro sistema y ya hemos realizado todas las demás configuraciones necesarias. Ahora, tenemos que construir un plan de prueba.
En esta prueba, vamos a definir cinco elementos ThreadGroup. Cada uno de estos elementos tendrá un tiempo de aceleración diferente, es decir, 0, 15, 25, 35 y 45. El tiempo de aceleración es la duración para iniciar cada subproceso. Configuraremos 100 usuarios en estos elementos ThreadGroup.
Si queremos configurar una mayor cantidad de usuarios, se requerirá más tiempo de aceleración.
Estos grupos de subprocesos tendrán una muestra HTTP que generará solicitudes en la página de inicio de un sitio web de muestra (supongamos que www.samplesite.com).
En el caso de uso 1, tenemos un elemento ThreadGroup que está configurado con 100 subprocesos y su tiempo de aceleración es 0.
Tendrá el campo "Número de subprocesos" establecido en 100. Esto significa que 100 usuarios enviarán solicitudes a la vez. De manera similar, también podemos configurar los 4 subprocesos restantes y establecer su tiempo de aceleración como 15, 25, 35 y 45. Además, nombrar las muestras para cada grupo de subprocesos.
Como se mencionó anteriormente, estas muestras de HTTP apuntarán a la página de inicio del sitio web de muestra.
Es necesario ejecutar estos grupos de subprocesos en una secuencia adecuada. Para ello, seleccione "Plan de prueba" en el panel de control y marque el campo "Ejecutar grupos de subprocesos de forma consecutiva".
"Informe agregado" es un oyente que se utiliza para analizar y observar los resultados de la prueba. Para usar este oyente, haga clic derecho en "Plan de prueba" y seleccione:
Agregar → Oyente → Informe agregado
Luego haga clic en el icono de inicio para ejecutar la prueba.
Ahora, veamos cómo comprender los resultados del rendimiento del informe agregado.
El primer grupo de subprocesos con tiempo de aceleración 0 muestra que todos los subprocesos ponen una carga instantánea en el servidor al comenzar a la vez. Este escenario tiene un rendimiento bastante alto, pero no es práctico. Por lo tanto, esto no mostrará una salida realista.
El segundo y tercer grupo de subprocesos tienen un tiempo de aceleración de un rango realista, por lo que es más probable que muestren un rendimiento adecuado y soliciten el tiempo de carga.
Los grupos de subprocesos cuatro y cinco tienen un mayor tiempo de aceleración, lo que significa que su rendimiento disminuirá.
Por lo tanto, la salida confiable se puede determinar a partir de los resultados del segundo y tercer grupo de subprocesos.
La decisión de implementar una nueva versión o un cambio se basa en la capacidad de la aplicación para manejar TPS específicos. Por lo tanto, el plan de prueba de rendimiento tiene ciertos objetivos de rendimiento. Pero debemos asegurarnos de que estos objetivos sean realistas y representen las verdaderas características de la producción.
El plan de prueba es en vano si lo aprobamos utilizando condiciones poco realistas. Por ejemplo, el plan de prueba que describimos anteriormente tenía valores más altos de rendimiento para el primer grupo de subprocesos, pero no representaba el escenario real del entorno en vivo.
Por lo tanto, al usar tales métodos, no podemos tener una idea adecuada de si nuestra aplicación manejará la carga real o no. Por lo tanto, la configuración de pruebas adecuadas es crucial.
En pocas palabras, el rendimiento es un indicador de rendimiento fundamental de las aplicaciones web . Pero depender solo de las métricas de rendimiento no es suficiente. Por lo tanto, debe verificarse con la latencia y los tiempos de respuesta .
También es muy importante crear un rendimiento realista para lograr los objetivos de prueba de rendimiento establecidos.