2012-04-17 29 views
10

Tengo una prueba en la que los usuarios iniciarán sesión e ingresarán la palabra clave de búsqueda en el campo de búsqueda y obtendrán los resultados. Finalmente cierra la sesión.Cómo generar carga simultánea de usuario en Jmeter

Ahora quiero probar la concurrencia usando Jmeter. Así que esto es lo que se me ocurrió.

Test plan 
    Thread group 
    + Login request 
    + Synchronizing Controller 
    + Search string 
    + Synchronizing Controller 
    + Logout 

He añadido 10 en el número de hilos. He agregado 5 en el controlador de sincronización. Entonces, cuando ejecute la prueba obtendré la concurrencia de 5 usuarios? ¿Los usuarios de Rest 5 serán usuarios simultáneos?

También he dependido de la solicitud cuando se carga la página de inicio de sesión. Entonces, para lograr la simultaneidad en el inicio de sesión, he agregado toda la solicitud en el controlador de transacciones y agregué el Controlador de Sincronización como hijo al controlador de transacciones. Por favor, avíseme si lo estoy haciendo bien.

También avíseme si hay otra forma de lograr la concurrencia para una acción específica (por ejemplo, 5 usuarios presionando el botón de inicio de sesión al mismo tiempo).

Respuesta

16

En primer lugar, debe intentar distinguir entre 'simultáneo' y 'simultáneo'. Normalmente son términos muy similares, pero en la prueba de carga tienen diferentes significados. Simultáneo significa dos o más solicitudes al mismo tiempo. Concurrente es dos o más hilos (scripts) que se ejecutan en paralelo.

Entonces, de lo que está hablando es de intentar configurar JMeter para simular múltiples solicitudes simultáneas. Pero en realidad, hay un enfoque mucho, mucho mejor que esto. En lugar de concentrarse en tratar de llegar a la misma solicitud al mismo tiempo, lo que es difícil en JMeter, debe configurar su prueba para que sea una representación realista del tipo de carga que desea que admita su aplicación. Si lo haces bien, utilizando tiempos de espera aleatorios, controladores de rendimiento y un número realista de subprocesos, entonces probarás automáticamente la concurrencia y al mismo tiempo ejecutarás pruebas de rendimiento genuinas, válidas y útiles.

Así que, básicamente, suelte el temporizador de sincronización, use un temporizador de rendimiento constante, configure los tiempos de espera y luego calcule el número correcto de hilos para generar la carga deseada.

La ventaja añadida de este enfoque es que tendrá muchas menos probabilidades de generar falsos negativos. Por ejemplo, si accedes a tu servidor con 5 solicitudes de inicio de sesión simultáneas, es posible que descubras que esta llamada tiene un solo subproceso y los tiempos de respuesta aumentan. Pero tal vez esto no importe, tal vez las posibilidades de dos llamadas de inicio de sesión al mismo tiempo son tan pequeñas que no vale la pena perder tiempo cambiando el código. Este es un concepto muy, muy importante en la prueba de carga, quizás el más importante, debe tener objetivos realistas, sin los cuales podría ejecutar pruebas, encontrar errores falsos y, en general, perder el tiempo para siempre.

+1

Gracias por la excelente explicación. Pero mi situación es un poco diferente. Solo quiero ver cuándo 5 usuarios acceden al botón de inicio de sesión y búsqueda al mismo tiempo que responde mi servidor. Es por eso que he usado el controlador de sincronización. Cuando realicé mi prueba con el controlador de sincronización, los resultados que obtengo son un poco diferentes. He mencionado 10 hilos en el grupo de hilos y 5 en sincronización. Así que pensé que se ejecutará como 5 usuarios simultáneos y 5 simultáneos. Pero esta no es la forma en que se está ejecutando. La prueba está enviando solicitud de inicio de sesión y búsqueda en 2 lotes. Cada lote contiene 5 usuarios. – user1169236

+1

De nuevo, necesita comprender lo diferente entre concurrente y simultáneo. Ellos son diferentes. Un temporizador síncrono le dará simultaneidad, múltiples hilos le dará concurrencia. –

+0

¡Gracias por las sugerencias! Obtuve la solución. – user1169236

Cuestiones relacionadas