Está en la página 1de 68

Cómo usar JMeter para pruebas de rendimiento y

carga
La prueba de rendimiento es crucial para determinar que la aplicación web bajo prueba
satisfará los requisitos de  alta carga  . Se puede usar para analizar el rendimiento general del
servidor bajo una gran carga.

La herramienta de prueba Apache JMeter ofrece el siguiente beneficio en las pruebas de


rendimiento.

 JMeter se puede utilizar para probar el rendimiento de los recursos estáticos ,


como JavaScript y HTML, así como de los recursos dinámicos , como JSP, Servlets y
AJAX.
 JMeter puede  descubrir la cantidad máxima de usuarios concurrentes que su sitio web
puede manejar
 JMeter proporciona una variedad de análisis gráficos de informes de rendimiento.

Las pruebas de rendimiento de JMeter incluyen:

 Prueba de carga : modelando el uso esperado simulando el acceso de múltiples usuarios


a los servicios web al mismo tiempo.
 Prueba de tensión : 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 la prueba de esfuerzo es encontrar la carga máxima que el
servidor web puede manejar.

La figura siguiente muestra cómo JMeter Load Testing simula la


carga pesada:
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 tu objetivo en esta prueba?

Aquí está la hoja de ruta de este ejemplo práctico.

Paso 1) Agregar grupo de hilos

1. Inicie JMeter
2. Seleccione Plan de prueba en el árbol
3. Agregar grupo de hilos

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 Grupo de subprocesos, ingrese Propiedades de
subproceso de la siguiente manera:

 Número de subprocesos : 100 (Número de usuarios se conecta al sitio


web de destino: 100)
 Recuento de bucles : 10 (cantidad de tiempo para ejecutar pruebas)
 Período de aceleración : 100

The Thread Count y The Loop Counts son diferentes.


El período de aceleración le indica a JMeter cuánto tiempo
debe demorar antes de iniciar el siguiente usuario. Por ejemplo, si tenemos
100 usuarios y un período de aceleración de 100 segundos, el retraso entre los
usuarios iniciales sería de 1 segundo (100 segundos / 100 usuarios)

Paso 2) Agregar elementos JMeter


Ahora determinamos qué elementos JMeter en esta prueba. Los elementos son

 Solicitud HTTP Predeterminado


Este elemento se puede agregar haciendo clic derecho en el Grupo de
subprocesos y seleccionando: Agregar  -> Elemento de configuración  -
> Valores predeterminados de solicitud HTTP.  
En el panel de control de valores predeterminados de solicitud HTTP, ingrese
el nombre del sitio web bajo prueba ( http://www.google.com )

 Solicitud HTTP
Haga clic derecho en Tema de grupo y seleccione: Agregar  -> Sampler  -
> HTTP Request .  
En el Panel de control de solicitud HTTP, el campo Ruta indica qué solicitud
de URL desea enviar al servidor de Google.

Por ejemplo, si escribe " calendario " en el campo Ruta. JMeter creará la


solicitud de URL http://www.google.com/calendar  al servidor de Google

Si mantiene el campo Ruta en blanco,   JMeter creará la solicitud de


URL http://www.google.com al servidor de Google.

En esta prueba, mantiene el campo Ruta en blanco para que JMeter cree
la solicitud de URL http://www.google.com  para el servidor de Google.

Paso 3) Agregar el resultado del gráfico


JMeter puede mostrar el resultado de la prueba en formato Gráfico.

Haga clic con el botón derecho en Plan de prueba, Agregar  -> Escucha  -


> Resultados del gráfico  
Paso 4) Ejecute 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 de software. Verá la visualización del resultado de la
prueba en Graph 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, hay las siguientes estadísticas, representadas
en colores:

 Negro: el número total de muestras actuales enviadas.


 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 1,491.193 /


minuto. Significa que el servidor de Google puede manejar 1,491.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 .

Vamos a comparar el rendimiento del servidor de Google con 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 de


867.326 / minutos. Significa que este servidor maneja 867.326 solicitudes por
minuto, menos que Google.

La desviación es 2689, mucho más alta que Google (577). Por lo tanto,


podemos determinar que el rendimiento de este sitio web es inferior al 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 anteriormente. ¡Así que no entres en pánico!

Solución de problemas:
Si enfrenta el problema mientras ejecuta el escenario anterior ... haga lo
siguiente
1. Comprueba si te estás conectando a Internet a través de un proxy. En
caso afirmativo, elimine el proxy.
2. Abra una nueva instancia de Jmeter
3. Abra el PerformanceTestPlan.jmx en Jmeter
4. Haga doble clic en Grupo de subprocesos -> Resultado del gráfico
5. Ejecute la prueba

Temporizadores Jmeter: constante, aleatorio


gaussiano, uniforme [Ejemplo]
¿Qué son los temporizadores?
Por defecto, JMeter envía la solicitud sin pausar entre cada solicitud. En ese
caso, JMeter podría  abrumar a su servidor de prueba al hacer demasiadas
solicitudes en un corto período de tiempo.

Imagine que envía miles de solicitudes a un servidor web bajo prueba en unos


segundos. ¡Esto es lo que pasa!

Los temporizadores permiten que JMeter demore entre cada solicitud que realiza un hilo. Un
temporizador puede resolver el problema de sobrecarga del servidor .

Además, en la vida real, los visitantes no llegan a un sitio web al mismo tiempo, sino a
diferentes intervalos de tiempo. Entonces, Timer ayudará a imitar el comportamiento en
tiempo real.

