@ledsun blog

無味の味は佳境に入らざればすなわち知れず

JMeterで一定間隔でテストを実行する

負荷をかける際に一定の間隔をあけて負荷を掛けたいことがあります。

たとえば、NICTの公開しているNTPサーバにはHTTPインタフェースでは

ポーリング間隔は1時間平均で20回(あるいは1日平均で480回)を越えないようにしてください

と注意書きが記載されています。

今回は3秒間隔で現在時刻を取得するシナリオを作成します。

使用コンポーネント

  • 「定数タイマ」タイマ
  • 「HTTP リクエスト」サンプラー
  • 「結果をツリーで表示」リスナー

前提

以下ができること

  1. JMeterを起動する。 (JMeter を起動する参照)
  2. 「HTTP リクエスト」サンプラーを設定する。 (JMeter でテストを実行する参照)

手順

手順説明

  1. 「HTTP リクエスト」サンプラーを設定します
  2. 「定数タイマ」タイマを設定します
  3. 「結果をツリーで表示」リスナーを追加します
  4. 「スレッドグループ」の「ループ回数」を設定します
  5. テストを実行します
  6. テスト結果を確認します

手順実行

1. 「HTTP リクエスト」サンプラーを設定

  1. [テスト計画]を右クリックして [追加] > [Threads(Users)] > [スレッドグループ] を選びます。
  2. [スレッドグループ]を右クリックして [追加] > [サンプラー] > [HTTP リクエスト] を選びます。
  3. [HTTP リクエスト]を選択します。[サーバ名または IP]に ntp-a1.nict.go.jp を[パス]に /cgi-bin/time を入力します。

f:id:ledsun:20130514122419p:plain

2. 「定数タイマ」タイマを設定

  1. [スレッドグループ]を右クリックして [追加] > [タイマ] > [定数タイマ] を選びます。
  2. [定数タイマ]を選択します。[スレッド遅延時間(ミリ秒)]に 3000 を入力します。

f:id:ledsun:20130514122527p:plain

3. 「結果をツリーで表示」リスナーを追加

  1. [スレッドグループ]を右クリックして [追加] > [リスナー] > [結果をツリーで表示] を選びます。

f:id:ledsun:20130514122632p:plain

4. 「スレッドグループ」の「ループ回数」を設定

  1. [スレッドグループ]を選択
  2. [ループ回数]に 3 を入力します。

f:id:ledsun:20130514122741p:plain

5. テストを実行

  1. 緑色の三角形をクリックします。
  2. ダイアログが表示されるので[はい(Y)]を選び、NictNTP.jmx と名前を付けて保存します。

f:id:ledsun:20130514122937p:plain

6. テスト結果を確認

  1. [結果をツリーで表示]で実行結果を確認します。
  2. [HTTP リクエスト]を選び[応答データ]タブを選びます。
  3. 実行した時刻が返ってきているのが確認できます。

f:id:ledsun:20130514123439p:plain

テストの実行中に「結果をツリーで表示」を見ると、テスト開始から3秒経って最初のHTTPリクエストが送られるのが分かります。 これは「タイマ」コンポーネントを使っているからです。 「タイマ」コンポーネントは「同じ階層の全サンプラー」に起動するまでの待ち時間を設定します。 テストの途中で一回だけ待つには「Test Action」サンプラーを使います。

シナリオファイル

https://github.com/ledsun/SandBox/blob/master/JMeter/NictNTP.jmx