JMeterで負荷テスト
公開日: 2025/06/03
JMeterで負荷テスト:Webシステムの限界を可視化しよう
はじめに
「アクセスが増えるとサーバーが不安定になる」「リリース前にどこまで耐えられるか確認したい」
そんな時に活躍するのが**JMeter(ジェイメーター)**です。
本記事では、Apache JMeterを使った負荷テストの基本から、実践的な使い方・注意点までをわかりやすく解説します。
基本情報・概要
JMeterは、Apache Software Foundationが提供するJava製のパフォーマンステストツールです。
WebアプリやAPIに対して並列リクエストを大量に送信することで、システムの性能やボトルネックを検証できます。
- GUIとCLIの両方で操作可能
- HTTP、HTTPS、WebSocket、JDBCなど多様なプロトコルに対応
- シナリオ作成・CSV連携・グラフ表示・レポート出力も可能
比較・分類・特徴の表形式まとめ
機能カテゴリ | 内容 |
---|---|
対象 | Webアプリ、REST API、DB、FTP、MQなど |
同時接続数設定 | スレッド数(仮想ユーザー数)で調整可能 |
時間制御 | Ramp-Up期間・ループ数で負荷のかけ方を柔軟に調整 |
入力パラメータ管理 | CSV Data Set Configやパラメータ抽出に対応 |
レポート・結果可視化 | 表、グラフ、サマリー、HTMLレポート出力など多様な形式で確認可 |
深掘り解説
-
基本構成要素:
- Test Plan:テスト全体の設定
- Thread Group:スレッド数、ループ数、Ramp-Upの設定
- Sampler:実際のリクエスト(例:HTTP Request)
- Listener:結果の表示(例:グラフ、サマリー)
- Assertion:レスポンスの検証(例:ステータス200か)
-
HTTPリクエスト例(GET):
- サーバ名:
example.com
- パス:
/api/users
- メソッド:GET
- ヘッダー:
Content-Type: application/json
- サーバ名:
-
CSV連携:
CSV Data Set Config を使うことで、ログインユーザーや検索条件などの大量データを自動差し込み可能。
-
HTMLレポート出力(CLI):
jmeter -n -t test_plan.jmx -l result.jtl -e -o ./report
応用・発展的な使い方
- ログイン→一覧取得→詳細表示のシナリオを連続実行
- レスポンスタイム中央値・95パーセンタイル分析
- スレッド数・Ramp-Up時間を変更してスケーラビリティ検証
- 非同期通信(AJAX)やGraphQLのテストにも拡張可能
- Cloud上(Blazemeterなど)での大規模負荷テスト
よくある誤解と注意点
- 「スレッド数を増やせばリアルなテストになる」→ ローカルPCがボトルネックになる可能性あり
- 結果は平均値ではなく分布(P95, P99)で評価するのが重要
- レスポンスだけでなく、DB・メモリ・CPUなどのモニタリングも並行実施するとボトルネック特定が容易
まとめ
JMeterは、GUIでもCLIでも扱える柔軟な負荷テストツールであり、開発・検証・リリース前の性能チェックに必須です。
テストシナリオを組み立て、CSVなどで動的データを流し、繰り返し検証することで、ボトルネックや限界性能を可視化できます。
小規模から始めて、徐々に実運用レベルに近づけていくアプローチがおすすめです。