En este tutorial, aprenderás

 Temporizador constante
 Temporizador aleatorio gaussiano
 Temporizador aleatorio uniforme
 BeanShell Timer
 BSF Timer
 Temporizador JSR223
 Cómo usar el temporizador constante

 Los siguientes son algunos tipos comunes de temporizador en JMeter

 Temporizador constante:
 El temporizador constante retrasa cada solicitud de usuario por
la misma cantidad de tiempo.

 Temporizador aleatorio gaussiano:


 El temporizador aleatorio gaussiano retrasa cada solicitud de usuario
durante un período de tiempo aleatorio .

 Parámetros:
Atributo Descripción

Nombre Nombre descriptivo para este


temporizador que se muestra en el árbol

Desviaciones (milisegundos) Un parámetro de la función de


distribución gaussiana

Compensación de retardo Valor adicional en milisegundos


constante (milisegundos)

 Entonces, la demora total se describe en la siguiente figura:


Temporizador aleatorio uniforme:


El temporizador aleatorio uniforme retrasa cada solicitud de usuario durante
un período de tiempo aleatorio.

Parámetros:
Atributo Descripción

Nombre Nombre descriptivo para este


temporizador que se muestra en el árbol

Retardo aleatorio máximo Número aleatorio máximo de


milisegundos para retrasar.

Compensación de retardo Valor adicional en milisegundos


constante (milisegundos)

El retraso total es la suma del valor aleatorio y el valor de compensación.


BeanShell Timer
El temporizador BeanShell se puede utilizar para generar un tiempo de
retraso entre cada solicitud de usuario.

BSF Timer
El temporizador BSF se puede utilizar para generar un retraso entre cada
solicitud de usuario utilizando un lenguaje de script BSF .

Temporizador JSR223
El temporizador JSR223 se puede utilizar para generar un retraso entre cada
solicitud de usuario utilizando un lenguaje de script JSR223

Cómo usar el temporizador constante


En este ejemplo, usará Constant Timer para establecer un retraso fijo entre
las solicitudes de los usuarios a google.com.

Comencemos con un script de prueba simple

1. JMeter crea una solicitud de usuario


para http://www.google.com 100 veces
2. El retraso entre cada solicitud de usuario es de 5000 ms

Aquí está la hoja de ruta para este ejemplo práctico:

Condición previa:
Nos re-utilizar el Paso 1 y el Paso 2 en el tutorial Pruebas de Rendimiento de
JMeter .
Paso 1) Agregar grupo de hilos
Haga clic derecho sobre 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

Esta configuración permite a JMeter crear una solicitud de usuario


para http://www.google.com en 100 veces

Paso 2) Agregar elementos JMeter


 Agregar solicitud HTTP predeterminada
 Agregar solicitud HTTP

Paso 3) Agregar temporizador constante


Haga clic con el botón derecho en Grupo de subprocesos -
>  Temporizador  ->  Temporizador constante

Configuración de retraso de subproceso de 5000 milisegundos


Paso 4) Agregue Ver resultados en la tabla
Ver resultados en tabla muestra el resultado de la prueba en formato de tabla.

Haga clic derecho en Agregar  ->  Escucha  ->  Ver resultado en tabla

Ver resultados en la tabla muestra como figura a continuación


Paso 5) Ejecute su prueba
Cuando esté listo para ejecutar una prueba, haga clic en el botón Ejecutar en
la barra de menú o en la tecla abreviada Ctrl + R

Este es el resultado de esta prueba


Por ejemplo, en la figura anterior, analicemos la Muestra 2

 Hora de inicio es 22: 05: 01.866


 El tiempo de muestra de la muestra 2 es 172 ms
 Temporizador constante : 5000 ms (como configurado)
 La hora de finalización de esta muestra es = 22: 05: 01.866 + 172 +
5000 = 22: 05: 07.038

Entonces, la Muestra 3 debería comenzar en el momento 22: 05:


07.039 (Como se muestra en la figura anterior)

El retraso de cada muestra es de 5000 ms

Si cambia el temporizador constante es cero , verá que el resultado cambia.

Vamos a analizar la muestra 1

 Hora de inicio es 22: 17: 39.141


 El tiempo de muestra de la muestra 2 es 370 ms
 Temporizador constante : 0 ms (como está configurado)
 La hora de finalización de esta muestra es = 22: 17: 39.141+ 370 + 0 =
22: 17: 39.511

Entonces, la Muestra 2 debe comenzar en el momento 22: 17: 39.512 (se


muestra en la figura anterior)

Solución de problemas:
Si enfrenta el problema mientras ejecuta el escenario anterior ... haga lo siguiente
1. Comprueba si te estás conectando a Internet a través de un proxy. En caso afirmativo,
elimine el proxy.
2. Abra una nueva instancia de JMeter
3. Abra el TimerTestPlan.jmx en Jmeter
4. Haga doble clic en Grupo de subprocesos -> Ver resultado en tabla
5. Ejecute la prueba.

Cómo usar aserciones en JMeter


(ejemplo de respuesta)
¿Qué es una aserción?
La ayuda de aserción verifica que su servidor bajo prueba devuelve los resultados esperados.

Tipos de aserciones

Los siguientes son algunas afirmaciones de uso común en JMeter:

 Afirmación de respuesta
 Afirmación de duración
 Afirmación de tamaño
 Afirmación XML
 Afirmación HTML
 Pasos para usar la afirmación de respuesta

Afirmación de respuesta

La afirmación de respuesta le permite agregar cadenas de patrones para


compararlas con varios campos de la respuesta del servidor.

Por ejemplo, envía una solicitud de usuario al sitio


