2012-09-24 15 views
7

Nie rozumiem dokładnie, co oznacza "grupa wątków" w JMeter. Czy oznacza to, że wszystkie testy (żądania Java itp.) Należą do pewnej grupy wątków uruchamianych w jednym wątku, czy też każdy test w tej grupie wątków działa w osobnym wątku? Nie mogłem uzyskać jasnego zrozumienia tego z dokumentacji JMeter lub googlowania.Co to jest "grupa wątków" w JMeter?

+0

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

Odpowiedz

6

wyjaśnień zajrzyj:

thread group jest zbiorem wątków wykonujących ten sam scenariusz. Ustaw liczbę iteracji w konfiguracji. Zachowanie nici definiowane jest zgodnie z rampą i niszczone, gdy liczba iteracji na wątek już minęła.

Należy zauważyć, że od wersji 2.8 będzie można opóźnić tworzenie wątku do momentu rozpoczęcia pracy wątku, zostanie to dostosowane do testów wykorzystujących bardzo krótkie wątki i wiele wątków.

Grupy wątków mogą być postrzegane jako zbiór użytkowników wirtualnych, ale niekoniecznie. Może to być coś innego w zależności od tego, jak rozwiniesz swój test.

+0

Dobry link. To wyjaśniło mi to i nie było dokładnie tak, jak myślałem. – wmorrison365

4

Jak zrozumiałem (co chciałem wiedzieć), wszystkie operacje w grupie wątków JMeter uruchamiają sekwencyjnie raz na każdy wątek i iterację. Oznacza to, że każda operacja w grupie wątków nie działa w osobnym zestawie wątków, ale dzieliła każdy wątek z innymi operacjami w grupie wątków.

Przykładowo

  • grupa nitek 1
    • Operacja 1
    • Operacja 2
    • Operacja 3

Jeśli mają zaplanowane grupa gwint grupa nitek 1 do uruchomienia w 3 wątkach, wha t dzieje,

  • Operacja 1 operacji 2 i Operacja 3 zostaną wykonane w wątku 1.
  • sterującego 1, 2 Działanie i obsługa 3 zostaną wykonane w wątku 2.
  • Operacja 1, operacja 2, a operacja 3 zostanie wykonana w wątku 3. itd.

Wcześniej nie byłem pewien, czy każda z tych operacji działa na osobnym wątku.

+0

Dobrze zrozumiałeś. Powinieneś umieścić to w swoim pytaniu i zaakceptować odpowiedź, która jest dla ciebie najlepsza. –

0

Żeby dodatkowo przyczynić się następujące moje własne śledztwo (dla jasności i kompletności mam nadzieję):

  1. ThreadGroup ma prośby/„Operacje” w sposób opisany powyżej (w skrócie Manjula Weerasinge za), ale również użytkowników i pętle config.
  2. Grupa wątków tworzy wątek na użytkownika. Ten wątek (reprezentujący użytkownika) uruchamia wszystkie operacje w tej grupie wątków, w kolejności w tej pętli.
  3. Te wątki są ponownie wykorzystywane we wszystkich pętlach - to jest: pętla 2 będzie również wykonać ten sam zestaw operacji jak n różnych użytkowników, ale będzie to ponowne użycie tych samych tematów w pętli 1.

Podsumowując, grupa ThreadGroup ma wątek na użytkownika i jest używana do uruchamiania wszystkich testów w tej grupie dla wszystkich pętli.

To była prawda w dwóch pętlach z 10 użytkowników, gdzie moja próba zawierała następujące elementy:

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

I dzienniki można podsumować za pomocą (zakładając wyjście println napisane w wątku-output.2.txt):

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