Prueba de carga de JMeter
La prueba de carga de JMeter es un proceso de prueba que se realiza mediante una herramienta de prueba de carga llamada Apache JMeter, que es una aplicación de escritorio de código abierto basada en Java. JMeter para pruebas de carga es una herramienta crucial que determina si la aplicación web bajo prueba puede satisfacer requisitos de carga alta o no. También ayuda a analizar el servidor en general con una carga pesada.
Pruebas de rendimiento de JMeter
La prueba de rendimiento de JMeter es un método de prueba que se realiza con Apache JMeter para probar el rendimiento de una aplicación web. JMeter para pruebas de rendimiento ayuda a probar recursos estáticos y dinámicos, ayuda a descubrir usuarios concurrentes en el sitio web y proporciona una variedad de análisis gráficos para pruebas de rendimiento. Las pruebas de rendimiento de JMeter incluyen la prueba de carga y la prueba de esfuerzo de la aplicación web.
La herramienta de prueba Apache JMeter ofrece los siguientes beneficios en las pruebas de rendimiento
- JMeter se puede utilizar para probar el rendimiento tanto de recursos estáticos como JavaScript y HTML, como de recursos dinámicos , como JSP, Servlets y AJAX.
- JMeter puede descubrir el número máximo de usuarios simultáneos que puede manejar su sitio web
- JMeter proporciona una variedad de análisis gráficos de informes de rendimiento.
Las pruebas de rendimiento de JMeter incluyen:
- Prueba de carga : modelar el uso esperado simulando el acceso de múltiples usuarios a los servicios web simultáneamente.
- Stress Testing: cada servidor web tiene una capacidad de carga máxima. Cuando la carga supera el límite, el servidor web comienza a responder lentamente y produce errores. El propósito de las pruebas de estrés es encontrar la carga máxima que puede manejar el servidor web.
La siguiente figura muestra cómo JMeter load Testing simula la carga pesada:
Cree un plan de prueba de rendimiento en JMeter
En este tutorial, estamos haciendo un análisis de rendimiento de Google.com para 1000 usuarios.
Antes de probar el rendimiento de la aplicación web de destino, debemos determinar:
- Carga normal : número promedio de usuarios que visitan su sitio web
- Carga pesada : el número máximo de usuarios que visitan su sitio web
- ¿Cuál es su objetivo en esta prueba?
Aquí está la hoja de ruta de este ejemplo práctico
Paso 1) Agregar grupo de subprocesos
- Iniciar JMeter
- Seleccione Plan de prueba en el árbol
- Agregar grupo de subprocesos
Haga clic derecho en el "Plan de pruebas" y añadir un nuevo grupo de hilos: Agregar -> Hilos (Usuarios) -> Thread Group
En el panel de control del Grupo de subprocesos, ingrese Propiedades de subproceso de la siguiente manera:
- Número de subprocesos : 100 (número de usuarios que se conectan al sitio web de destino: 100)
- Recuento de bucles : 10 (número de tiempo para ejecutar la prueba)
- Período de aceleración : 100
El número de hilos y el número de bucles son diferentes.
El período de aceleración le indica a JMeter cuánto tiempo debe demorarse antes de iniciar el siguiente usuario. Por ejemplo, si tenemos 100 usuarios y un período de aceleración de 100 segundos, entonces el retraso entre los usuarios iniciales sería de 1 segundo (100 segundos / 100 usuarios)
Paso 2) Agregar elementos de JMeter
Ahora determinamos qué elementos de JMeter en esta prueba. Los elementos son
-
Solicitud HTTP predeterminada
Este elemento se puede agregar haciendo clic con el botón derecho en el Grupo de subprocesos y seleccionando: Agregar -> Elemento de configuración -> Valores predeterminados de solicitud HTTP.
En el panel de control Valores predeterminados de solicitud HTTP, ingrese el nombre del sitio web que se está probando (http://www.google.com)
-
Solicitud HTTP
Haga clic con el botón derecho en Grupo de subprocesos y seleccione: Agregar -> Muestreador -> Solicitud HTTP .
En el Panel de control de solicitudes HTTP, el campo Ruta indica qué solicitud de URL desea enviar al servidor de Google.
Por ejemplo, si ingresa "calendario" en el campo Ruta. JMeter creará la solicitud de URL http://www.google.com/calendar al servidor de Google
Si deja el campo Ruta en blanco, JMeter creará la solicitud de URL http://www.google.com al servidor de Google.
En esta prueba, mantienes el campo Ruta en blanco para que JMeter cree la solicitud de URL http://www.google.com al servidor de Google.
Paso 3) Agregar el resultado del gráfico
JMeter puede mostrar el resultado de la prueba en formato de gráfico.
Haga clic con el botón derecho en Plan de prueba, Agregar -> Oyente -> Resultados del gráfico
Paso 4) Ejecute la prueba y obtenga el resultado de la prueba
Presione el botón Ejecutar (Ctrl + R) en la barra de herramientas para iniciar el proceso de prueba del software. Verá la pantalla del resultado de la prueba en el gráfico en tiempo real.
La siguiente imagen presenta un gráfico de un plan de prueba, donde simulamos 100 usuarios que accedieron al sitio web www.google.com.
En la parte inferior de la imagen, se encuentran las siguientes estadísticas, representadas en colores:
- Negro: el número total de muestras enviadas actualmente.
- Azul: el promedio actual de todas las muestras enviadas.
- Rojo: la desviación estándar actual.
- Verde: tasa de rendimiento que representa la cantidad de solicitudes por minuto que manejó el servidor
Analicemos el rendimiento del servidor de Google en la siguiente figura.
Para analizar el rendimiento del servidor web bajo prueba, debe centrarse en 2 parámetros
- Rendimiento
- Desviación
El rendimiento es el parámetro más importante. Representa la capacidad del servidor para manejar una carga pesada. Cuanto mayor sea el rendimiento, mejor será el rendimiento del servidor.
En esta prueba, el rendimiento del servidor de Google es 1491,193 / minuto. Significa que el servidor de Google puede manejar 1491,193 solicitudes por minuto. Este valor es bastante alto por lo que podemos concluir que el servidor de Google tiene un buen rendimiento
La desviación se muestra en rojo; indica la desviación del promedio. El más pequeño el mejor .
Comparemos el rendimiento del servidor de Google con el de otros servidores web. Este es el resultado de la prueba de rendimiento del sitio web http://www.yahoo.com/ (puede elegir otros sitios web)
El rendimiento de un sitio web bajo prueba http://www.yahoo.com es 867,326 / minutos. Significa que este servidor maneja 867.326 solicitudes por minuto, menos que Google.
La desviación es de 2689, mucho más alta que la de Google (577). Entonces podemos determinar que el rendimiento de este sitio web es menor que el de un servidor de Google.
NOTA: Los valores anteriores dependen de varios factores, como la carga actual del servidor en Google, la velocidad de Internet, la potencia de la CPU, etc. Por lo tanto, es muy poco probable que obtenga los mismos resultados que los anteriores. ¡Que no cunda el pánico!
Solución de problemas:
Si enfrenta el problema mientras ejecuta el escenario anterior ... haga lo siguiente
- Compruebe si se está conectando a Internet a través de un proxy. Si es así, elimine el proxy.
- Abra una nueva instancia de Jmeter
- Abra PerformanceTestPlan.jmx en Jmeter
- Haga doble clic en Grupo de subprocesos -> Resultado gráfico
- Ejecuta la prueba