GUIモード vs CLIモード
| 比較項目 | GUIモード | CLIモード(Non-GUI) |
|---|---|---|
| 用途 | テストプランの作成・デバッグ・動作確認 | 本番の負荷テスト実行 |
| メモリ消費 | 大(GUIレンダリングのオーバーヘッドあり) | 小(GUIなしのため軽量) |
| 最大スループット | 低い(GUIが帯域を消費する) | 高い(JMeter の性能を最大限発揮) |
| リアルタイム確認 | リスナーでリアルタイム表示可 | 標準出力にサマリーが定期出力される |
| 推奨ケース | シナリオ確認、少数スレッドでのデバッグ | 50スレッド以上の本番負荷テスト |
💡 JMeter 公式の推奨
JMeter の公式ドキュメントでは「本番の負荷テストには CLI モードを使うこと」を強く推奨しています。GUI モードは可能な限りテストプランの設計・デバッグのみに使い、実際の負荷計測は必ず CLI モードで実施してください。
GUIモードでの実行手順
GUI モードでテストを実行するには次の手順で行います。
- テストを実行する前に、リスナーの結果をクリアしておく(ツールバーの🗑ボタン、または Run → Clear All)
- ツールバーの ▶ Startボタンをクリック(またはCtrl+R)
- テスト実行中はツールバーに「Running」と表示される
- リスナー(Summary Report など)でリアルタイムの結果を確認
- テスト完了後、自動的にスレッドが停止する
⚠️ 実行前に必ず結果をクリアする
前回のテスト結果が残っていると、新旧の結果が混在して正確な計測ができません。Run → Clear All(Ctrl+Shift+E)で全リスナーの結果をクリアしてから実行する習慣をつけましょう。
CLIモードの基本コマンド
CLIモードでは jmeter(または jmeter.bat)コマンドを使用します。
jmeter -n -t test-plan.jmx -l results/result.jtl
./jmeter -n -t test-plan.jmx -l results/result.jtl
実行中は以下のようなサマリーが定期的に出力されます。
CLIモードでHTMLレポートを同時生成する
JMeter 3.0 以降では、-e と -o オプションを追加することで
テスト実行と同時に HTML ダッシュボードレポートを生成できます。
jmeter -n \
-t test-plan.jmx \
-l results/result.jtl \
-e \
-o results/html-report/
Windows の場合はバックスラッシュの改行が使えないため1行で記述します。
jmeter -n -t test-plan.jmx -l results/result.jtl -e -o results/html-report/
テスト完了後、results/html-report/index.html をブラウザで開くと詳細なダッシュボードが表示されます。
⚠️ -o で指定するディレクトリは空である必要がある
HTML レポートの出力先ディレクトリが既に存在し、かつ中にファイルがある場合はエラーになります。再実行時は古いディレクトリを削除するか、新しいディレクトリ名に変更してください。
CLIオプション一覧
| オプション | 説明 |
|---|---|
-n | Non-GUI モードで実行する(必須) |
-t <file> | 実行するテストプランファイル(.jmx)を指定 |
-l <file> | 結果ログファイル(JTL)の出力先を指定 |
-e | テスト終了後に HTML ダッシュボードレポートを生成する |
-o <dir> | HTML レポートの出力ディレクトリを指定(空ディレクトリが必要) |
-j <logfile> | JMeter のシステムログ出力先を指定 |
-p <file> | カスタムプロパティファイルを指定 |
-J <name>=<val> | コマンドラインからプロパティを上書き(例: -Jthreads=50) |
-G <name>=<val> | グローバルプロパティをサーバーに渡す(分散テスト時に使用) |
-L <cat>=<lvl> | ログレベルを変更(例: -L jmeter.engine=DEBUG) |
大規模テスト用JVMチューニング
デフォルトの JVM ヒープサイズ(512MB)では大規模テストに不足することがあります。
JMeter の起動スクリプト(bin/jmeter または bin/jmeter.bat)の JVM_ARGS を編集して調整します。
# 4GB に増やす例
export HEAP="-Xms1g -Xmx4g -XX:MaxMetaspaceSize=256m"
set HEAP=-Xms1g -Xmx4g -XX:MaxMetaspaceSize=256m
✅ 推奨値の目安
スレッド数 100〜500 程度であれば -Xmx2g(2GB)で概ね十分です。それ以上の場合は -Xmx4g 以上を検討し、実行マシンのメモリと相談しながら調整してください。また、-Xms(初期ヒープ)は -Xmx と同値にするとGC停止を抑制できます。
実行前チェックリスト
本番負荷テストを実行する前に、以下の項目を確認してください。
| チェック項目 | 確認内容 |
|---|---|
| ✅ テスト対象の許可 | テスト対象のサーバー管理者からテスト実施の許可を得ているか |
| ✅ シナリオの事前確認 | GUI モード・1スレッド・1ループで動作確認済みか |
| ✅ リスナーの無効化 | View Results Tree など大量メモリを使うリスナーが無効になっているか |
| ✅ 結果フォルダの準備 | JTL 出力先・HTML レポート出力先が空の状態か |
| ✅ JVM ヒープの確認 | スレッド数に応じた適切なヒープサイズが設定されているか |
| ✅ テスト時間の確認 | スレッド数 × ループ回数 × Think Time で想定実行時間を計算しているか |
| ✅ 監視体制 | テスト中にサーバーの CPU・メモリ・エラーログを監視する体制があるか |