UJP - 技術情報1

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

Apache JMeter2.5.1をMacで使う

Apache JMeter2.5.1をMacで使う


0.改訂履歴

  • 2011.11.23 新規作成

1.はじめに

 このドキュメントでは,Jmeterを使って負荷テストを行う手順を説明する.


2.JMeterのインストール

  • 次のリンク先にある公式サイトから,ダウンロードする.
  • Apache JMeter.
  • 今回入手したのは,バージョン2.5.1
  • ダウンロードしたアーカイブを展開するだけで,インストールは完了.

3.JMeterを起動する

  • JMeterはjar形式で提供されているので,そのままダブルクリックで実行できる.

  • 最初の1回だけ,次のようなダイアログが表示される.

  • [開く]を選択して続ける.
  • 次のような画面が表示される.


  • 日本語が表示されない場合は,Optionメニューから言語を選択する.

4.簡単なHTTPリクエストのテスト を行う

  • 一番基礎的なテストとして,HTTPリクエストを実行してみる.

4.1.スレッドグループを作成する

  • まずは,[テスト計画]の中に[スレッドグループ]を作成する.[テスト計画]を右クリックで選択すればメニューがでてくる.


  • スレッドグループが,テストの基本となる.
    • スレッド(Thread)とは,OS上でアプリケーション内の処理を並列で行う際の最小の単位.
    • スレッドグループでは,スレッドを何個起動し,何回実行するかを定義する.
  • 次のような画面が表示される.

  • Ramp-Up期間とは,何秒間で全スレッドを生成するかを指定する.
    • Ramp-Upとは「増産する」という意味.
    • スレッド数を100,Ramp-Upを10秒とすると,100÷10秒で,1秒間に10スレッドが起動する.
    • スレッド数を100,Ramp-Upを5秒とすると,100÷5秒で,1秒間に20スレッドが起動する.
    • スレッド数を100,Ramp-Upを0秒とすると,100÷0秒で,1秒間に100スレッドが起動する.
  • 今回,次のような設定とした.

  • この設定だと,スレッドを10個立ち上げ,30回リクエストを行う.
  • つまり,サーバ側には10ユーザで合計300リクエストが記録される事になる.
  • 実行中にエラーが発生した場合は,[テスト停止]が行われる.エラーとは,404 File Not Foundも含まれる.

4.2.HTTPリクエストを設定する

  • JMeterで実行できる処理は,サンプラーの中で確認できる.
  • HTTPリクエストを実行する為には,サンプラーの中から選択して,スレッドグループに追加する.

  • [HTTPリクエスト]サンプラーを追加すると,次のような画面になる.

  • 最低限の設定を行ってみる.
    • 実行したいテストの情報
      • URL:http://testsite.jp/index.php
    • HTTPリクエストサンプラーへ設定する項目
      • サーバ名またはIP:testsite.jp
      • ポート番号:80
      • パス:index.php
  • 設定した状態は次の通り.

  • 今回の設定はきわめてシンプルに設定してあるが,環境によってはプロキシサーバ等を設定する事もできる.

4.3.テストを実行する

  • スレッドグループを作成し,サンプラーを設定すれば,テストを実行する事ができる.
  • テストを実行するには[実行]→[開始]を選択する.

  • これを選んでも,特にダイアログや実行中を示すものが無いが,実行中はこの[開始]メニューがグレー表示になって,選択する事ができ ない.

  • しばらくすると,テストが終了している.
  • Webサーバのアクセスログを確認すると,次のようなログが記録されている.
192.168.99.2 - - [23/Nov/2011:22:28:30 +0900] "GET /index.php HT
TP/1.1" 200 2064 "-" "Java/1.6.0_29" - - - [23/Nov/2011:22:28:30
 +0900] "GET /index.php HTTP/1.1" 200 2064 "-" "Java/1.6.0_29" -
 testsite.jp 0

