LoginSignup
2
0

Apache Jmeter

Jmeterとは

  • オープンソース性能テストツール
  • 目的: ウェブアプリケーションやサービスの性能と耐久性を評価

Jmeterの特徴

  • 性能テスト: 負荷試験やストレステストを実施
  • プロトコルのサポート: HTTP、HTTPS、FTP、JMS、LDAP、JDBC など
  • 柔軟なテスト計画: シナリオに基づいたアクションやリクエストの定義

テストの設定

リクエストの設定

  • ヘッダーマネージャー
  • リクエスト(GET、POST、PUT、。。。)
  • データコンフィグ(csvファイルなど)

テスト結果設定

  1. グラフィカルなレポート
    • 応答時間のグラフ
    • スループットの可視化
    • エラーレートの推移
  2. テーブル形式の結果
    • 各リクエストの詳細なデータ
    • 応答時間、スループット、エラー率など
  3. HTMLレポート
    • グラフや数値の詳細な表示
    • 共有やドキュメンテーションに便利
  4. ログファイル
    • 実行時の詳細な情報
    • エラーのトラッキングとデバッグ

集計グラフ

03.png

グラフ結果

02.png

負荷テスト

スレッドグループ(ThreadGroup)に主な設定が必要です。

  • Number of Threads(users):ユーザー数
    • 同時に実行されるユーザー(スレッド)の数を指定します。
    • 例えば、「10ユーザー」ならば、同時に10のスレッドが動作します。
  • Ramp-Up Period: ランプアップ時間(スレッドグループ内の各スレッドの開始時間の間隔を指定する)
    • スレッドグループの中の各スレッドが開始されるまでの時間です。
    • 例えば、「5秒」ならば、全体のスレッド数が5秒かけて起動されます。
  • Loop Count: 反復
    • 各ユーザーがテスト計画を何回繰り返すかを指定します。
    • 回数設定または無限

シナリオテスト

複数なAPIの合わせてテストができます。
例えば、下記に2つリクエストが有り、リクエスト2のインプットはリクエスト1のレスポンスを使用する
(実際はログインしてjwt_tokenを取得しつぎのリクエストするケースなどと同様)

・リクエスト1
    - Input: x, y
    - Response: x + y
 ↓
・リクエスト2
    - Input: x + y
    - Response: (x+y)²

※csvファイルにリクエスト1のインプットとリクエスト2のレスポンス
例:
x,y,(x+y)²
1,2,9
2,3,25
3,4,49
...

コマンドラインモード+HTMLレポート

jmeter -n -t ./sample_test.jmx -l ./result/results.jtl -e -o ./result/html/

HTMLレポート

01.png

サマリー

メリット

  • 使いやすいユーザーインターフェース

    • グラフィカルな設定: 直感的な操作でテストプランを構築
    • 柔軟性: 異なるユースケースに対応可能
  • テスト結果の分析

    • リアルタイムレポート: テスト実行後に詳細な結果を取得
    • グラフ表示: パフォーマンスメトリクスの視覚的な分析
  • サポートとコミュニティ

    • 無料: オープンソースで誰でも利用可能
    • 広範なコミュニティ: サポートと改善のための豊富なリソース

デメリット

  • 機能が多いので
  • 単純テストしてもいろな設定が必要
    (フロントエンドの監視が不要の場合 loadtestのツールで負荷テストが早いかもしれない )
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0