業務でApache JMeterを使用する機会があったので、備忘録として書きます。
目次
- 対象者
- 環境
- Apache JMeterとは
- 事前準備
- JMeterインストール
- 使用方法
対象者
- 負荷テストにApache JMeterを使用したい方
- 初めてApache JMeterを使用する方
環境
- mac
Apache JMeterとは
Apache Software Foundationが開発したオープンソースの負荷テストツールです。主にWebアプリケーションの性能テストを行うために使用され、ユーザーの行動をシミュレートして大量のリクエストをサーバーに送り、そのレスポンスタイムや性能を測定できます。
事前準備
JMeterは、jarファイル起動のため、JDKを入れる必要があります。インストール済みの人は飛ばしてください。
今回はhomebrewでインストールします(homebrewインストールは省略します)。
# パッケージの情報を最新に更新
$ brew update
# Javaの現在のインストール状況確認
$ brew info java
openjdk: stable 20.0.1 [keg-only]
Development kit for the Java programming language
https://openjdk.java.net/
Not installed
# Javaインストール
$ brew install java
# macOSのシステムがJDKを認識できるようにシンボリックリンクをはります
$ sudo ln -sfn $(brew --prefix)/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
$ java --version
openjdk 20.0.1 2023-04-18
OpenJDK Runtime Environment Homebrew (build 20.0.1)
OpenJDK 64-Bit Server VM Homebrew (build 20.0.1, mixed mode, sharing)
JMeterインストール
今回は公式HPからzip形式のファイルを落として解凍する方法を記載します。他にもhomebrewからインストールできます。
apach-jmeter-✳︎.✳︎.zipを選択し、インストールしダブルクリック(解凍)
任意のフォルダに移動
bin¥ApachJMeter.jarをダブルクリックしてJMeterが起動します。
使用方法
負荷テストで単純なHTTPリクエストをテストすることもありますが、今回はパス、パラメータの動的、CSVファイルを出力させる機能のテストのため、その方法を記載しています。
静的なHTTPリクエスト、パス、パラメータをテストしたい場合は下記の記事を参考にしてください。
https://tech-blog.rakus.co.jp/entry/2017/08/24/111332
パラメータを動的にしたい場合
(例:{"user_id:*******"})
以下が作業の流れになっています。テキストファイルでもできますが、今回CSVファイルで設定しています。
今回は動的にuser_idを1、2、3、4、5に変更する方法を記載します。
スレッドグループの作成方法は上記記事を参考にしてください。
1 . CSVファイルの作成
2 . CSVデータセット構成要素の設定
スレッドグループの上で右クリック→以下のキャプチャより『CSVDatasetConfig』を押下
設定内容
Filename:『1.CSVファイルの作成』で作成CSVファイルのパスを指定
File encoding:UTF-8
Ignore first line:今回CSVファイルの1行目にヘッダーを入れたため、True
3 . HTTPリクエストの設定
スレッドグループの上で右クリック→以下のキャプチャより『HTTPリクエスト』を押下
テストに合わせて設定を追加してください。
HTTPリクエストのBodyDataにパラメータを設定。CSVファイルのデータを入れたい部分に${user_id}と記載。
パスを動的にしたい場合
(例:https://123456/user/(userid)/delete
)
パラメータを動的にしたい場合と同様、CSVファイル、CSVデータセット構成要素の設定をします。
違う点はHTTPリクエストの設定です。
CSVファイルではパスを設定します。
CSVファイルを出力させるAPIの場合
1 . HTTPリクエストの設定:
- スレッドグループ内にHTTPリクエストを追加します。このリクエストはCSVファイルを出力するAPIエンドポイントを指定します。
- 必要なヘッダー、パラメータ、ボディデータなどをリクエストに追加します。
3 . CSVデータセット構成要素の設定:
- CSVデータセット構成要素を追加します。
- 「Filename」フィールドにはCSVファイルのパスを指定します(例: /path/to/output.csv)。
- 「Variable Names」フィールドには、CSVファイルに出力するデータを指定します(例: response_data)。
4 . View Results Treeリスナーの設定:
- テスト計画にView Results Treeリスナーを追加します。
- View Results Treeリスナーは、リクエストとレスポンスの詳細な情報を表示し、CSVファイルに出力するために使用します。
- 「Filename」フィールドには出力するCSVファイルのパスを指定します(例: /path/to/output.csv)。
以上が、JMeterの基本的な導入と使用方法になります。これを基に、自分の実施したいテストの設定を追加してみてください。