応答時間テスト:APIパフォーマンスを測定する方法

⚡ スマートサマリー

応答時間テストは、ユーザーがリクエストを送信してからアプリケーションが処理完了を報告するまでの、システムがリクエストに応答するまでの時間を測定するものです。このガイドでは、測定指標、重要な3つのしきい値、およびそれらを取得するためのツールについて説明します。

  • 豪華<XNUMXxXNUMXF><XNUMXxXNUMXF><XNUMXxBXNUMX><XNUMXxBXNUMX>️ コア定義: 応答時間は、リクエスト送信から処理完了までの全過程を含みます。
  • 📊 3つの指標: 平均応答時間、最大応答時間、およびエラー率は、システムの動作を総合的に表す指標となる。
  • 🟢 0.1秒: 瞬時に反応し、ユーザーにとって何ら中断を感じさせません。
  • 🟡 1秒: 途切れることのない思考の流れの上限。
  • 🔴 10秒: 集中力の限界というものだが、実際にはユーザーはそれよりもずっと前に離脱してしまう。
  • 🧪 測定方法: 負荷テストツール内で、ビ​​ジネスプロセスを開始トランザクションと終了トランザクションで囲みます。

応答時間テスト

応答時間テストとは何ですか?

応答時間テスト 応答時間は、あるシステムノードが別のシステムノードからの要求に応答するまでにかかる時間を測定します。これは、要求が到着してから対応するプロセスが完了するまでの間隔です。たとえば、APIがあり、その実行とJSON形式でのデータ返却にかかる時間を正確に知りたい場合などに使用します。応答時間は、個々のトランザクションまたはクエリに対するサーバーの応答時間を測定します。

応答時間は、ユーザーがリクエストを送信したときに開始され、アプリケーションがリクエストの完了を通知したときに終了します。

応答時間を測定する方法

応答時間を測定するには, 重要なビジネス プロセスを Start トランザクションと End トランザクションで囲むことでテスト ツールを使用できます。ビジネス プロセスは、アプリケーションへのログインや書籍の購入などのビジネス タスクを完了するためにユーザーがアプリケーションで実行するアクションまたは一連のアクションである場合があります。 Amazon.com

応答時間テスト
応答時間テスト

API の応答時間を測定する同じプロセスでも、応答はツールごとに若干異なります。 その理由は次のとおりです

  • ステップ1) 各APIレスポンスタイムテストツールが収集するメトリクスの計算方法
  • ステップ2) ツール 応答時間に違いをもたらす負荷とキャプチャ速度をシミュレートします
  • ステップ3) ユーザー負荷の監視時に記録される追加項目
  • ステップ4) 各ツールによって収集されたメトリクスを計算すると、リソースの消費量が増えるため、応答時間が長くなります。
  • ステップ5) 2つのツールのアーキテクチャは異なる可能性がある

応答メトリックの種類

応答時間のメトリクス 説明
平均応答時間 平均応答時間は、各ラウンドトリップリクエストにかかる平均時間です。平均応答時間には、HTML、CSS、XML、画像などの読み込み時間が含まれます。 Javaスクリプト ファイルなど。したがって、システム内に低速なコンポーネントが存在すると、平均値が影響を受けます。
ピーク応答時間 ピーク応答時間は、問題がある可能性のあるコンポーネントを見つけるのに役立ちます。 これは、特定のリクエストが正しく処理されない Web サイトまたはシステムの不規則性をすべて見つけるのに役立ちます。 たとえば、応答時間に影響を与える可能性のある大規模なデータベース クエリが実行される可能性があります。 このクエリでは、希望した時間にページを読み込むことができません。
エラー率 エラー率は、全リクエストに対する問題のあるリクエストの割合を示す数学的な計算式です。この割合には、サーバー上でエラーを示すすべてのHTTPステータスコードが含まれます。また、タイムアウトしたリクエストもカウントされます。

重要な3つの応答時間閾値

応答時間レポートにおいて最も重要な2つの数値は以下のとおりです。

  • 平均応答時間
  • 最大応答時間(ピーク応答時間)

これらを合わせると、ユーザーが通常どれくらい待つか、そして最も運の悪いユーザーがどれくらい待つかが分かります。

以下は応答時間テストの重要な例の値です。

反応時間 意義
0.1セカンド これは最も好ましい応答時間です。 応答時間が 0.1 の場合、ユーザーは常にアプリケーションまたはシステムが即座に応答しており、中断を感じません。
1.0セカンド これは、中断のない快適な体験を実現するための許容上限値です。ユーザーは中断を感じることはほとんどないでしょうが、多少の遅延が発生する可能性があります。応答時間が1秒を超えると、ユーザー体験が中断される可能性があります。
10秒数 これは、応答時間が許容制限を超える最大制限です。 しかし、今の時代では、応答時間が 6 秒を超えると、ユーザーはそのサイトから離れるか、アプリケーションを終了してしまいます。