web http://www.google.com y obtiene la respuesta del servidor. Puede usar la
Aserción de respuesta para verificar si la respuesta del servidor contiene
la cadena de patrón esperada (por ejemplo, "OK").
Afirmación de duración
La afirmación de duración prueba que cada respuesta del servidor se recibió
dentro de un período de tiempo determinado. Cualquier respuesta que tome
más tiempo que el número dado de milisegundos (especificado por el usuario)
se marca como una respuesta fallida.

Por ejemplo, JMeter envía una solicitud de usuario a www.google.com y


obtiene una respuesta dentro del tiempo esperado de 5 ms y luego pasa
el caso de prueba , de lo contrario, el caso de prueba falló.

Afirmación de tamaño
La Afirmación de tamaño prueba que cada respuesta del servidor contiene el
número esperado de bytes. Puede especificar que el tamaño sea igual a, mayor
que, menor que o no igual a un número dado de bytes.

JMeter envía una solicitud de usuario a www.google.com y obtiene un


paquete de respuesta con un tamaño inferior al byte esperado de 5000 bytes
por pase de caso de prueba. De lo contrario, el caso de prueba falló.

Afirmación XML
La aserción XML prueba que los datos de respuesta consisten en un
documento XML formalmente correcto.

Afirmación HTML
La aserción HTML permite al usuario verificar la sintaxis HTML de los datos
de respuesta. Significa que los datos de respuesta deben cumplir con la
sintaxis HTML.
Pasos para usar la afirmación de respuesta
Continuaremos con el script que desarrollamos en el tutorial anterior .

En esta prueba, estamos utilizando la Afirmación de respuesta para


comparar el paquete de respuesta de www.google.com que coincide con su
cadena esperada.

Aquí está la hoja de ruta para esta prueba:

El panel de control de afirmación de respuesta le permite agregar cadenas de


patrones para compararlas con varios campos de la respuesta.

Paso 1) Agregar afirmación de respuesta


Haga clic con el botón derecho en Grupo de subprocesos  ->  Agregar  -
>  Afirmaciones  ->  Afirmación de respuesta.

El panel de afirmación de respuesta se muestra en la siguiente figura:


Paso 2) Agregar patrón a prueba
Cuando envía una solicitud al servidor de Google, puede devolver
algún código de respuesta de la siguiente manera:

 404 : error del servidor


 200 : servidor correcto
 302 : el servidor web redirige a otras páginas. Esto suele suceder
cuando accede a google.com desde fuera de EE. UU. Google redirige al
sitio web específico del país. Como se muestra a continuación,
google.com redirige a google.co.in para usuarios indios.
Suponga que desea verificar que el código de respuestas del servidor web
google.com contiene el patrón 302,

En el campo de respuesta a probar , elija Código de respuesta,

En el Panel de respuesta de respuesta, haga clic en Agregar  ->  una nueva


pantalla de entrada en blanco  ->  ingrese 302 en Patrón para probar.

Paso 3) Agregar resultados de afirmación


Haga clic con el botón derecho en Grupo de subprocesos, Agregar  -
>  Escucha  ->  Resultados de aserciones
Paso 4) Ejecute su prueba
Haga clic en Grupo de subprocesos  ->  Resultado de afirmación

Cuando esté listo para ejecutar una prueba, haga clic en el botón Ejecutar en
la barra de menú o en la tecla abreviada Ctrl + R.

El resultado de la prueba se mostrará en el panel de Resultados de


Afirmación. Si el código de respuesta del servidor de Google contiene el
patrón 302 , se pasa el caso de prueba . Verá el mensaje mostrado de la
siguiente manera:

Ahora, de vuelta al Panel de Afirmación de Respuesta, cambia el Patrón para


probar de 302 a 500.

Debido a que el código de respuesta del servidor de Google no contiene este


patrón, verá que el caso de prueba falló de la siguiente manera:
Solución de problemas:
Si enfrenta el problema mientras ejecuta los escenarios anteriores ... haga lo
siguiente:

1. Comprueba si te estás conectando a Internet a través de un proxy. En


caso afirmativo, elimine el proxy.
2. Abra una nueva instancia de JMeter
3. Abra el AssertionTestPlan.jmx en JMeter
4. Haga clic en Grupo de subprocesos -> Resultado de la aserción
5. Ejecute la prueba

Controladores en JMeter: bucle, simple,


transacción, módulo, aleatorio
¿Qué es el controlador lógico?
Los controladores lógicos le permiten definir el orden de procesamiento de la
solicitud en un subproceso. Le permite controlar "cuándo" enviar una solicitud
de usuario a un servidor web. Por ejemplo, puede usar controladores
aleatorios para enviar solicitudes HTTP al servidor al azar

Los controladores lógicos determinan  el orden  en que se ejecuta la solicitud


del usuario.

Algunos controladores lógicos de uso común están a continuación:


Controlador de grabación:
JMeter puede grabar sus pasos de prueba ; un controlador de grabación es
un marcador de posición para almacenar estos pasos de grabación.

Controlador simple:
Simple Controller es solo un contenedor para la solicitud del usuario.

Controlador de bucle:
Loop Controller hace que la solicitud del usuario se ejecute un número
específico de veces o se ejecute para siempre, como se muestra en la figura:
Controlador aleatorio
Random Controller hace que todas las solicitudes de los usuarios se ejecuten
en orden aleatorio en cada período de bucle.

Por ejemplo, tiene 3 solicitudes de usuario para el sitio


web http://www.google.com en el siguiente orden:

1. Solicitud HTTP
2. Solicitud FTP
3. Solicitud JDBC

Estas 3 solicitudes deben ejecutarse 5 veces. JMeter enviará un total de 15


solicitudes de usuario al servidor de Google.

En orden secuencial , las solicitudes se envían secuencialmente en el


