ユーザーが e コマース サイトにアクセスしても、最近注文した商品が表示されない場合はどうすればよいでしょうか?フロントエンド アーキテクチャは一流ですが、API リクエストが何らかの理由でタイムアウトになった場合、それはまったく役に立ちません。
API 負荷テストは、このようなタイプのシナリオを可能な限り回避するために行われます。これは、ユーザー自身が理解する前に、API アーキテクチャが処理できる負荷の量を確認する体系的な方法です。
API 負荷テスト中、API がテストされるトラフィックの量は通常、実稼働環境での予想よりも多くなります。これにより、実際のユーザーがエンドポイントにアクセスし始めたときに API が堅牢で信頼できることが保証されます。
API 負荷テストの利点
APIテストにはさまざまな種類があり、負荷テストもそのひとつです。一般に、API テストは、開発者がテスト用の UI を必要とせずにアプリケーションの機能を迅速にテストできるため、重要です。 API テストは UI テストよりも大幅に高速であり、ソフトウェア アーキテクチャを設計する際に非常に役立ちます。
API の負荷テストにより、スケーラビリティのボトルネックを回避します。 API の負荷量が増加すると、応答時間が増加する状況です。したがって、たとえば、API 応答時間が 1 秒あたり 100 リクエストに対して 500 ミリ秒である場合、1 秒あたり 1000 リクエストに対して最大 800 ミリ秒に増加します。これらすべては、API がスケーラブルではなくなったため、最適化する必要があることを意味します。
また、API がサードパーティ API に接続している場合、負荷テストはシステム全体が期待どおりに動作することを確認するのに非常に役立ちます。
次に、最適な API 負荷テスト ツールを見ていきます。
クロッバー
Clobbr は、 オープンソース アプリケーションであると同時に、API の速度と負荷をテストするための CLI (コマンド ライン インターフェイス) ツールでもあります。使用する API アーキテクチャに関係なく、リクエストのタイムアウト、ヘッダー、ペイロードを設定し、複数の API エンドポイントをテストできます。

さらに次のような機能があります。
- GraphQL の自動検出
- CI/CDの統合
- スクリプトのテスト
- トレンドライン
結果は、標準偏差やパーセンタイルなどのメトリクスのグラフ形式だけでなく、表形式でも表示できます。最も優れている点は、すべてのデータがローカルに保存され、API のテストにアカウントが必要ないことです。
K6
K6 はオープンソース ツールとしてもクラウド サービスとしても提供されており、Grafana からアクセスできます。 K6 を使用すると、エンドポイントをテストするためのスクリプトを Javascript で作成し、手間をかけずにローカル、クラウド、または分散システム上で実行できます。

世界中の合計 21 のロード ゾーンから API をテストすることもできます。これは、実際の世界的な交通状況をテストするのに役立ちます。
K6 は主に負荷テスト ツールとして設計されていますが、次のような他の種類のテストの実行にも使用できます。
- エンドツーエンドのWebテスト
- インフラストラクチャのテスト
- 回帰試験
- フォールト挿入テスト
K6 は、VS Code、Postman、Grafana、Datadog、IntelliJ IDEA などの一般的な開発者ツールと統合できます。また、K6 には、恩恵を受けることができる巨大なオープンソース コミュニティがあります。
ロードビュー
LoadView は 、実際のブラウザを使用するクラウドベースの負荷テスト ツールです。 API 呼び出しのシミュレーション、ブラウザー上での実際のユーザー インタラクションのテスト、API 応答の検証、負荷テストでのユーザー エクスペリエンスのテストなどに使用されます。

Web サイト用のカスタム負荷テスト スクリプトを構築し、ブラウジング フォームやログイン フォームからショッピング カート、ポータルなどに至るまで、あらゆるものをテストできます。 LoadView は、Selenium、JMeter、Postman、および関連ツールと統合することもできます。
デモ コールをスケジュールしたり、LoadView を使用するための無料トライアルから始めることができます。エンタープライズ ソリューションの カスタム価格 を提供します。
ロードニンジャ
LoadNinja は、その名前が示すように、実際のブラウザでアプリケーションをテストするために使用される負荷テスト ツールです。 InstaPlay Recorder と人工知能を使用することで、テスト スクリプトの作成時間を 60% 削減できると主張しています。

