ふと、思いついたんだ このページをアンテナに追加 RSSフィード Twitter

ブログ移転先
こちらに移動しました。

2009-11-07 信頼しすぎてはいけない。

 JMeterの「一度だけ実行されるコントローラー(Once Only Logic Controller)」の動作

JMeterの「一度だけ実行されるコントローラー」の動作が不思議だったので、報告。

原因を特定するためにソースまで見たかったけど、まだ見れていません。


  • 利用したJMeterのバージョン
    • [1]2.3.2 r665936
    • [2]2.3.4 r7855646

一度だけ実行されるコントローラーとは何か?

一度だけ実行されるコントローラ(Once Only Controller)はその全ての子要素を1回だけ実行します。全ての繰り返し処理でセッション(ログイン情報など)を共有したい場合などに利用します。

no title


さて、では以下のようなシナリオがあった場合にはどうなるのか。

f:id:pplaceCEO:20091107181032j:image

スレッドグループ(サンプル1、2、3、4)にあるループコントローラーはループ回数を3にしています。

また、サンプル4のループコントローラーのループ回数は1にしています。


さて、想定であれば、画像にあるHTTPリクエスト-2の(1)(2)(3)(4)は共に1回しか呼ばれないはず。

しかし実際はどうなるかと言うと、以下のとおり。

※[1]2.3.2の場合、[2]2.3.4の場合

  • (1)[1]:1回、[2]:1回
  • (2)[1]:2回、[2]:1回
  • (3)[1]:2回、[2]:1回
  • (4)[1]:3回、[2]:3回

どうも(4)の作りの場合、一度だけ実行すると言う行為を忘れて指定ループ回数だけリクエストを実行する模様。

例えば、今回はループ回数を3にしていますがこれをループ回数を6にしたら、6回リクエストが呼ばれます。


ただ、ループコントローラの配下に新たにシンプルコントローラを設置すると動作は変化し以下のようになります。

f:id:pplaceCEO:20091107182901j:image

  • (5)[1]:2回、[2]:1回



「一度だけ実行されるコントローラー」は便利なコントローラーではありますが、上記のように設置の仕方次第では、1回以上実行されるので注意が必要です。

※特にJMeterのバージョンが2.3.2の場合は危険です。


時間があれば、自分で修正したいところですな・・。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/pplaceCEO/20091107/1257586260
Connection: close