siguiente orden:

Solicitud HTTP -> Solicitud FTP-> Solicitud JDBC

para cada bucle


En orden aleatorio , las solicitudes se envían de forma aleatoria,

Solicitud FTP -> Solicitud HTTP-> Solicitud JDBC

Solicitud JDBC -> Solicitud FTP-> Solicitud HTTP

Para cada vuelta.

Controlador de módulo:
El objetivo de Module Controller es agregar modularidad a JMeter.

La idea general es que las aplicaciones web consisten en pequeñas unidades


de funcionalidad (es decir, Iniciar sesión, Crear cuenta, Cerrar sesión ...). Esta
funcionalidad se puede almacenar en Simple Controller como "módulos". El
controlador del módulo elegirá qué módulo debe ejecutarse.
Considere el siguiente escenario:

Quieres simular:

 50 usuarios desconectados ,
 100 usuarios iniciando sesión
 30 usuarios  buscan en www.google.com

Puede usar JMeter para crear 3 módulos. Cada módulo simula cada actividad
del usuario: inicio de sesión, cierre de sesión y búsqueda.
El controlador del módulo elige qué módulo debe ejecutarse.

Otros controladores importantes:


 Controlador de intercalación : recoge y ejecuta una de las solicitudes
del usuario en cada bucle del hilo.
 Controlador de tiempo de ejecución : controla cuánto tiempo pueden
ejecutarse sus hijos.

Por ejemplo, si especificó Runtime Controller 10 segundos, JMeter ejecutará


su prueba durante 10 segundos.

 Controlador de transacciones : mide el tiempo total que se tarda


en finalizar una ejecución de prueba

 Incluir controlador: está diseñado para usar un plan de prueba


externo. Este controlador le permite usar múltiples planes de prueba en
JMeter. Ver detalles en JMeter Performance Testing .

Ejemplo de controlador de bucle


Esta sección le muestra instrucciones paso a paso para agregar el conjunto
de Loop Controller a su plan de prueba de rendimiento actual.

El controlador de bucle hace que los muestreadores se ejecuten un cierto


número de veces, además del valor de bucle que especificó para el grupo de
subprocesos. Por ejemplo, si tu

 Agregue una solicitud HTTP a un controlador de bucle con un conteo


de bucles 50
 Configure el recuento de bucles del grupo de subprocesos en 2
 Luego, JMeter enviará un total de 50 * 2 = 100 solicitudes HTTP.

Esta es la hoja de ruta de este ejemplo:


Paso 1) Configuración del grupo de subprocesos
Nos re-utilizar el Paso 1, 2 en el tutorial Pruebas de Rendimiento de JMeter .

1. Agregar grupo de hilos


          Haga clic derecho sobre el plan de pruebas y añadir un nuevo grupo de
hilos: Agregar -> Hilos (Usuarios) -> Thread Group

          Pero en el panel de control de Thread Group, ingrese Thread Properties


de la siguiente manera:

          Hará una solicitud de usuario al servidor web google.com y la


ejecutará 2 veces.

2. Añadir elementos JMeter


          Agregue la solicitud HTTP predeterminada a www.google.com.

3. Agregar controlador de bucle


          Haga clic con el botón derecho en Grupo de subprocesos -> Controlador
lógico -> Controlador de bucle
Paso 2) Configuración del controlador de bucle
Agregue valor 50 al campo Loop Count como se muestra a continuación. Hará
que una solicitud de usuario al servidor web google.com lo ejecute 50 veces,
además del valor de bucle = 2, que especificó para el Grupo de subprocesos
anterior. Entonces JMeter enviará un total de 2 * 50 = 100 solicitudes HTTP.

Haga clic con el botón derecho en Loop Controller, Add -> Sampler -> HTTP
request

Paso 3) Agregue Ver resultados en la tabla


Reutilizamos el Paso 2 en el temporizador para agregar Ver resultados en la
tabla

Entonces el plan de prueba se muestra en la figura a continuación


Paso 4) Ejecute su prueba
Ahora regrese Ver resultados en la tabla, haga clic en el botón Inicio en la
barra de menú (Ctrl + R) para ejecutar una prueba

Como se muestra en la figura a continuación, JMeter simula una solicitud de


usuario, que se envía 100 veces, al servidor web http://www.google.com/ . La
prueba se detiene después de que se envió una solicitud de usuario 100 veces.

Solución de problemas:
1. Si enfrenta el problema mientras ejecuta el escenario anterior ... haga lo
siguiente
2. Comprueba si te estás conectando a Internet a través de un proxy. En
caso afirmativo, elimine el proxy.
3. Abra una nueva instancia de Jmeter
4. Abra el ControllerTestPlan.jmx en Jmeter
5. Haga clic en Grupo de subprocesos -> Ver resultado en tabla
6. Ejecute la prueba.

Procesador en JMeter: preprocesador y


postprocesador
Se utiliza un procesador para modificar los Samplers en su alcance.

Hay 2 tipos de procesadores:

1. Preprocesador
2. Postprocesador

Preprocesador:
El preprocesador ejecuta alguna acción  antes de  realizar la Solicitud de
muestra.

Considere un ejemplo simple: supongamos que desea que JMeter "atraviese"


el sitio web bajo prueba,  analice el  enlace (verifique todos los enlaces en la
página) y  devuelva  el HTML. Debería agregar alguna acción como
"analizador de enlaces HTML" a su controlador antes de crear una solicitud
HTTP.

Postprocesador:
El posprocesador ejecuta alguna acción después de realizar una solicitud de
muestra.

Considere un ejemplo simple: JMeter envía una solicitud HTTP al servidor


