2012-09-24 22 views
7

No entiendo claramente cuál es el significado de un "grupo de subprocesos" en JMeter. ¿Eso significa que todas las pruebas (solicitudes Java, etc.) pertenecen a un determinado grupo de hilos ejecutado en un hilo o cada prueba en ese grupo de hilos se ejecuta en un hilo separado? No pude obtener una comprensión clara sobre esto a partir de la documentación de JMeter o la búsqueda en Google.¿Cuál es el significado de "Grupo de subprocesos" en JMeter?

+0

http://docs.oracle.com/javase/7/docs/api/java/lang/ThreadGroup.html – SLaks

Respuesta

6

véanse las notas explicativas:

A thread group es un conjunto de hilos de ejecución el mismo escenario. Establezca el número de iteraciones en la configuración. El comportamiento del subproceso se define de acuerdo con la aceleración y se destruye una vez que ha transcurrido el número de iteraciones por subproceso.

Tenga en cuenta que a partir de la versión 2.8, usted será capaz de retrasar la creación del hilo hasta que el momento en que el hilo debe empezar a trabajar, este se adaptará a las pruebas que utilizan hilos muy corta duración y muchos hilos.

Los grupos de hilos puede ser visto como un conjunto de usuarios virtuales, pero no necesariamente. Puede ser algo más dependiendo de cómo desarrolles tu prueba.

+0

Buen enlace. Eso lo aclaró para mí y no fue exactamente como lo había pensado. – wmorrison365

4

Según entendí (Lo que quería saber), Todas las operaciones en un grupo de hilos de JMeter se ejecutan secuencialmente una vez por cada hilo y la iteración. Por lo tanto, significa que cada una de las operaciones en un grupo de hilos no se ejecuta en su propio conjunto separado de hilos, sino que comparte cada hilo con las otras operaciones en su grupo de hilos.

Por ejemplo,

  • Thread Grupo 1
    • Operación 1
    • Operación 2
    • Operación 3

Si hemos programado este grupo de hilos de rosca Group 1 para ejecutar en 3 hilos, wha t sucede es,

  • Operación 1, Operación 2 y la Operación 3 ejecutará en hilo 1.
  • Operación 1, Operación 2 y la Operación 3 ejecutará en hilo 2.
  • Operación 1, Operación 2, y la Operación 3 se ejecutará en el subproceso 3. etc.

Anteriormente, no estaba seguro de si cada una de estas operaciones se ejecuta en un hilo separado.

+0

Has entendido bien. Debería poner esto en su pregunta y aceptar la respuesta que sea mejor para usted. –

0

Sólo para contribuir aún más después de mi propia investigación (por claridad y exhaustividad, espero):

  1. Un ThreadGroup tiene peticiones/"operaciones", como se describió anteriormente (en el resumen del Manjula Weerasinge), pero también tiene usuarios y bucles config.
  2. Un ThreadGroup crea un hilo por usuario. Este hilo (que representa a un usuario) ejecuta todas las operaciones en ese ThreadGroup, en secuencia en ese bucle.
  3. Estos hilos son reutilizados en todos los bucles - es decir: bucle 2 también se ejecutará el mismo conjunto de operaciones como n diferentes usuarios, pero esto reutilizarán los mismos hilos como bucle 1.

En resumen, un ThreadGroup tiene un hilo por usuario y se usa para ejecutar todas las pruebas en ese grupo, para todos los bucles.

Este fue el caso a través de dos bucles con 10 usuarios en mi prueba contenía lo siguiente:

System.out.println("MyTest#testSearchNodeByNodeNameExactMatch: MyTest=" 
     +this + "(" +System.identityHashCode(this) +")" 
     +", thread=" +System.identityHashCode(Thread.currentThread())); 

y los registros podrían resumirse usando (salida println asumiendo escrito para enhebrar-output.2.txt):

grep MyTest#test thread-output.2.txt | awk -F ', ' '{print $2}' | sort | uniq 
Cuestiones relacionadas