負荷テストといえばApache JMeter
https://jmeter.apache.org/久しぶりに使用するので、改めて使い方を調べてみます。
以前使用したときのバージョンは2.12ですが、現在は4.0が最新版でした。
Apache JMeter 2.12の簡単な使い方Ubuntu 18.04で動かしてみます。
jreのインストール
Java製のツールなので、jreをインストールしておきます。
$ sudo apt install openjdk-11-jre
JMeterのダウンロードと実行
以下のURLからJMeterをダウンロードします。
https://jmeter.apache.org/download_jmeter.cgi
「apache-jmeter-4.0.tgz」をダウンロードし、解凍します。
解凍したフォルダのbinに「jmeter.sh」があるので、実行します。
$ cd apache-jmeter-4.0/bin/
$ ./jmeter
しばらく見ないうちに、おしゃれな画面になりましたね。

テストの作成
http://192.168.1.102/index.phpに対して負荷テストを実行してみます。
こんな画像やjs,cssを含むページを作成しました。
・index.php
- <html lang="ja">
- <head>
- <meta charset="UTF-8">
- <link rel="stylesheet" type="text/css" href="css/sample.css">
- <title>jmeter</title>
- </head>
- <body>
- <h3><?php echo('hello, JMeter!'); ?>
- <div>
- <img src="img/cc1.jpg">
- </div>
- <div>
- <img src="img/cc2.jpg">
- </div>
- <div>
- <img src="img/cc3.jpg">
- </div>
- <div>
- <img src="img/cc4.jpg">
- </div>
- <script src="js/jquery-3.3.1.min.js"></script>
-
- </body>
- </html>

※画像はこちらからお借りしました。
https://matome.naver.jp/odai/2135753241807550401「テスト計画」を右クリックし,「追加」-「Threads(Users)」-「スレッドグループ」を選択。

スレッド数は「50」
Ramp-Up期間(秒)は「10」
ループ回数は「100」にしてみました。

続いて、「スレッドグループ」を右クリックし,「追加」-「サンプラー」-「HTTPリクエスト」を選択。

サーバー名またはIPは「192.168.1.102」
パスは「index.php」と指定します。

「スレッドグループ」を右クリックし,「追加」-「リスナー」-「結果を表で表示」を選択。

ここまで設定できたら、Ctrl + Sで設定を保存しておきます。

テストの実行
ツールバーの「開始」をクリックでテスト実行です。

スレッド数50で100回ループなので、5,000回リクエストが実行されます。

画像やjs,cssも
nginxのログを見てみると、index.phpにしかアクセスがないことがわかります。
$ tail /var/log/nginx/access.log
192.168.1.4 - - [04/Jul/2018:14:17:49 +0000] "GET /index.php HTTP/1.1" 200 465 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:17:49 +0000] "GET /index.php HTTP/1.1" 200 465 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:17:49 +0000] "GET /index.php HTTP/1.1" 200 465 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:17:49 +0000] "GET /index.php HTTP/1.1" 200 465 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:17:49 +0000] "GET /index.php HTTP/1.1" 200 465 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:17:49 +0000] "GET /index.php HTTP/1.1" 200 465 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:17:49 +0000] "GET /index.php HTTP/1.1" 200 465 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:17:49 +0000] "GET /index.php HTTP/1.1" 200 465 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:17:49 +0000] "GET /index.php HTTP/1.1" 200 465 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:17:49 +0000] "GET /index.php HTTP/1.1" 200 465 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
画像やjs,cssのダウンロードも含めた負荷テストがしたい場合、
こちらが参考になりました。
画像やjavascript、cssなどを取得する「Embedded Resources from HTML Files」「HTTPリクエスト」の「Advanced」タブを表示します。
「全てのイメージとアプレットを繰り返しダウンロードする(HTMLファイルのみ)」にチェックをつけるだけ。

再度テスツを実行してログを確認すると、ちゃんと画像やjs,cssもダウンロードされていました。

$ tail /var/log/nginx/access.log
192.168.1.4 - - [04/Jul/2018:14:23:06 +0000] "GET /img/cc3.jpg HTTP/1.1" 200 951058 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:23:06 +0000] "GET /img/cc4.jpg HTTP/1.1" 200 221748 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:23:06 +0000] "GET /js/jquery-3.3.1.min.js HTTP/1.1" 200 86927 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:23:06 +0000] "GET /index.php HTTP/1.1" 200 465 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:23:06 +0000] "GET /css/sample.css HTTP/1.1" 200 34 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:23:06 +0000] "GET /img/cc1.jpg HTTP/1.1" 200 129885 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:23:06 +0000] "GET /img/cc2.jpg HTTP/1.1" 200 207705 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:23:06 +0000] "GET /img/cc3.jpg HTTP/1.1" 200 951058 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:23:06 +0000] "GET /img/cc4.jpg HTTP/1.1" 200 221748 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
192.168.1.4 - - [04/Jul/2018:14:23:06 +0000] "GET /js/jquery-3.3.1.min.js HTTP/1.1" 200 86927 "-" "Apache-HttpClient/4.5.5 (Java/10.0.1)"
【参考URL】
Apache JMeter 2.12の簡単な使い方画像やjavascript、cssなどを取得する「Embedded Resources from HTML Files」
- 関連記事
-
テーマ:プログラミング - ジャンル:コンピュータ
- 2018/07/04(水) 23:48:42|
- Java
-
| トラックバック:0
-
| コメント:0
- | 編集