2012-09-24 17 views
7

JMeterの "スレッドグループ"の意味が明確にわかりません。これは、すべてのテスト(Java要求など)が特定のスレッドグループに属しているスレッドが1つのスレッドで実行されていること、またはそのスレッドグループの各テストが別のスレッドで実行されていることを意味しますか?私はJMeterの文書化やグーグル・グーグルでこれについて明確な理解を得ることができませんでした。JMeterの「スレッドグループ」の意味は?

+0

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

答えて

6

thread groupは同じシナリオを実行するスレッドの集合です。構成内の反復回数を設定します。 スレッドビヘイビアは、スレッドごとの反復回数が経過すると、ランプアップおよび破棄によって定義されます。

バージョン2.8以降では、スレッドが動作を開始するまでスレッド作成を遅延させることができます。これは、非常に短いスレッドと多数のスレッドを使用するテストに適合します。

スレッドグループは仮想ユーザーのセットとして見ることができますが、必ずしもそうである必要はありません。それはあなたのテストをどのように開発するかによって、何か他のものになる可能性があります。

+0

いいリンク。それは私のためにそれをクリアし、それは私が考えた方法ではなかった。 – wmorrison365

1

スレッド=シミュレートされたユーザー。
スレッドグループ=ユーザーです。
jMeter Plugins thread group controllersは、デフォルトスレッドグループよりもはるかに制御されています。説明を参照してください

4

私が理解したように、JMeterスレッドグループのすべての操作は、各スレッドと繰り返しごとに1回ずつ実行されます。つまり、スレッドグループ内の各操作は、別々のスレッドセットでは実行されませんが、各スレッドはスレッドグループ内の他の操作と共有されます。例えば

  • スレッドグループ1
    • 操作1
    • 操作2
    • オペレーション3

私たちは、このスレッドグループのスレッドグループを予定している場合1を3つのスレッドで実行するtは、

  • 操作1、操作2で発生し、操作3は、スレッド1
  • 操作1、操作2で実行され、操作3のスレッドで実行される2
  • 操作1、操作2、および操作3はスレッド3で実行されます。

以前は、これらの操作がそれぞれ別のスレッドで実行されているかどうかはわかりませんでした。ただ、さらに(明確にするため、私は願って完全性)私自身の調査次貢献する

+0

あなたはよく理解しました。あなたはあなたの質問にこれを入れて、あなたにとって最善の答えを受け入れるべきです。 –

0

  1. Aスレッドグループは、上記のように(マンジューラWeerasingeの概要に)要求/「操作」を持っているだけでなく、ユーザーとのループを持っていますconfig。
  2. スレッドグループは、ユーザーごとにスレッドを作成します。このスレッド(ユーザーを表す)は、そのループ内でそのスレッドグループ内のすべての操作を順番に実行します。ループ2はまた、N個の異なるユーザーとして操作の同じセットを実行するが、これは要するに1

ループと同じスレッドを再利用します:すなわち -

  • これらのスレッドは、すべてのループを横切って再利用されますスレッドグループにはユーザーごとのスレッドがあり、すべてのループに対して、そのグループ内のすべてのテストを実行するために使用されます。

    これは私のテストは、以下が含まれて10人のユーザを持つ2つのループ間で本当だった:

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

    とログは、(スレッドoutput.2.txtに書き込まれたのprintln出力を仮定)を使用してまとめることができます。

    grep MyTest#test thread-output.2.txt | awk -F ', ' '{print $2}' | sort | uniq 
    
  • 関連する問題