ウェブ 用のアプリケーションを開発するには、多くの場合、アプリケーション プログラミング インターフェイス (API) を使用する必要があります。 APIはデータ転送の観点からあらゆるアプリケーションの心臓部であり、データは ウェブ サイトとアプリを動かすものです。

特定の瞬間に最大数百万人のアクティブユーザーがいるアプリケーションが達成する規模を考えると、これらのAPIがパフォーマンスを維持し、クラッシュしない可能性はどのようにありますか? 主要な組織は、このミッションクリティカルな技術的課題にどのようにアプローチしていますか? 答えはAPIパフォーマンステストです。

APIパフォーマンステストは広大な分野です。 この短い記事は、APIパフォーマンステストの内容、理由、方法を理解し、重要な専門用語を理解するのに役立ちます。

APIパフォーマンステストとは何ですか?

APIパフォーマンステストは、多くの異なるAPIテストサブセットを持つ巨大な傘です。 大まかに言えば、APIテストには主に2つのタイプがあります。

機能テスト
機能テストでは、API の機能を検証します。 たとえば、API が特定の入力に対して目的の出力を返すことを確認するためのテストを行うことができます。 これらのテストは通常、API の開発中またはバグの発見後に実行されます。

非機能性能テスト
パフォーマンス テストは、非機能 API テストの一種です。 これらのテストはAPIの開発後に行われ、目標は仮想の「実世界のシナリオ」でAPIをテストすることです。 API パフォーマンス テストの一般的なタイプについて詳しく見ていきましょう。

ロードテスト
ロード テストでは、API (サーバー) とユーザー (クライアント) の間のクライアント/サーバー システムで、複数のユーザーが同時に API にアクセスすることをシミュレートします。 これらの仮想的に作成されたユーザー (VU) は、ロード テストの “負荷” です。

ロード テストでは、次のような質問に答えます。

  • 特定の ウェブ Webサイトユーザーが ウェブ サイトのパフォーマンスにどのように影響しますか?
  • ウェブ サイトまたはアプリケーションで処理できる同時ユーザー数はいくつですか。
  • ウェブ アプリケーションのボトルネックはどこにありますか?
  • 私の ウェブ 限界点は何ですか?
  • システムのリソースが不足するのはいつですか?

他のいくつかのタイプのパフォーマンステストは次のとおりです。

  • スパイクテスト。 スパイクテストでは、ソフトウェアアプリケーションをユーザー負荷が急激に増加させます。
  • 耐久試験。 これは、ソフトウェアアプリケーションがユーザートラフィックの増加と長期にわたるレベルにどのように対応するかをテストします。
  • ボリューム テスト。 ボリューム テスト (フラッド テストとも呼ばれます) は、ソフトウェア アプリケーションを大量のデータ セットに対してテストして、その応答を確認します。
  • スケーラビリティ テスト。 スケーラビリティ テストは、アプリケーションまたはシステムがさまざまなレベルのユーザーにどのようにスケールアップまたはスケールダウンするかを確認する方法を提供します。

それは「何」の簡単な見方でした。 それでは、「なぜ」を見てみましょう。

APIパフォーマンステストを行う必要がある理由:ケーススタディとリソース

オンラインビジネスが成長するにつれて、ユーザーベースも成長します。 定期的な監視とメンテナンスがない場合、APIはある時点でクラッシュする可能性がはるかに高くなります。

有名なケーススタディ2020年2月英国ヒースローディスラプションは、ソフトウェアの負荷テストが不可欠である理由の確かな例です。 また、この記事を確認してソフトウェア開発におけるロード テストの重要性の詳細を確認し、この記事を参照してパフォーマンス テスト API の経済的利点を理解することもできます。

簡単に言えば、APIパフォーマンステストは、原因となるすべての対応する問題とともに、ダウンタイムを防ぐのに役立ちます。 それでは、APIパフォーマンステストの「方法」について説明しましょう。

負荷ストレスパフォーマンステスト

ドットコムモニターによるロードビューテストを使用してAPIパフォーマンステストを行う方法

当社のLoadViewプラットフォームは、ユーザーフレンドリーなダッシュボードを通じて、数分以内に実装および実行されるWeb API、Webページ、およびWebアプリケーションのさまざまなテストのためのさまざまなオンデマンドソリューションを提供します。