web bajo prueba (etc. www.google.com ) y obtiene la respuesta. Desea que
JMeter detenga la prueba si la respuesta del servidor es un error. Puede usar el
postprocesador para realizar la tarea anterior de la siguiente manera:
Ejemplo de postprocesador
Este tutorial le mostrará instrucciones paso a paso sobre cómo usar el
posprocesador en JMeter. Comencemos con el script de prueba simple.

1.  JMeter envía una solicitud HTTP al servidor web bajo


prueba www.google.com .
2.  JMeter recibe una respuesta del servidor de Google.
3.  Si la respuesta del servidor es un error , JMeter detendrá la prueba.
4.  Si la respuesta del servidor es correcta (sin error),
JMeter continuará la prueba.

Aquí está la hoja de ruta de este ejemplo:

Condición previa:

Nos re-utilizamos el paso 1 y el paso 2 en el artículo  JMeter pruebas de


rendimiento .

Paso 1) Agregar grupo de hilos


Haga clic derecho sobre el plan de pruebas y añadir un nuevo grupo de
hilos: Agregar  -> Hilos (Usuarios) ->  Thread Group

Pero en el panel de control de Thread Group, ingrese Thread Properties de la


siguiente manera:
Esta configuración permite que JMeter cree 10 solicitudes de usuario
para http://www.google.com  10 veces.

Paso 2) Agregar elementos JMeter


 Agregar solicitud HTTP predeterminada
 Agregar solicitud HTTP

Todavía hacemos que JMeter envíe la solicitud http://www.google.com al


servidor de Google.

Paso 3) Agregar elemento de postprocesador


Haga clic con el botón derecho en Grupo de subprocesos  ->  Agregar  -
>  Postprocesador  ->  Controlador de acción de estado de resultado

El controlador de acción de estado de resultados permite al usuario detener


el hilo o toda la prueba si la solicitud del usuario falla.
En el Panel de control de acción de estado de resultado, elija Detener prueba
ahora . Esta selección detendrá la prueba si JMeter recibe el error de la
respuesta del servidor.

Paso 4) Configurar la solicitud HTTP


Abra el Panel de solicitud HTTP. Ingrese "abc"  en el campo Ruta.
Cuando ingrese  "abc"  en la ruta, JMeter creará una solicitud de URL para el
servidor de Google: http://www.google.com/abc . Esta URL no existe en el
servidor de Google. Es una solicitud de URL incorrecta, por lo que el
servidor de Google devolverá un error.

Paso 5) Agregar Ver árbol de resultados


Haga clic con el botón derecho en Grupo de subprocesos   ->  Agregar   -
>  Escucha   ->  Ver árbol de resultados
Paso 6) Ejecutar prueba
Seleccione Ver árbol de resultados, presione el botón Ejecutar en la barra de
menú. Verá la respuesta de error del servidor de Google y la prueba se
detendrá sin completar 100 hilos.
Ahora regrese al paso 4, abra el panel Solicitud HTTP, ingrese " calendario "
en el panel. Hace que JMeter cree una solicitud de
URL http://www.google.com/calendar para el servidor de Google. Esta
es la solicitud de URL correcta para que el servidor de Google devuelva OK
(sin error).
Seleccione Ver árbol de resultados, presione el botón Ejecutar en la barra de
menú. Verá el OK respuesta del servidor de Google y la prueba continuará
hasta que todos los hilos 100 están completos.

Solución de problemas:
Si enfrenta el problema mientras ejecuta el escenario anterior ... haga lo
siguiente:

1. Comprueba si te estás conectando a Internet a través de un proxy. En


caso afirmativo, elimine el proxy.
2. Abra una nueva instancia de Jmeter
3. Abra el ProcessorTestPlan.jmx en Jmeter
4. Haga doble clic en Grupo de subprocesos -> Ver árbol de resultados
5. Ejecute la prueba

Prueba distribuida (remota) de Jmeter:


configuración esclava maestra
¿Qué son las pruebas distribuidas?
La prueba distribuida es un tipo de prueba que utiliza múltiples sistemas para
realizar pruebas de tensión . Las pruebas distribuidas se aplican para probar
sitios web y aplicaciones de servidor cuando trabajan con varios clientes
simultáneamente.

Las pruebas distribuidas utilizan el modelo cliente-servidor como se muestra


en la figura a continuación:

 Maestro : el sistema que ejecuta JMeter GUI, controla cada esclavo.


 Esclavo : el sistema que ejecuta JMeter-server, recibe un comando del
maestro y envía una solicitud a un servidor bajo prueba.
 Destino : el servidor web bajo prueba, recibe una solicitud de esclavos.

Ejemplo de prueba remota


Condición previa:

 Los cortafuegos en los sistemas están desactivados. En algunos casos,


el firewall aún puede estar bloqueando el tráfico. Debe deshabilitar el
firewall de Windows o el firewall de Linux .
 Todas las máquinas deben estar en la misma subred. Si las máquinas no
están en la misma subred, tal vez no se reconocerán entre sí en la red.
 Use la misma versión de JMeter para evitar errores / problemas
imprevistos.

Aquí está la hoja de ruta para esta prueba:

Paso 1) Configuración del sistema


Configure los sistemas esclavos , vaya al directorio jmeter / bin y ejecute el
archivo "jmeter-server.bat".

Suponga que una máquina esclava tiene una dirección IP: 192.168.0.10. En
Windows, debería ver una ventana como la siguiente figura:

En los sistemas maestros , vaya al directorio / bin y edite el


archivo jmeter.properites , agregue la máquina esclava IP como se muestra a
continuación
Paso 2) Ejecute la prueba
En este punto, está listo para comenzar la prueba de carga. En la máquina
maestra, ejecute JMeter GUI y abra el plan de prueba.

