JMeterのテスト計画作成（負荷テスト）

# テスト計画作成
JMeterではテスト計画を設定して負荷テストを行います。テスト計画はテストを行う際の一連のステップのことを表します。

テスト計画の作成方法は大きく分けると2つあります。1個ずつ手入力して作成していく方法と「HTTPプロキシサーバ」を使用してキャプチャしていく方法があります。今回は「HTTPプロキシサーバ」を使用した方法を紹介します。
ブラウザはFirefoxを使用します。

# JMeter:HTTPプロキシサーバの設定

## 記録コントローラーの作成
HTTPプロキシサーバ経由でキャプチャしたテスト計画は「記録コントローラー」で記録します。
最初に「スレッドグループ」を作成します
「テスト計画->追加->Threads」
その次にスレッドグループ内に記録コントローラーを作成します。
「スレッドグループ->追加->ロジックコントローラー->記録コントローラー」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/8f251a33-6d9c-7352-d8ac-237dc07cf2da.png)

## HTTPプロキシサーバの作成
次にHTTPプロキシを作成します。
「テスト計画->追加->Non-Testエレメント->HTTPプロキシサーバ」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/4f884b32-6cf4-8c43-7c09-256ad4eaf74a.png)

## HTTPプロキシサーバのコントローラ設定
「対象となるコントローラ」で作成した記録コントローラを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/1a7f3cc3-9a32-13ab-c9a6-31acaf87554e.png)

# Firefoxの設定

## プロキシ設定
FirefoxのアクセスをJMeterのプロキシ経由へ変更します。
ブラウザの右上から設定に入ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/6927d30a-d3fb-a08b-3a90-2ce0e6160a17.png)

プロキシ設定を探します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/0db7ee2e-2697-6ae1-270d-17e30736b070.png)

IPアドレスとポート番号を以下の通りに設定します。
IPアドレス：127.0.0.1
ポート：8888

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/27c34e0f-2774-7cce-a4df-4445e24c9ffb.png)

### localhost(127.0.0.1)でアクセスする場合

アドレスバーに「about:config」と入力してアクセスします。
画面が切り替わったら「危険性を承知の上で使用する」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/9d3ab1ec-7d49-cc56-dd72-5e249dd15430.png)

検索ボックス内で以下のオプションで検索します。
``
network.proxy.allow_hijacking_localhost
``
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/88d6cc60-2080-281c-adfe-933cd37bb45e.png)

defaultはfalseになっているのでtrueに切り替えます。
これでlocalhostからアクセスできるようになります。

## 認証局の追加(https)
Firefoxの設定から「証明書を表示」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/b6124a06-3b6c-9679-e6e9-ce816e71a959.png)

認証局証明のインポートから、bin配下の「ApacheJMeterTemporaryRootCA.crt」ファイルをインポートします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/e93183f5-c690-5c7e-74bc-c553694f7bbf.png)

ダイアログで「この認証局によるウェブサイトの識別を信頼する」にチェックを入れてOKをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/72d9197a-c2c4-2364-9390-ec8f8cc50f19.png)

# テスト計画キャプチャ

## キャプチャ実施
HTTPプロキシサーバのstateで開始をクリックしてキャプチャを始めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/bb306fdb-e8b5-d1e4-c51f-2b93f8e9a5ab.png)

この状態でFirefoxで対象アプリケーションのトップページへアクセスします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/80037985-a4fd-e4f5-29ca-9f9139a6e763.png)
記録コントローラ配下にリクエスト情報と遷移が記録されます。

## テスト計画修正
記録コントローラー内のアクセス記録から不要なテスト計画を削除します。
方法としては2つあります。
1. HTTPプロキシサーバで除外フィルターを設定して取得（説明省略）
2. 手動で削除

不要なテスト計画を削除したら、名前を変更して見やすい形に変えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/380ec3fb-5a58-82e5-9c40-e13ec6508eeb.png)

#　動作確認
記録コントローラー内にリスナーを登録して動作確認を行います。
「記録コントローラー->リスナー->結果をツリーで表示」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/ecd6afa1-02e8-ebf3-df43-0b4711d18422.png)
実行してみて、緑色の表示が出ればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2603981/1628b6a5-54c7-3818-b5c2-78d2cf7da46f.png)

ただし、ログイン処理が含まれたテスト計画の場合、Webアプリケーションによってはログインが失敗した状態やタイムアウトの状態でも結果が緑色になる場合があります。ちゃんと応答データの中まで見て正しく処理や遷移が行われているか確認しましょう。