はじめに
JMeterは非常に人気のある負荷テストツールですが、大規模な負荷テストでは、単一マシンの実行では不十分です。負荷能力を向上させるために、JMeterクラスタの構築が必要です。以下に具体的な手順を示します。
ステップ1:サーバーの準備
クラスタを構築する前に、次の条件を満たす複数のサーバーを準備する必要があります。
- Java実行環境をインストールする(Java 8以降)。
- サーバー間で相互通信が可能である(例:SSHやRDPの使用)。
ステップ2:JMeterのインストール
これらのサーバーにJMeterをインストールします。最新のJMeterのインストールパッケージをウェブサイトからダウンロードし、インストールを行ってください。
- JMeterの
~/.bashrc
に環境変数を設定:
export JMETER_HOME=JMeterインストールディレクトリ
export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar
- 設定を有効にする:
source ~/.bashrc
JMeterを起動:
- 環境変数が設定されていれば、
jmeter
コマンドを実行。 - 環境変数が未設定の場合、JMeterのbinディレクトリに移動し、
sh jmeter.sh
を実行。
JMeterの日本語化
-
方法1:メニューから設定(暫定的)
JMeterを起動し、画面で Options > Choose Language > Japanese を選択。 -
方法2:設定ファイルの変更(恒久的)
-
macOS:
jmeter
ファイルを編集し、言語設定を${JMETER_LANGUAGE:="-Duser.language=ja -Duser.region=JP"}
に変更。 -
Windows:
jmeter.bat
ファイルを編集し、言語設定をset JMETER_LANGUAGE=-Duser.language="ja" -Duser.region="JP"
に変更。
-
macOS:
ファイルを保存し、再起動するとJMeterのインターフェースが恒久的に日本語に切り替わります。
ステップ3:JMeterクラスタの構成
JMeterでクラスタ圧力テストを行う際、一台をmasterとして選び、他のマシンをslaveとして設定します。 masterはスクリプトを各slaveに送信し、slaveはそれを実行します。実行結果をmasterに返し、masterはすべてのslaveの情報を収集して統合結果を表示します。
slaveの構成
jmeter.properties
ファイルを編集:
remote_hosts=masterのIP
server_port=1099
server.rmi.localport=1099
masterの構成
jmeter.properties
でslaveのアドレスを設定:
remote_hosts=slave1のip:ports,slave2のip:ports
ステップ4:テストプランの作成
JMeterクラスタが整ったら、テストプランを作成します。テストプランを作成する際には、次の点に注意してください:
- “スレッドグループ”をリモートサーバーに設定。
- “リスナー”を“ディストリビューションリスナー”に設定。
ステップ5:テストの起動
テストプランが完成したら、テストを開始し、テスト結果を監視します。すべてまたは指定のリモートを開始することができます。
テスト中には、各クライアントの状態とパフォーマンス指標をリアルタイムで確認できます。
最後に
JMeterクラスタを構築することは難しいことではありません。本記事で紹介した手順に従えば、効率的なJMeterクラスタ環境を迅速に構築し、テストの効率と品質を向上させることができます。
より使いやすいAPIツール:Apidogを試してみてください。
JMeterは性能テストに利用できますが、日常業務にはAPI設計、APIデバッグ、APIモックなど、数多くの作業があります。複数のツールを使用することもありますが、ツール間を頻繁に切り替えるたびに、データの不一致やチーム協力の効率低下が生じることがあります。
JMeterと比べて、Apidogはより使いやすく、賢く使用できます。個々の開発者でも企業チームでも、Apidogを活用することでAPIのテスト効率と品質を高めることができます。