Haga clic en Ejecutar en la barra de menú; seleccione Inicio remoto  -


>  seleccione la dirección IP de la máquina esclava

Paso 3) Solución de problemas


Si no puede ejecutar la prueba desde la máquina anterior y ve el siguiente
error, simplemente pídale al propietario de una máquina esclava que ejecute el
archivo JMeter-server.bat.

Deshabilite el firewall en las máquinas maestras y esclavas para corregir este


error.

Limitación:
Existen algunas limitaciones básicas para las pruebas distribuidas. Aquí está
la lista de los artículos conocidos:
 El servidor y todos los clientes deben estar en la misma subred.
 Las pruebas distribuidas requerían que el servidor de destino tuviera la
gran potencia de procesamiento. El servidor de destino
podría sobrecargarse fácilmente en caso de que reciba demasiadas
solicitudes mediante pruebas distribuidas de JMeter.
 Un solo JMeter solo puede manejar un número limitado de hilos (100-
300 hilos).
 Las pruebas distribuidas de JMeter son complejas, difíciles de construir
para un principiante.

Servidor proxy HTTP en JMeter:


Grabar secuencia de comandos de
ejemplo
La prueba de grabación ayuda al probador a registrar y ejecutar su actividad
contra el objetivo de la prueba. Es un tipo de prueba automatizada pero para
múltiples usuarios. Este tutorial lo guía sobre cómo usar el servidor proxy
para grabar su prueba.

El servidor proxy le permite a JMeter ver y registrar la actividad del usuario


mientras navega por la aplicación web con un navegador normal.

En este tutorial, aprenderás

 Paso 1) Configuración del servidor proxy HTTP


 Paso 2) Graba tu actividad
 Paso 3) Ejecute su plan de prueba
 Paso 4) Guarde el resultado de su prueba

Aquí está la hoja de ruta de este ejemplo práctico.


Paso 1) Configuración del servidor proxy HTTP
Esta es una guía paso a paso para configurar el proxy

1. Inicie JMeter
2. Seleccione Plan de prueba en el árbol
3. Agregar grupo de hilos

Haga clic derecho sobre el plan de pruebas y añadir un nuevo grupo de


hilos: Agregar => Hilos (usuarios) => Thread Group

4. Agregar solicitud HTTP

Seleccione el grupo de subprocesos; haga clic derecho


en Agregar => Elemento de configuración => Valores
predeterminados de solicitud HTTP
En el nuevo elemento de valores predeterminados de solicitud HTTP: en el
nombre del servidor o IP, ingrese "google.com". Debe mantener los otros
campos en blanco.

5. Agregar controlador de grabación

Haga clic derecho en el "Grupo de subprocesos" y agregue un


controlador de grabación: Agregar => Controlador lógico =>

Controlador de grabación
6. Agregar servidor proxy a WorkBench

Haga clic con el botón derecho en Workbench y agregue el proxy


http: Agregar => Elementos que no son de prueba => Servidor
proxy HTTP  

7. Configure el controlador de destino donde se agregarán sus scripts


grabados
8. Iniciar servidor proxy

Regrese al servidor proxy HTTP y haga clic en el botón Inicio en la


parte inferior. Ahora comienza su servidor proxy JMeter
 

9. Inicie su navegador (utilicé Firefox),


elija Herramienta => Opción => Avanzado => Red => Configuració
n => Ingrese el proxy HTTP como se muestra a continuación

 
Paso 2) Graba tu actividad
1. Ahora inicie http://www.google.com en su navegador web (JMeter
todavía está abierto)
2. Hacer actividades buscar la palabra clave " guru99 ".
3. De vuelta a JMeter, en el servidor proxy HTTP, haga clic
en Detener cuando haya terminado

 
 

4. Después de terminar la grabación, verá que JMeter creó


automáticamente una nueva solicitud HTTP como se muestra en la
figura a continuación
JMeter ya ha registrado una solicitud de usuario en la
página de inicio del sitio web de Google. Http://www.google.com/

Las otras solicitudes HTTP se muestran en la figura anterior, debe


eliminarlas. Porque en algún momento JMeter también registra algunos
enlaces publicitarios mientras busca palabras clave en
Google. Deberíamos ignorarlos en nuestro plan de prueba

5. Haga clic en Archivo => Guardar su plan de prueba como


6. Aparece un cuadro de diálogo => ingrese un nombre de su plan de
prueba en el campo Nombre de archivo => Haga clic en Guardar

Ahora su plan de prueba se guarda con el nombre


RecordingTestPlan.jmx
Paso 3) Ejecute su plan de prueba
1. Seleccione Thread Group => Add => Listener => Summary Report

 
2. El Informe resumido mostrará algunas estadísticas básicas.
3. Seleccione Grupo de subprocesos, ingrese la información como se
muestra a continuación

Puede consultar el artículo 5 JMeter Performance Testing.doc para conocer


los detalles sobre la configuración de Thread Group

4. Antes de comenzar la prueba, seleccione "Informe resumido". Cuando


esté listo para ejecutar una prueba, seleccione Ejecutar => Inicio (Ctrl +
R). JMeter reproducirá tu actividad 100 veces

A medida que se ejecuta la prueba, las estadísticas cambiarán hasta que


finalice la prueba.
Paso 4) Guarde el resultado de su prueba
1. Haga clic en Guardar datos de tabla para guardar el resultado de la
prueba en el archivo

2. Ingrese el nombre del resultado de la prueba y haga clic en Guardar. El


resultado de la prueba en JMeter se guarda en formato * .csv como
predeterminado
Solución de problemas

