Apache JMeterのインストールとシナリオ作成

## はじめに
Webアプリの負荷テストでよく利用される、Apache JMeterの利用方法をメモする
●検証環境
・Windows10
・Apache JMeter 5.5
・JAVA 8

### Apache JMeter 5.5の動作環境
Java 8以上が必要です

## Jmetterのダウンロードと起動		
1.以下サイトを開く
　https://jmeter.apache.org/
2.Download Releases　クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/bd8e2a22-76fa-85be-996e-584790c6b0a0.png)

3.「apache-jmeter-5.5.zip」をダウンロードする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/bce6d289-87eb-b17a-f74e-d91318973583.png)

4.解凍して任意の場所に保存する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/a23ecbeb-5365-068b-46c1-dd21cab16908.png)

5.binフォルダにある「ApacheJMeter.jar」を実行すると起動する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/7639d77c-90c6-03ef-8f94-9064fbfc5787.png)

##	シナリオを記録する初期設定		
負荷テストを実施する際は、ログイン＞一覧画面＞新規登録といった
一連の操作シナリオを作成します。
Jmeterでは画面操作した内容を記録できます。

1.テスト計画　→　追加　→　Threads(Users)　→　スレッドグループ	
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/c130e2ae-6669-bada-237f-588a8e7a9c14.png)

2.スレッドグループ　→　追加　→　ロジックコントローラ　→　記録コントローラ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/d8279998-8ef6-e480-171e-06c8a27fae5f.png)

3.テスト計画　→　追加　→　Non-Testエレメント　→　HTTP プロキシサーバ		
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/4088ed69-1972-e826-7742-4d582439ad3a.png)

4.対象となるコントローラの指定	
先ほど作成した、記録コントローラを選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/6beba499-f585-353b-a903-0599fcc3b680.png)

5.記録するファイルの除外設定	
そのまま、画面操作を記録すると余計なファイルが含まれるので
除外設定をしてくとすっきりする。

1.下記をコピー※必要に応じて修正
.\*\\.js.*
.\*\\.gif.*
.\*\\.svg.*
.\*\\.css.*
.\*\\.jpeg.*
.\*\\.jpg.*
.\*\\.woff2.*
.\*\\.ico.*
.\*\\.png.*
.\*\\.woff.*
.\*\\.ttf.*

2.HTTPプロキシサーバ＞Repuests Filttringをクリック

3.add from ClipBoardをクリックする
コピー内容が張り付けられる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/ef20c470-f0f3-21d1-59e5-a685a98cfe0f.png)

4.ポート番号を控えておく。規定値は8888

# シナリオの記録
シナリオの記録はプロキシにJmeterを通すことで実現している。

1.Windowsの設定
1-1.ウインドウズの設定　＞　プロキシ　 ※JmeterではなくPCです。
1-2.プロキシをONにする
1-3.アドレスはローカルを指定（127.0.0.1 or locarhost）
1-4.ポートは上記の設定
1-5.保存をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/471258b6-b140-8efd-adad-22a604355881.png)

※注意点：企業内で環境などで手動プロキシを利用している場合は解除する	

2.JMeterの設定
2-1.HTTPプロキシサーバ > 開始クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/c3d4d71b-74c6-f50f-fab3-4814dabefb24.png)

3.必要な操作を実行する	
必要な操作を行うと、記録コントローラの下にファイルが作成されていく

4.操作がおわったら終了する
　HTTPプロキシサーバ > 停止クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/2d4fb598-7f7a-8381-1f02-c1887da5246a.png)

# 負荷テストの実行
## 初期設定
1.スレッドグループ　→　追加　→　リスナー　→　結果をツリーで表示する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/e3111e44-784f-ffad-274a-71d50584a93c.png)

2.スレッドグループ　→　追加　→　リスナー　→　統計レポート
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/d818aa87-3aa8-3dbd-1f52-4eaddec99e6b.png)

3.スレッドグループ　→　追加　→　リスナー　→　結果を表で表示する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/9b6fd16b-c767-14b4-0d2a-266f02374b87.png)

4.スレッドグループのスレッドプロパティの各値を指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/bb6f9c95-55bf-c984-db95-98fdb08128f3.png)

特に重要と思う設定
・スレッド数：同時接続の数
・ループ回数：各スレッドがシナリオを実行する数
・Ramp-Up期間(秒)：スレッドがすべて起動するまでの時間。未指定の場合は、全スレッドが同時に実行される。

## テストの実行
1.実行をクリック	
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/3288c07f-ded6-6be1-8b0c-9d45bf004385.png)


# 参考SSLのインポート		
HTTPSにアクセスする場合、そのままだと以下エラーが出る。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/0eb59d3c-65a9-e05e-95eb-be4b5ef9c4b2.png)

エラーを回避する場合は、SSL証明書を設定しておく

1.フォルダ直下の「ApacheJMeterTemporaryRootCA.crt」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/0a30c192-fe57-3247-c2ba-9496a002c987.png)

2.証明書のインストールクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/48fcf685-7763-c555-35ef-c023962f68a9.png)

3.現在のユーザーを選択し、次へクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/02ae93bc-8958-54bc-b3f7-b7aa0c9691d4.png)

4.証明書をすべての次のストアに配置するを選択し
　参照クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/2345ed8b-0347-303e-dd9c-efa92b0b1bb6.png)

5.信頼されたルート証明機関を選択し、OKクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/ddc3a367-aade-0012-ab1e-80810c77a7f3.png)

6.完了クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/bd1074f3-cc22-baa0-3e7d-5d8952e67fca.png)

7.はいをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/e01aeb6c-21d4-4950-54e9-c8f418843837.png)

8.OKクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1308027/6854e0e9-eb39-6a47-ebbe-6a551048de3e.png)

※注意点
証明書有効期間は７日。
７日経過後は再設定が必要です。


# 履歴
2022/11/23 新規作成