Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
a n    I n t r o d u c t i o n    t o    J M e t e r

JMeter 入門
@tikemin

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

突然ですが
■こんなケースありませんか?
○

Webページがどの程度のアクセス(負荷)に耐えられる
のか知りたい(または、どの程度性能...
a n    I n t r o d u c t i o n    t o    J M e t e r

負荷テスト
■どうやって?
○

ブラウザ大量に開いて5F連打(゜ロ゜!!)
→指が疲れる

○

大量の人を、日本全国にちりばめて一斉...
a n    I n t r o d u c t i o n    t o    J M e t e r

負荷テストツール
■JMeter(GUI/Free)→今日はコレ
■OpenSTA(GUI/Free)
■Load Impact(GUI...
a n    I n t r o d u c t i o n    t o    J M e t e r

JMeterとは??
■Java製のアプリケーション(OSS)
■もともとはWeb用の負荷テストツール
■HTTP/HTTPS/SOAP...
a n    I n t r o d u c t i o n    t o    J M e t e r

JMeterとは?

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

JMeterとは?
■テスト計画:1つのテストの内容
■シナリオ:スレッドグループ(詳細は後述)
■サンプラー:スレッドグループ内の1つ...
a n    I n t r o d u c t i o n    t o    J M e t e r

演習
■では実際に手をうごかしてみましょう
まずは、JMeterを起動してください
■ダウンロードは公式サイトから
http://jme...
a n    I n t r o d u c t i o n    t o    J M e t e r

JMeterの画面

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

JMeterとは?
■テスト計画:1つのテストの内容
■シナリオ:スレッドグループ(詳細は後述)
■サンプラー:スレッドグループ内の1つ...
a n    I n t r o d u c t i o n    t o    J M e t e r

Hello JMeter
■スレッドグループを追加する

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

Hello JMeter
■サンプラーを追加

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

Hello JMeter
■リスナー追加

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

演習1
■JMeterを使って1から10ページ目までのアク
セスにかかる時間を計測してみましょう!
(※制限時間10分)
下のボタンで実...
a n    I n t r o d u c t i o n    t o    J M e t e r

演習1 解説
■結果についての解説
○

Sampler Result
Load time(ms)?
Latency(ms)?

○
○...
a n    I n t r o d u c t i o n    t o    J M e t e r

LoadTime/Latency

13年12月26日木曜日

Latency

Load time

Client

Server
r...
a n    I n t r o d u c t i o n    t o    J M e t e r

マルチスレッド
■Webシステムは基本的にマルチスレッド
○

○

13年12月26日木曜日

JMeterでもマルチスレッド(多重)...
a n    I n t r o d u c t i o n    t o    J M e t e r

演習2
■演習1で作成したシナリオをマルチスレッドで実
行してみましょう。
(※制限時間5分)

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

演習2 解説
■スレッド数→ユーザ数
■Ramp-Up期間(秒)→単位時間
■ループ回数→アクセス数

実際の環境に近い負荷テストが実行...
a n    I n t r o d u c t i o n    t o    J M e t e r

JMeterのマルチスレッド
■数百単位のスレッドをWindowsで動かすときに
は注意が必要
→出口(ポート)の最大数がレジストリで制...
a n    I n t r o d u c t i o n    t o    J M e t e r

演習3-1
■次のプログラムのバグを発見してください
○

ソースコードは以下からダウンロード
https://github.com/t...
a n    I n t r o d u c t i o n    t o    J M e t e r

演習3-1 解説
■スレッドの安全性
○

A
B

アクセス数を表示するプログラム
1+1→2

値→1

値→1

値→2

1+1...
a n    I n t r o d u c t i o n    t o    J M e t e r

演習3-2
■演習3のプログラムの問題点を改善してくださ
い。(※制限時間5分)

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

演習3-2 解説
■プログラムの先頭にSynchronizedをつける
1 protected synchronized void do...
a n    I n t r o d u c t i o n    t o    J M e t e r

演習3-2 解説
■プログラムの先頭にSynchronizedをつける

A

値→1

1+1→2

値→2

B

値→2
読み込み...
a n    I n t r o d u c t i o n    t o    J M e t e r

ファイル読み込み
■JMeterでは、外部(CSVファイルやXML)を読
み込んでリクエストパラメータにする事が可能で
す
■リクエスト...
a n    I n t r o d u c t i o n    t o    J M e t e r

ファイル読み込み
■スレッドグループに以下を追加します

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

ファイル読み込み
■読み込むCSVの情報を設定します

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

ファイル読み込み
■HTTPリクエストのパラメータとして使用
○

13年12月26日木曜日

${<変数名>}とすることでパラメータと...
a n    I n t r o d u c t i o n    t o    J M e t e r

演習4
■次は、ダウンロードしたファイル
(sample03.csv)をリクエストパラメータにす
るように改良してみてください。
(※制...
a n    I n t r o d u c t i o n    t o    J M e t e r

演習4 解説
■(簡単なので省略)

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

ファイル書き込み
■JMeterでは、リクエストに対するレスポンス結
果をファイル出力する事ができます

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

ファイル書き込み
■ファイル書き込み時の設定一覧

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

ファイル書き込み
■ファイル書き込み時の設定一覧

(参考)http://sy5.sakura.ne.jp/jmeter/ref/lis...
a n    I n t r o d u c t i o n    t o    J M e t e r

演習5
■演習4で作成したシナリオのレスポンス結果を
ファイルに保存するように改良してください
(※制限時間10分)

13年12月26...
a n    I n t r o d u c t i o n    t o    J M e t e r

演習5 解説
■(簡単なので省略)

13年12月26日木曜日
a n    I n t r o d u c t i o n    t o    J M e t e r

まとめ
■JMeter
○

Java製のGUIアプリケーション(OSS)

○

様々ななプロトコルに対応
HTTP/HTTPS/FT...
a n    I n t r o d u c t i o n    t o    J M e t e r

Reference
■http://jmeter.apache.org
■http://wiki.apache.org
■http://...
Upcoming SlideShare
Loading in …5
×

JMeter入門

5,105 views

Published on

JMeter初心者向け(超入門編)

Published in: Technology
  • Be the first to comment

JMeter入門

  1. 1. a n   I n t r o d u c t i o n   t o   J M e t e r JMeter 入門 @tikemin 13年12月26日木曜日
  2. 2. a n   I n t r o d u c t i o n   t o   J M e t e r 突然ですが ■こんなケースありませんか? ○ Webページがどの程度のアクセス(負荷)に耐えられる のか知りたい(または、どの程度性能か) • ユーザ数 • 単位時間 • 連続アクセス数 13年12月26日木曜日
  3. 3. a n   I n t r o d u c t i o n   t o   J M e t e r 負荷テスト ■どうやって? ○ ブラウザ大量に開いて5F連打(゜ロ゜!!) →指が疲れる ○ 大量の人を、日本全国にちりばめて一斉アクセス →コストがかかる(人、お金、場所etc.) ■どちらも、再現性がない 13年12月26日木曜日
  4. 4. a n   I n t r o d u c t i o n   t o   J M e t e r 負荷テストツール ■JMeter(GUI/Free)→今日はコレ ■OpenSTA(GUI/Free) ■Load Impact(GUI/Shareware) ■curl-loader(CUI/Free) ■ab(CUI/Free) 13年12月26日木曜日
  5. 5. a n   I n t r o d u c t i o n   t o   J M e t e r JMeterとは?? ■Java製のアプリケーション(OSS) ■もともとはWeb用の負荷テストツール ■HTTP/HTTPS/SOAP/FTP ■JDBC/LDAP/Mailなどのテストも可能 13年12月26日木曜日
  6. 6. a n   I n t r o d u c t i o n   t o   J M e t e r JMeterとは? 13年12月26日木曜日
  7. 7. a n   I n t r o d u c t i o n   t o   J M e t e r JMeterとは? ■テスト計画:1つのテストの内容 ■シナリオ:スレッドグループ(詳細は後述) ■サンプラー:スレッドグループ内の1つのリクエ スト(または、アクセス) テスト計画(1):シナリオ(n):サンプラー(m) 13年12月26日木曜日
  8. 8. a n   I n t r o d u c t i o n   t o   J M e t e r 演習 ■では実際に手をうごかしてみましょう まずは、JMeterを起動してください ■ダウンロードは公式サイトから http://jmeter.apache.org/usermanual/best-pract 13年12月26日木曜日
  9. 9. a n   I n t r o d u c t i o n   t o   J M e t e r JMeterの画面 13年12月26日木曜日
  10. 10. a n   I n t r o d u c t i o n   t o   J M e t e r JMeterとは? ■テスト計画:1つのテストの内容 ■シナリオ:スレッドグループ(詳細は後述) ■サンプラー:スレッドグループ内の1つのリクエ スト(または、アクセス) それぞれを作成します 13年12月26日木曜日
  11. 11. a n   I n t r o d u c t i o n   t o   J M e t e r Hello JMeter ■スレッドグループを追加する 13年12月26日木曜日
  12. 12. a n   I n t r o d u c t i o n   t o   J M e t e r Hello JMeter ■サンプラーを追加 13年12月26日木曜日
  13. 13. a n   I n t r o d u c t i o n   t o   J M e t e r Hello JMeter ■リスナー追加 13年12月26日木曜日
  14. 14. a n   I n t r o d u c t i o n   t o   J M e t e r 演習1 ■JMeterを使って1から10ページ目までのアク セスにかかる時間を計測してみましょう! (※制限時間10分) 下のボタンで実行 ■対象サイト ○ 13年12月26日木曜日 Google, Yahoo, 自分のサイト etc.
  15. 15. a n   I n t r o d u c t i o n   t o   J M e t e r 演習1 解説 ■結果についての解説 ○ Sampler Result Load time(ms)? Latency(ms)? ○ ○ 13年12月26日木曜日 リクエスト 応答データ
  16. 16. a n   I n t r o d u c t i o n   t o   J M e t e r LoadTime/Latency 13年12月26日木曜日 Latency Load time Client Server request response
  17. 17. a n   I n t r o d u c t i o n   t o   J M e t e r マルチスレッド ■Webシステムは基本的にマルチスレッド ○ ○ 13年12月26日木曜日 JMeterでもマルチスレッド(多重)でリクエストを投げ る事が可能 スレッドグループの変更をする
  18. 18. a n   I n t r o d u c t i o n   t o   J M e t e r 演習2 ■演習1で作成したシナリオをマルチスレッドで実 行してみましょう。 (※制限時間5分) 13年12月26日木曜日
  19. 19. a n   I n t r o d u c t i o n   t o   J M e t e r 演習2 解説 ■スレッド数→ユーザ数 ■Ramp-Up期間(秒)→単位時間 ■ループ回数→アクセス数 実際の環境に近い負荷テストが実行可能 13年12月26日木曜日
  20. 20. a n   I n t r o d u c t i o n   t o   J M e t e r JMeterのマルチスレッド ■数百単位のスレッドをWindowsで動かすときに は注意が必要 →出口(ポート)の最大数がレジストリで制限され てしまっている →そのためポートの最大数以上の負荷をかける事 ができない (参考)http://d.hatena.ne.jp/oreflow/20070906 13年12月26日木曜日
  21. 21. a n   I n t r o d u c t i o n   t o   J M e t e r 演習3-1 ■次のプログラムのバグを発見してください ○ ソースコードは以下からダウンロード https://github.com/tikemin/Jmeterstudy ○ eclipseを起動してプロジェクトをデプロイ ○ その後、「localhost:8080/JMeterTest/sample01」へJMeter でアクセスして問題点を見つけてください (※制限時間15分) 13年12月26日木曜日
  22. 22. a n   I n t r o d u c t i o n   t o   J M e t e r 演習3-1 解説 ■スレッドの安全性 ○ A B アクセス数を表示するプログラム 1+1→2 値→1 値→1 値→2 1+1→2 値→2 この時点ではまだ値が書き込まれていない 13年12月26日木曜日
  23. 23. a n   I n t r o d u c t i o n   t o   J M e t e r 演習3-2 ■演習3のプログラムの問題点を改善してくださ い。(※制限時間5分) 13年12月26日木曜日
  24. 24. a n   I n t r o d u c t i o n   t o   J M e t e r 演習3-2 解説 ■プログラムの先頭にSynchronizedをつける 1 protected synchronized void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 PrintWriter out = response.getWriter(); 3 out.println( ++userCount + "(Number of User)"); 4 } 5 別のやり方もある 13年12月26日木曜日
  25. 25. a n   I n t r o d u c t i o n   t o   J M e t e r 演習3-2 解説 ■プログラムの先頭にSynchronizedをつける A 値→1 1+1→2 値→2 B 値→2 読み込みと書き込みを同期化 13年12月26日木曜日 2+1→3 値→3
  26. 26. a n   I n t r o d u c t i o n   t o   J M e t e r ファイル読み込み ■JMeterでは、外部(CSVファイルやXML)を読 み込んでリクエストパラメータにする事が可能で す ■リクエストパターンが大量にある場合はcsvファ イル を利用したデータセットを作成することで メモリなどのリソースを削減できます 13年12月26日木曜日
  27. 27. a n   I n t r o d u c t i o n   t o   J M e t e r ファイル読み込み ■スレッドグループに以下を追加します 13年12月26日木曜日
  28. 28. a n   I n t r o d u c t i o n   t o   J M e t e r ファイル読み込み ■読み込むCSVの情報を設定します 13年12月26日木曜日
  29. 29. a n   I n t r o d u c t i o n   t o   J M e t e r ファイル読み込み ■HTTPリクエストのパラメータとして使用 ○ 13年12月26日木曜日 ${<変数名>}とすることでパラメータとして利用可能
  30. 30. a n   I n t r o d u c t i o n   t o   J M e t e r 演習4 ■次は、ダウンロードしたファイル (sample03.csv)をリクエストパラメータにす るように改良してみてください。 (※制限時間10分) 13年12月26日木曜日
  31. 31. a n   I n t r o d u c t i o n   t o   J M e t e r 演習4 解説 ■(簡単なので省略) 13年12月26日木曜日
  32. 32. a n   I n t r o d u c t i o n   t o   J M e t e r ファイル書き込み ■JMeterでは、リクエストに対するレスポンス結 果をファイル出力する事ができます 13年12月26日木曜日
  33. 33. a n   I n t r o d u c t i o n   t o   J M e t e r ファイル書き込み ■ファイル書き込み時の設定一覧 13年12月26日木曜日
  34. 34. a n   I n t r o d u c t i o n   t o   J M e t e r ファイル書き込み ■ファイル書き込み時の設定一覧 (参考)http://sy5.sakura.ne.jp/jmeter/ref/listener/saveresponsestoafile.html 13年12月26日木曜日
  35. 35. a n   I n t r o d u c t i o n   t o   J M e t e r 演習5 ■演習4で作成したシナリオのレスポンス結果を ファイルに保存するように改良してください (※制限時間10分) 13年12月26日木曜日
  36. 36. a n   I n t r o d u c t i o n   t o   J M e t e r 演習5 解説 ■(簡単なので省略) 13年12月26日木曜日
  37. 37. a n   I n t r o d u c t i o n   t o   J M e t e r まとめ ■JMeter ○ Java製のGUIアプリケーション(OSS) ○ 様々ななプロトコルに対応 HTTP/HTTPS/FTP/SOAP JDBC/LDAP/Mail ○ 13年12月26日木曜日 テスト計画/シナリオ/サンプラー
  38. 38. a n   I n t r o d u c t i o n   t o   J M e t e r Reference ■http://jmeter.apache.org ■http://wiki.apache.org ■http://amzn.to/1c88qHX 13年12月26日木曜日

×