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