4.4.USER-AGENTを変更する(設定エレメントのHTTPヘッダマネージャ)

  • デフォルトのままだとUSER_AGENTはJavaのランタイムバージョンが設定されているが,これを任意の文字列に変更する.
  • HTTPヘッダに設定されているUSER-AGENTは,[設定エレメント]を使って設定する.
  • [スレッドグループ]を右クリックする.

  • [設定エレメント]→[HTTP ヘッダマネージャ]を選択する.

  • [追加]ボタンを押すと,ヘッダを設定する事ができる.

  • [名前]および[値]の行が追加されるので,ダブルクリックして入力する.
    • 名前:USER-AGENT
    • 値:Mozilla/5.0 AppleWebKit KHTML Gecko Safari UJP
  • この状態で実行すると,次のようになる.
192.168.99.2 - - [24/Nov/2011:00:11:34 +0900] "GET /index.php HT
TP/1.1" 200 2097 "-" "Mozilla/5.0 AppleWebKit KHTML Gecko Safari
 UJP" - - - [24/Nov/2011:00:11:34 +0900] "GET /index.php HTTP/1.
1" 200 2097 "-" "Mozilla/5.0 AppleWebKit KHTML Gecko Safari UJP"
 - testsite.jp 0

  • 任意のUSER-AGENTが設定されている事が分かる.

4.5.スレッドグループ内で,移動す る

  • スレッドグループ内で追加したアイテムは作成順になっているが,場合によっては定義順を設定したい事がある.
  • 例として,[HTTPヘッダマネージャ]を[HTTPリクエスト]の前に移動してみる.

  • 移動したいアイテムをドラッグ&ドロップすると,メニューが出てくるので実施したい作業を選択する.

  • 移動できた事が確認できる.

5.実行結果を確認する(応答時間をリスナーでグラフ表示してスループットを確認)

  • ここまでの設定だと結果レポートが無い.レポート機能 「リスナー」をスレッドグループに追加すれば良い.

  • 設定できるリスナーは,多岐にわたる.

  • 今回は一番スタンダードな[グラフ表示]を使ってみる.
  • 他のアイテムと同じく,[スレッドグループ]を右クリックしてメニューから追加する.


  • グラフ表示について設定する部分もあるが,まずはデフォルトのまま,テストを実行してみる.

  • テストを実行すると,リアルタイムにグラフが表示される.
  • 上記は,スレッド数10,Ramp-Up 1,ループ30で実行した結果.
  • 下記は,スレッド数20,Ramp-Up 1,ループ30で実行した結果.

  • 緑色で表示してあるスループットが,705/分から,86/分となっ た.
  • ここでいうスループットは,Apache JMeterの独自のスループットなので何とも言えないが,スレッド数が2倍,つまりユーザ数が倍になったら,スループットは89%ダウンしたといえる.
  • 何回か実行して,[サンプル数]を一定数集めたところで,いろいろと判断すれば良いのだと,思われる.

6.HTTPリクエストの内容,応答の内容を確認する(結果をツリーで表示)

  • 応答だけではなく,そもそもHTTPリクエストが正しく行われているか,あるいはHTTPのヘッダ,応答内容を確認したい場合は,リスナーの[結果をツ リーで表示]を使えば良い.

  • 追加するだけで,設定不要.
  • テストを実行してみると,次のように結果が表示される.
  • 左列に,リクエストした順番にリストがあるので,選択する.
  • 画面右にあるタブに,各種情報が表示される.
  • Sampler resultは,HTTPのレスポンスコードが表示されている.


  • リクエストは,HTTPリクエスト,つまりJMeterがサーバに対して発行したURLやヘッダ情報が表示されている.

  • 応答データは,その名の通りHTTPのレスポンス内容,HTMLの内容が記録されている.

  • まずは大量のリクエストを発行するテストの前に,この結果を見てテストデータが正しいか否かを確認する事ができる.


広告スペース
Google