LoadView では、実際のブラウザーで手間のかからないクラウドベースのロード テストを提供しているため、外部アプリケーションやライブラリ/フレームワークは必要ありません。 ロードビュー テストを使用すると、API パフォーマンス テストが簡単になります。 方法は次のとおりです。

ロードビューのしくみ
LoadView は、ロード インジェクタ サーバー (LI) のグローバル ネットワークを使用して、 ウェブ サイトのパフォーマンスをテストするためのユーザー ロードを生成します。 LoadView には、さまざまなターゲットに対してテストを作成して読み込むための機能が用意されています。 LoadView が提供するロード テストの種類には、次のようなものがあります。

  • HTTP/S
    アクセシビリティ、パフォーマンス、正しいコンテンツ、エラー、壊れたリンクなどについてURLをテストします。
  • ウェブサイト
    オンライン ページを読み込む同時ユーザーをシミュレートします。 Chrome、Microsoft Edge、Firefox、およびiOS、Android、Windows、BlackBerryなどのモバイルブラウザから選択します。
  • ウェブアプリケーション
    EveryStep Web レコーダーを使用してテスト スクリプトを作成し、実際のコンピューター (Chrome とエッジ) とモバイル デバイスで特定のアクションを実行する同時ユーザーに対して ウェブ アプリケーションをチェックします。
  • ストリーミングメディア
    オーディオ ストリームとメディア ストリームのパフォーマンスと可用性をテストします。
  • SOAP ウェブ API
    SOAP ウェブ サービスのパフォーマンス、稼働時間、および応答を確認します。
  • レストウェブ API
    REST ウェブ サービスの応答内容、稼働時間、およびパフォーマンスを確認します。
  • 郵便配達員のコレクション
    ポストマン コレクションを LoadView にインポートして ウェブ API をテストします。
  • セレン
    世界中のさまざまな場所からの数千人の同時ユーザーでSeleniumテストプロジェクトを実行して ウェブ アプリケーションをテストします。

ロードビューロードテストの構成

荷重タイプ

LoadView では、荷重ステップ曲線、目標ベースの曲線、または動的調整可能曲線を選択できます。 これらの負荷曲線オプションを使用すると、実際のシナリオに一致するように同時ユーザーの数を調整し、より現実的なテスト結果を提供できます。

テスト期間
テスト期間とテスト制限によって、同時ユーザーセッション数とテスト期間が決まります。 テスト制限の詳細については、LoadView 容量制限のドキュメントを参照してください。

ユーザーの行動
実際の訪問者が ウェブ サイト内を移動する方法をシミュレートするために、ユーザーの行動が使用されます。 通常、最大、またはカスタムの選択肢から選択できます。 [通常のユーザー シミュレーション] オプションを使用すると、3 秒から 6 秒の範囲のランダムな遅延が追加され、通常のユーザーの動作がシミュレートされます。 「最大」を選択すると、テストは可能な限り迅速に実行されます。 この機能を使用して、システムでストレス テストを実行し、いつどこで最大容量に達するかを判断できます。

「カスタム」オプションを使用すると、通常オプションと同じランダム遅延を選択できますが、パーソナライズを強化するために、0秒から30秒の範囲の遅延を短くすることができます。

地理的な場所
ユーザーが通常 ウェブ サイトにアクセスする場所に基づいて、より現実的なユーザーの状況を模倣するには、さまざまな地理的ゾーンから選択し、LoadView を使用して仮想ユーザーをゾーン間で分割できます。 一度に20以上の場所から選択してください。

テストの概要
テスト管理者は、負荷とユーザー数の変化に伴って応答時間がどのように変化したかを示すグラフを確認できます。 テスト実行計画、平均応答時間、セッション数、タイプ別のエラー数、各ロード インジェクタによる CPU 消費量は、確認できるグラフの一部です。

エラーは、発生した問題の種類とテスト中に発生した日時に関する情報とともに、ここにも表示されます。 特定のテストの生データは CSV ファイルとしてダウンロードでき、これを使用して、利害関係者やチーム メンバー向けのカスタム レポートやプレゼンテーションを作成できます。

平均応答時間の結果

まだ行っていない場合は、 こちらから LoadView プラットフォームの無料試用版を開始できます。 また、1対1のデモをご希望の場合は、 パフォーマンスエンジニアの1人との時間を予約してください。 私たちはあなたから聞いてうれしいです。