Si enfrenta el problema mientras ejecuta el escenario anterior ... haga lo


siguiente

1. Comprueba si te estás conectando a Internet a través de un proxy. En


caso afirmativo, elimine el proxy.
2. Abra una nueva instancia de Jmeter
3. Abra el RecordingTestPlan.jmx en Jmeter
4. Haga clic derecho en Workbench => Merge => Select HTTP Proxy
Server.jmx
5. Haga clic en Grupo de subprocesos => Informe resumido
6. Ejecute la prueba

Mejores prácticas para sus pruebas de


Jmeter
Pautas para superar las limitaciones de JMeter en un entorno distribuido:

1. Limite el número de hilos


2. Usando un servidor proxy
3. Usando variables
4. Reduce la necesidad de recursos
5. Verifique los registros de JMeter
6. Borrar la ruta local de la configuración del conjunto de datos CSV
7. Siga la convención de nomenclatura de archivos

JMeter tiene algunas limitaciones, especialmente cuando se ejecuta en un


entorno distribuido. Para usar JMeter de manera eficiente para las pruebas,
debe usar las siguientes pautas:

Limite el número de hilos


El número máximo de hilos que puede ejecutar efectivamente con JMeter
es 300 . Este límite se debe a las capacidades del hardware. Si JMeter se
ejecuta con más cantidad de subprocesos, la precisión de la información de
temporización disminuirá.

Usando un servidor proxy


El servidor Proxy le ayuda a abstraer ciertos elementos comunes de las
muestras grabadas. Además, son características útiles para grabar sus pruebas.
Usando variables
Algunos planes de prueba necesitan usar diferentes valores para diferentes
usuarios / hilos. Por ejemplo, es posible que desee probar una secuencia que
requiere un inicio de sesión único para cada usuario. Esto es fácil de lograr
usando variables.

Reduce la necesidad de recursos


El modo GUI consume mucha memoria de la computadora bajo una carga
pesada. Causa problemas de rendimiento.

Hay algunos consejos para reducir la necesidad de recursos:

 Usar modo sin GUI


 Deshabilite la escucha "Ver árbol de resultados" durante la prueba de
carga. Porque consume más memoria y hace que JMeter se quede sin
memoria.
 Deshabilitar todos los resultados de gráficos JMeter
 Use el formato de resultado de prueba CSV.
 Solo guarde el resultado de prueba necesario. JMeter podría tomar
mucho tiempo para salvar a resultados muy detallados de las pruebas.

Verifique los registros de JMeter


Cualquier error en el plan de prueba o la ejecución de la prueba se registrará
en los archivos de registro. El monitoreo del archivo de registro lo ayuda a
encontrar el error temprano

Borrar la ruta local de la configuración del conjunto


de datos CSV
Si está utilizando un archivo de datos CSV existente que creó en su
computadora local, debe eliminar la ruta local existente (Ruta actual del
archivo CSV). Si no elimina la ruta local, JMeter no puede encontrar el
archivo de datos CSV en su PC local.

Siga la convención de nomenclatura de archivos


No guarde el plan de prueba con un nombre de archivo complejo,
use solo caracteres alfanuméricos  .
Las 23 preguntas y respuestas más
importantes de la entrevista de JMeter
1) Explicar qué es JMeter?

JMeter es una herramienta de Java , que se utiliza para pruebas de carga


de rendimiento .

2) Explicar cómo funciona JMeter?

JMeter actúa como un grupo de usuarios que envían solicitudes a un servidor


de destino. Recopila la respuesta del servidor de destino y otras estadísticas
que muestran el rendimiento de la aplicación o el servidor a través de gráficos
o tablas.

3) ¿Explica dónde puedes usar funciones y variables?

Las variables y funciones se pueden escribir en cualquier campo de cualquier


componente de prueba

4) Mencione cuáles son las expresiones regulares en JMeter?

Según el patrón, se utiliza una expresión regular para buscar y manipular


texto. JMeter es útil para interpretar formas de expresión regular o patrones
que se utilizan en todo el plan de prueba de JMeter.

5) Explicar qué es Samplers y Thread groups?

 Grupo de subprocesos: para cualquier plan de prueba, JMeter es la parte


inicial de los elementos del grupo de subprocesos. Es un elemento
importante de JMeter, donde puede establecer una cantidad de usuarios
y tiempo para cargar todos los usuarios dados en el grupo de hilos
 Muestras: la muestra genera uno o más resultados de muestra; estos
resultados de muestra tienen muchos atributos como tiempo
transcurrido, tamaño de datos, etc. Los muestreadores permiten que
JMeter envíe tipos específicos de solicitudes al servidor, a través de
muestreadores, el grupo de subprocesos decide qué tipo de solicitud
debe realizar. Algunos de los ejemplos útiles son solicitud HTTP,
solicitud FTP, solicitud JDBC, etc.

6) ¿Los planes de prueba creados con JMeter dependen del sistema


operativo?
Por lo general, los planes de prueba se guardan en su formato XML, por lo
que no hay nada que ver con ningún sistema operativo en particular. Se puede
ejecutar en cualquier sistema operativo donde se pueda ejecutar JMeter.

7) Mencione cuáles son los tipos de procesador en JMeter?

Los tipos de procesador en JMeter son

 Preprocesador
 Post procesador

8) Explique qué son los elementos de preprocesador? ¿Enumerar algunos


de los elementos del preprocesador?

Un preprocesador es algo que sucederá antes de que se ejecute la


muestra. Para configurar la solicitud de muestra antes de su ejecución o para
actualizar variables que no se extraen del texto de respuesta, se utilizan
elementos de preprocesador.

