本文へスキップ
← 記事一覧に戻る

Apace JMeter入門

Apache JMeterとは

Apache JMeterは、Webアプリケーションやサーバーのパフォーマンス測定、および負荷テストを行うためのオープンソースソフトウェアです。The Apache Software Foundationによって開発されており、Javaで動作します。

主にシステムの動作確認(機能テスト)や、大量のアクセスがあった際の挙動確認(負荷テスト・ストレステスト)に使用されます。

主な特徴

多様なプロトコルに対応

HTTP/HTTPS(Webサイト、API)だけでなく、データベース(JDBC)、FTP、メール(SMTP/POP3/IMAP)、LDAP、TCPなど、幅広いプロトコルに対応しています。

Javaベースのクロスプラットフォーム

100% Javaで記述されているため、Windows、Linux、macOSなど、Javaが動作する環境であればどこでも動作します。

拡張性

プラグインを追加することで機能を拡張でき、レポート機能の強化や新しいプロトコルのサポートを追加することが可能です。

GUIとCUIのサポート

テスト計画の作成やデバッグは直感的なGUIで行えますが、実際の負荷テスト実行時にはリソース消費を抑えるためにCUI(コマンドライン)モードでの実行が推奨されます。

JMeterで実施できる主なテスト

1. ロードテスト(Load Testing)

通常想定されるアクセス負荷をシステムにかけ、応答時間やスループット(処理能力)を測定します。

2. ストレステスト(Stress Testing)

限界を超えるような高い負荷をかけ、システムがどのように停止するか、あるいはエラーハンドリングが適切に行われるかを確認します。

3. 分散テスト(Distributed Testing)

1台のPCでは生成しきれない大量の負荷をかけるために、複数のマシンを連携させてテストを実施できます。

基本的な構成要素(用語)

要素名 説明
Test Plan(テスト計画) テスト全体の設定をまとめた最上位のコンテナです。
Thread Group(スレッドグループ) ユーザー数(スレッド数)、リクエストを送る回数、送信間隔などを設定します。
「1スレッド=1ユーザー」としてシミュレートされます。
Sampler(サンプラー) 実際にサーバーへリクエストを送る部品です。(例:HTTPリクエスト、JDBCリクエストなど)
Listener(リスナー) テスト結果を収集・表示する部品です。グラフ、表、ログなどで結果を確認できます。
(例:View Results Tree, Summary Report)
Assertion(アサーション) 返ってきたレスポンスが期待通りか
(正しい文字列が含まれているか、ステータスコードが200かなど)を検証します。

注意点

クライアント(JMeter実行マシン)の負荷

JMeter自体もJavaアプリケーションであり、大量のスレッドを生成すると実行マシン自体のメモリやCPUを消費します。正確なテスト結果を得るためには、実行マシンのリソース状況も監視する必要があります。

GUIモードの制限

GUIモードはリソースを多く消費するため、大規模な負荷テストの本番実行には向いていません。「Non-GUIモード(CLIモード)」での実行が推奨されます。