可能な限り0.1秒から1秒の範囲を目指しましょう。ユーザーは遅いシステムにも慣れますが、約2秒を超えると満足度が急激に低下し、1秒増えるごとに離脱率が高まります。

応答時間テストツール

応答時間テストツールは数多く存在する。最も広く使われているツールのうち2つは以下のとおりである。

1) JMeter

Apache JMeter はオープンソースの負荷テスト ツールです。 ウェブサイトのパフォーマンスを測定するように設計されています。 この負荷テスト ツールは、DevOps 方法論で使用できます。

JMeter

機能と特徴:

  • JMeter さまざまな種類のサーバーの負荷テストとパフォーマンス テストを実行できます。
  • この負荷テスト ツールは、テスト計画を XML 形式で保存するため、ユーザーはテキスト エディターを使用してテスト計画を生成できます。
  • このツールを使用すると、自動化された 機能テスト アプリケーションの。

リンクをダウンロード: Apache JMeter ダウンロード


2) ロードランナー

Loadrunner Micro Focus の は、広く使われている負荷テストツールです。 JMeter カラーチャートとグラフィックを備えたユーザーフレンドリーな監視および分析インターフェイスを提供します。

ロードランナー

機能と特徴:

  • 継続的なテストをサポート
  • LoadRunner は複数のエンタープライズ環境で効果的に動作できます
  • 複数のプロトコルスクリプトを実行することが可能です Loadrunner
  • などのさまざまな開発ツールとの統合 Visual Studioの, Jenkins, Selenium, etc.

リンクをダウンロード: ロードランナー プロフェッショナル

このテストがパフォーマンス テスト ファミリーにどのように適合するか

性能テストは包括的な用語です。以下のバリエーションは、加える負荷の形状と負荷を維持する時間のみが異なるため、しばしば混同されます。

テストタイプ 負荷パターン 質問に答える
負荷テスト 予想されるピーク負荷、短時間 通常のピーク時トラフィックにおいて、システムは目標を達成しているか?
ストレステスト 容量を超えて増加し、最終的に故障する どこで壊れるのか、そして、それは優雅に失敗するのか?
スパイクテスト 急激な上昇、その後の下落 交通渋滞による衝撃から生き残り、回復できるだろうか?
耐久試験 通常の負荷を何時間も保持 時間の経過とともに性能は低下しますか?
浸漬試験 長期間にわたる持続的な負荷 メモリリークやリソース枯渇は発生していますか?
安定性テスト 様々な条件下での負荷の変化 状況が変化しても、システムは信頼性を維持できるのか?
ボリュームテスト 一般ユーザー、データ量が非常に多い データベースの規模が拡大しても対応できますか?

耐久試験と浸漬試験は、しばしば同義語として扱われる。 一般的には、どちらも長時間にわたって負荷を持続させるテストです。しかし、チームによっては両者を区別する場合、耐久テストは応答時間が上昇するかどうかに焦点を当て、負荷テストはメモリ、ファイルハンドル、接続プールなどのリソース消費に焦点を当てます。通常、どちらか一方を実行すれば、両方のテスト結果を得ることができます。

応答時間テスト:重要なポイント

  • 応答時間とは、あるシステムノードが別のシステムノードからの要求に応答するまでにかかる時間のことです。
  • 平均応答時間 性能試験 は、各往復リクエストにかかる平均時間です。
  • ピーク応答時間は、どの部品に潜在的な問題があるかを明らかにします。
  • エラー率は、問題のあるリクエストの割合を表示する数学的計算です。
  • 0.1 つの重要な応答時間値は、1.0 秒、10 秒、XNUMX 秒です。
  • 最も広く使用されている応答時間テストツールの2つは JMeter (NAIST) と LoadRunner.

よくあるご質問

レイテンシーとは、リクエストがネットワークを通過するのにかかる時間のことです。レスポンスタイムには、レイテンシーに加えて、サーバーによる処理とレンダリングにかかる​​時間も含まれます。ネットワークが高速であっても、サーバーの処理速度が遅い場合は、レスポンスタイムが遅くなる可能性があります。

平均値は外れ値を隠してしまう。平均応答時間が800ミリ秒で、95パーセンタイルが9秒のシステムは、20人に1人のユーザーで不具合が発生していることになるが、パーセンタイル値だけがそれを明らかにする。

インタラクティブな操作の場合は1秒以内、ページ全体の読み込みの場合は2秒以内を目指しましょう。理論上の10秒という制限値に関わらず、3秒を超えると離脱率が急激に上昇します。

AIベースの監視は、エンドポイントごとに正常なベースラインを設定し、逸脱を自動的に検出することで、予想されるトラフィックピーク時にノイズを発生させる固定しきい値を置き換えます。

はい。過去のパフォーマンス実行データに基づいて学習されたモデルは、エンドポイントの速度低下につながる可能性のあるコード変更を特定できます。すべての予測は、実際の実行結果で確認してください。