Algunos de los elementos del preprocesador son

 Modificador de reescritura de URL HTTP


 Modificador de parámetros de usuario HTTP
 Analizador de enlaces HTML
 BeanShell PreProcessor

9) ¿Menciona el orden de ejecución de los elementos de prueba?

El orden de ejecución de los elementos de los planes de prueba es

 Elementos de configuración
 Preprocesadores
 Temporizadores
 Muestras
 Postprocesadores
 Aserciones
 Oyentes

10) ¿Qué indica "contener" y "coincidencias" en la expresión regular?

En la expresión regular, contiene indica que la expresión regular coincide con


al menos alguna parte del objetivo. Mientras que las coincidencias significan
que la expresión regular coincide con todo el objetivo. Entonces, 'alfabeto'
está "emparejado" por 'al. * T.'
11) Explicar cuáles son los elementos de configuración?

Un elemento de configuración funciona en paralelo con un Sampler. Para


configurar valores predeterminados y variables para su uso posterior por los
muestreadores, se pueden usar elementos de configuración. Al comienzo del
alcance, estos elementos se procesan antes que cualquier muestra en el mismo
alcance.

12) Explique qué es un temporizador en JMeter y cuáles son sus tipos.

Un hilo JMeter por defecto enviará solicitudes continuamente sin ninguna


pausa. Para obtener una pausa entre la solicitud, se utilizan
temporizadores. Algunos de los temporizadores utilizados son Temporizador
constante, Temporizador aleatorio gaussiano, Temporizador de
sincronización, Temporizador aleatorio uniforme, etc.

13) ¿Qué es el fragmento de prueba?

El fragmento de prueba también es un tipo de elemento como el elemento


Thread Group. La única diferencia es que el fragmento de prueba no se
implementa a menos que un controlador de módulo o un controlador de
inclusión haga referencia a él.

14) Explicar qué es la aserción en JMeter? ¿Cuáles son los tipos de


afirmación?

La afirmación ayuda a verificar que su servidor bajo prueba devuelva los


resultados esperados

Algunas afirmaciones de uso común en JMeter son

 Afirmación de respuesta
 Afirmación de duración
 Afirmación de tamaño
 Afirmación XML
 Afirmación HTML

15) Explica cómo puedes reducir la necesidad de recursos en JMeter?

Para reducir los requisitos de recursos en JMeter

 Utilice el modo no GUI: jmeter –n –t test.jmx –l test.jtl


 Durante la carga, una prueba no utiliza los oyentes "ver árbol de
resultados" o "ver resultados en tabla", utilícelos solo durante la fase de
secuencia de comandos
 No uses el modo funcional
 En lugar de usar muchos muestreadores similares, use el mismo
muestreador en un bucle y use la variable para variar la muestra

16) Explique cómo puede realizar pruebas de picos en JMeter?

Al sincronizar, se puede lograr la prueba de pico JMeter del temporizador . El


temporizador de sincronización bloquea el subproceso hasta que se haya
bloqueado una cantidad específica de subprocesos y luego libérelos todos
juntos, creando así una gran carga instantánea.

17) Explica cómo puedes capturar el script de la ventana de autenticación


en JMeter?

Normalmente, puede capturar guiones grabando.

 Primero, debe Threadgroup en Testplan y luego hacer


HTTPProxyServer en Workbench
 Después de eso, configure el número de puerto en el cuadro
Configuración global (por ejemplo, 8911) y modifique su configuración
de conexión en IE como localhost en la dirección 8911 como en el
puerto. Luego puede iniciar el servidor proxy HTTP en JMeter y
ejecutar su aplicación para iniciar sesión

18) ¿Enumerar algunos oyentes de JMeter?

Algunos de los oyentes de JMeter son

 Spline Visualizer
 Informe agregado
 Ver árbol de resultados
 Ver resultado en la tabla
 Monitorear resultados
 Gráfico de distribución
 BeanShell Listener
 Informe resumido, etc.

19) ¿Qué es la prueba de carga distribuida? ¿Cómo puede lograrse?

La prueba de carga distribuida es el proceso a través del cual se pueden


utilizar numerosos sistemas para simular una carga de un gran número de
usuarios. Al utilizar la configuración maestro-esclavo, JMeter puede distribuir
pruebas de carga.
20) En JMeter, ¿es necesario llamar explícitamente a los recursos
integrados?

Puede eliminar todos los recursos integrados para que no se les llame
explícitamente. Las solicitudes tienen una casilla de verificación en la parte
inferior que dice "recuperar recursos incrustados". Tomaría todos los CSS,
JPG, etc. Es una forma brillante de encontrar recursos y enlaces rotos en una
aplicación web.

21) Explica cuál es el papel de Timer en JMeter?

Con la ayuda de un temporizador, JMeter puede retrasar el tiempo entre cada


solicitud, que hace un hilo. Puede resolver el problema de sobrecarga del
servidor.

22) ¿Qué es el postprocesador?

Para realizar cualquier acción después de realizar una solicitud, se utiliza el


postprocesador. Por ejemplo, si JMeter envía una solicitud HTTP al servidor
web, y si desea que JMeter deje de enviar la solicitud si el servidor web
muestra un error, utilizará el postprocesador para realizar esta acción.

23) ¿Cuáles son los beneficios que ofrece JMeter para las pruebas de
rendimiento?

JMeter ofrece beneficios en pruebas de rendimiento como

 Se puede usar para probar el rendimiento de los recursos estáticos y


dinámicos.
 Puede manejar un número máximo de usuarios concurrentes y luego su
sitio web puede manejar
 Proporciona los análisis gráficos de los informes de rendimiento.

También podría gustarte