web-dev-qa-db-ja.com

JMeterの結果を分析する方法は?

私はJMeterツールが初めてです。 JMeterのレポートを分析するための最良の方法について、誰でも助けてくれますか?

42
john

役立つ可能性のある関連リンクの単純なリスト:

ネイティブグラフ:

自動化されたグラフのための無料のオープンソースソリューション:

カスタム開発のレシピ:

サードパーティのソリューション:

39

パフォーマンステストを実行する際に必要な3つのテストがあり、常にベースライン、ピークテスト、ストレステストがあるはずです。これらのテストは、リトルの法則により互いに関連しています。 安定したシステムの顧客の長期平均数Lは、長期平均実効到着率λに顧客がシステムで費やした時間Wを掛けた値に等しいか、代数的に表されます:L = λW。

enter image description here

Jmeterはすでにこの値をチェックする手段を提供しています。 標準プラグイン は、応答時間、ヒット、スループットのプロットを提供します。システム上でアクティブだったユーザーの数を直接知る方法はありません。アクティブユーザーと同じ同時ユーザーではありません。プラグインはレポートを生成するのに十分ですが、プレゼンテーションの多くを制御することはできません。Pythonを使用して生成されたいくつかのプロットを使用します(ラベルを追加し、2つのy軸を持ちます)。

ベースラインテスト:このケースは法律の特別なケースです。この場合、アクティブユーザーは一定であり、1です。

  • L =λW
  • 1 =λW
  • 1/W =λ

enter image description here

アプリケーションが同じコードを実行する場合、応答時間は時間とともに安定し、到着率も時間に対して一定になります。

しばらく待つこと以外に何もしないサービスがあります:

enter image description here

2秒サービス:到着率は1/2TPSでした。

enter image description here

3秒サービス:到着率は1/3TPSでした。

enter image description here

ピークテスト:これは特別な場合ではなく、この場合、システムスループットを超えるまで負荷が増加します。負荷は応答時間のスループットよりも大きいためです。増加する。テスト中、スレッド数は、長い応答時間から回復するのに十分な速さで増加するはずです。

enter image description here

今回は、ピークを実行する代わりに、テスト全体で処理できるよりも多くの負荷でシステムにストレスをかけます。サービスのスループットを制御するには:

enter image description here

アクティブなトランザクションとは、インジェクターを離れたが応答を受け取らなかったトランザクションです。これらは、システムのどこかでキューに入れられているトランザクションです。

  • λ(t)= c、T(t) = k;負荷とスループットの両方が時間とともに一定です。
  • L =Σλ-ΣT= ct-kt;アクティブなトランザクションとは、累積負荷と累積スループットの差です。
  • L =(c-k)t
  • λW=(c-k)t
  • cW(t)=(c-k)t
  • W(t)= t(c-k)/ c

アクティブユーザーと同様に応答時間が長くなるため、インジェクターは新しい接続が必要になるとすぐに新しいスレッドを作成する必要があり、プールスレッドのほとんどはビジーになります。

2TPS到着率、1 TPSスループット:

  • 応答時間関数は1/2tです
  • インジェクターは、300秒間システムに負荷をかけます。
  • テストは600秒続きます。

enter image description here

4TPS到着率、1 TPSスループット:

  • 応答時間関数は3/4tです
  • インジェクターは、300秒間システムに負荷をかけます。
  • テストは1200秒続きます。

enter image description here

6TPS到着率、5 TPSスループット:

  • 応答時間関数は1/6tです
  • インジェクターは、300秒間システムに負荷をかけます。
  • テストは360秒続きます。

enter image description here

5
Sebastian G.

バージョン3.0以降、JMeterには、負荷テストの終了時または結果ファイルから生成できる動的HTMLレポートが含まれています。

generated-dashboard を参照してください

2
benbenw

JMeterレポートを分析する場合は、単純なWordで...

  1. サーバーのCPUとRAM使用率。サーバーでパフォーマンステストを実行するとき、現在のテストで使用されるCPUとRAMの量を確認します。
    ホストされたサイトサーバーで次のコマンドを発行します。 CPU使用率のログファイルが作成されます。

    while true; do 
      ( echo "%CPU %MEM ARGS $(date)" &&
        ps -e -o pcpu,pmem,args --sort=pcpu | cut -d" " -f1-5 |
        tail ) >> ps.log
      sleep 1
    done
    
  2. 全体の応答時間を確認してください。予想される応答時間の基準を超えないようにしてください。下の画像をご覧ください。私の予想では、応答時間は525マイクロ秒を超えてはなりませんが、一部の要求はそれを超えています。時間のかかるこれらの種類のリクエストを見つけてください。

    全体の応答時間:

    overall response time

  3. 1秒あたりのトランザクション、1秒あたりのトランザクション数、およびテスト時間枠の低下を参照してください。

  4. サマリーレポート、平均時間、および最大時間を調べて、最も時間がかかっているリクエストを確認します。現在、JMeterでは多くのリスナーがアドオンまたはビルトインとして利用できますが、これらは何が起こっているかを適切に推測できるようにするための主要なものです。そして、そのような他のレポートを使用できます。

詳細については私のブログをフォローしてください https://softwaretesterfriend.blogspot.in/

JMeterの結果を分析するには、次を使用できます。

  1. JMeterのリスナー
  2. ブレイズメーターセンス
  3. レポートダッシュボード
1
Satyajit

他のすべての答えに加えて、テスト結果ファイル(.jtl)をアップロードできるBlazeMeterのニースサイトがあり、あらゆる種類の(インタラクティブ)レポートを生成します。それもあなたのためにそれを分析し、最初のエラーがいつ起こるか、飽和点は何かなどを指摘します。 https://sense.blazemeter.com/gui/

グラファイト/グラフィナインフラストラクチャがある場合は、プロジェクトにバックエンドリスナーを追加することをお勧めします。リアルタイムメトリックをグラファイトサーバーに送信し、グラファイト(またはgrafana)でテストを監視できます。

0
Sven