🚀

Jmeter

に公開

Jmeterでできること

負荷テスト(Load Testing)

ユーザーが同時にアクセスしたときの処理性能の測定
複数の仮想ユーザーを生成して同時アクセスシミュレーション
スレッド(仮想ユーザー)数、Ramp-up期間、ループ回数など細かく設定可能

ストレステスト(Stress Testing)

システムの限界性能や障害発生ポイントの検出
同時アクセスを徐々に増やし、どこで性能劣化やエラーが出るかを確認

パフォーマンステスト(Performance Testing)

応答時間(レスポンスタイム)の計測
スループット(一定時間あたりのリクエスト数)の計測
エラー率、平均・最大・最小応答時間なども確認可能

機能テスト(Functional Testing)

GUI不要でHTTP/HTTPS APIのリクエストテスト
JSONやXMLのレスポンスをバリデーション(正規表現/JSONPathなど)
Cookieやセッション、POSTデータ、ヘッダー送信も可能

APIテスト

REST API / SOAP APIのリクエスト・レスポンスチェック
リクエストにパラメータ・認証情報・カスタムヘッダを付加
JSONPathやXPathでレスポンスから特定データを抽出・アサーション

認証/認可付きのテスト

Basic認証、OAuth2、JWTなど認証付きのAPIテスト
Cookie管理、セッションIDの維持や再利用

シナリオベースのテスト

複数ステップのユーザー行動(ログイン→検索→購入など)をシナリオ形式で構築
条件分岐(If Controller)、ループ、遅延(Timer)も使用可能

レポート・グラフ生成

テスト結果をCSV/XML形式で出力
HTML形式の美しいレポートを生成(応答時間グラフ・エラーレート・スループット)
プラグインでさらに詳細なグラフ表示(JMeter Plugins)

CSVデータの使用(データドリブンテスト)

CSV Data Set Configで動的なテストデータの読み込み
例:複数ユーザー名・パスワードでログイン試行など

外部との連携

CI/CDパイプラインとの統合(Jenkinsなど)
CLIからの自動実行(jmeter -n -t test.jmx -l result.jtl)
Grafana + InfluxDBでリアルタイムモニタリング

スクリプト・拡張

GroovyやBeanshellによるカスタムスクリプト
Javaでカスタムプラグインの開発
JSR223 Samplerで柔軟な処理やAPIレスポンスの加工

対象プロトコル

・HTTP/HTTPS Web・APIアクセス
FTP FTPアップロード/ダウンロード
・JDBC
DBへのSQLクエリ
・SMTP/POP3/IMAP
メール送受信テスト
・WebSocket
プラグイン利用で対応
・MQTT
IoT用プロトコルにも拡張で対応可能

活用例まとめ

Webサービスのピーク時負荷試験
APIの並列実行による性能確認
スロークエリのボトルネック特定
ログイン処理や購入フローの多段ステップ検証
ユーザー数を段階的に変えてスケーラビリティを検証

Discussion