複数の実際のブラウザを同時に起動して、実際の条件下で API を正確にロード テストできます。また、ブラウザベースのナビゲーションのタイミング、応答時間、ネットワーク データの形で実用的な洞察が得られるため、問題を迅速に切り分けることができます。
プロキシを 設定することで、内部アプリケーションをテストできます。 LoadNinja は無料プランを提供しておらず、プランはロード時間に基づいています。
郵便屋さん
Postman は API 開発および管理プラットフォームです。さまざまな使用例があります。 API の構築から API 開発チーム間のコラボレーションの合理化まで、Postman は API 用のオールインワン プラットフォームです。

API 負荷テストはパフォーマンス テストと呼ばれることが多く、 Postman のパフォーマンス テスト プラットフォームは、現実世界のシナリオをシミュレートし、自信を持って導入するのに役立ちます。シミュレートされた負荷の下で、応答時間、エラー率、1 秒あたりのリクエストなどのパフォーマンス メトリックを観察できます。
Javascript を使用して Postman で テストを作成するのは 簡単です。個々のリクエスト、コレクション、フォルダーをテストできます。 Postman AI ツールである Postbot を使用すると、プロンプトに基づいて人工知能を使用して API テスト スクリプトを生成できます。
無料枠 を使用すると、最大 3 人のチーム メンバーと共同作業して、Postman のほとんどの機能にアクセスできます。
ローダーアイオ
Loader.io は 、API への同時接続をシミュレートしてテストするクラウド API 負荷テスト サービスです。ターゲット API ドメインを入力し、テストを実行し、リアルタイムで監視するだけです。統計データをグラフ形式でチームメンバーと共有できます。

無料プランでは、テストごとに 2 つの URL のみをテストでき、テストごとに 10,000 クライアントのみをテストできます。また、テストの実行時間はわずか 1 分間です。
Locust.io
Locust.io は 、Python プログラミング言語を使用してテストを作成できるオープンソースの負荷テスト ツールです。分散システム上での負荷テストの実行をサポートしているため、数百万のユーザーを同時にシミュレートするために使用できます。

Python のパッケージ マネージャーである
pip
使用してすぐにインストールできます。 Locust は、レポートをグラフィカル形式で表示するためのインターフェイスとダッシュボードを提供します。ただし、GUI を使用せずにヘッドレス モードで実行し、ターミナルにプレーン テキストでレポートを生成することもできます。
ガトリング
Gatling は 、継続的な負荷テストと開発パイプラインの統合のために設計されたオープンソースの負荷テスト ツールでもあります。 Gatling を Jenkins と統合し、各コミット後にパフォーマンスの低下を監視できます。
自動テスト スクリプトを作成するための、Java、Kotlin、および Scala プログラミング言語用のドメイン固有言語 (DSL) を提供します。テストの終了時に、Gatling は動的でカラフルなレポートを自動的に生成します。
Gatling は 2 つの方法で使用できます。スタンドアロン ツールとしてインストールする方法と、Maven または Gradle を使用してプロジェクトの依存関係としてインストールする方法です。
Jメーター
Apache の JMeter は 、機能の動作をテストしてパフォーマンスを測定する、人気のあるオープンソースの負荷テスト ツールです。サーバー、サーバーのグループ、ネットワーク、またはオブジェクトに対する重い負荷をシミュレートし、さまざまな負荷の種類とシナリオの下で全体的なパフォーマンスを分析します。
100% Java ベースで、記録、構築、デバッグのためのフル機能の IDE を提供します。 JMeter は動的な HTML レポートを生成し、完全な移植性を提供し、マルチスレッドをサポートし、Gradle、Maven、および Jenkins の継続的統合を可能にします。
こちらもお読みください: Apache Jmeter: 知っておくべきことすべて
ブレイズメーター
BlazeMeter は API テストを作成し、開発の初期から実稼働まで API を監視できます。 Jenkins や Slack などのオープンソース ツールと統合されており、API の問題が発生したときに適切なタイミングでチームに通知します。

世界中の 56 の場所 (アジア太平洋、ヨーロッパ、北米、南米) から 200 万人以上の仮想ユーザーをシミュレートできます。応答データを抽出して変数に保存し、後続のリクエストで使用できます。
BlazeMeter は、最大 20 分のテスト、合計で最大 10 のテスト、および同時ユーザー 50 人のテストを作成するために使用できる無料プランを提供します。
最後の言葉
API 負荷テストは、API のスケーラビリティのボトルネック、信頼性、セキュリティに対処するのに適しています。ただし、実際のユーザー操作をテストするために使用することはできません。 API テストはユーザーをシミュレートするだけであることに注意してください。実際のユーザー操作をテストしたい場合は、実際のブラウザーで UI テストを行うのが最適です。
次に、さまざまな回帰テスト ツールについて詳しく学びます。