ReadyAPI Performance を使用した API パフォーマンステスト:成功の理由、方法、測定 [パート 1]

これは、API パフォーマンステストに関するブログの最初の投稿となります。パフォーマンステストが API と企業の成功にとって重要である理由を説明しています。 このシリーズは 3回に渡って投稿する予定です。

スピード、パフォーマンス、信頼性

これらは、真に強力なアプリケーションを開発する際に私たちが目指している特性です。 これらは、お客様がそのアプリケーションを判断するために使用する特性でもあります。

しかし、今日のコネクテッド ワールドでは、パフォーマンスは、チームが構築および管理するアプリケーションをはるかに超えています。 API は、コネクテッド ワールドをまとめる接着剤です。これにより、さまざまなアプリケーションとコンポーネントが相互に依存するようになります。 API のパフォーマンスが低い場合、顧客は苦痛を感じ、ビジネスもその痛みを感じることになります。 組織の API のパフォーマンスを確保することは、高速で信頼性の高いアプリケーションを構築するために必要です。

したがって、「2019 年の API 業界調査」では、パフォーマンスは組織が API プログラムの成功を測る方法として、パフォーマンスが第 1 位となっており、回答者の 76% が「パフォーマンスが成功の主要な指標である」と答えています。そして、なぜパフォーマンスが重要なのかを分析すると、なぜパフォーマンスが成功のための焦点となるのかが明らかになります。

パフォーマンスとは、顧客を維持し、満足させることです。

API は、エンドユーザーと企業が提供するサービスとの間のクリティカルパスになっています。API に不具合が発生すると、アプリケーションはその影響を受け、ユーザーもその影響を受けます。ペースの速い社会では、わずかな遅延でもユーザーがアプリケーションを放棄して他のサービスを利用する可能性が高く、問題、障害、可用性の問題はソーシャルメディアで瞬く間に広まります。

パフォーマンスの向上は顧客維持に役立ち、eコマースの世界には数多くの例があります。

  • Walmart では、読み込み時間の改善が 1 秒改善されるごとにコンバージョンが最大 2% 増加しました。
  • Fanatics は、ページの読み込み時間の中央値を 2 秒短縮し、モバイルコンバージョンをほぼ 2倍にしました。
  • Staples はページの読み込み時間を 1〜6 秒改善し、コンバージョンを 10% 改善しました

ページの読み込み時間がユーザーエンゲージメントに悪影響を与えるという考えはすでにご存知かもしれませんが、これらのeコマースページが正しく読み込まれるようにするために API が果たす役割について考えてみてください。 ほとんどの eコマースシステムは島ではありません。 多くは、サイトと他のさまざまなプラットフォーム間の接続を作成する API 統合を伴います。 これらのシステムには、製品データと在庫を取得し、処理を注文するためのエンタープライズ リソース プランニング(ERP)に焦点を当てた内部 API、またはサードパーティシステムから製品情報を直接取得するように設計されたパートナー API が含まれる場合があります。

定期的な Web サイトの監視では、これらの API の問題を捕捉できない場合があります。 API トランザクションを明示的に監視しないと、サービスまたはページに障害が発生する可能性があり、ユーザーから苦情が出るまでわかりません。 また、eコマースの世界では、読み込み時間だけでなく、注文の紛失や遅延についても不満を言っています。 多くの小売業者は自社の在庫を管理しておらず、商品の取り扱いと発送のためにフルフィルメント センターに商品の処理と発送を依頼しています。 多くの場合、API は注文情報をフルフィルメントセンターに送信し、商品が購入者に発送されます。 特にブラックフライデーなどでは API の問題により、配送の遅延や注文の紛失が発生する可能性があります。

API は、会社が提供するサービスのバックボーンであることを忘れないでください。 顧客を維持し、喜ばせるためには、API のパフォーマンスが必要なのです。

パフォーマンスは収益源の維持にもつながる

当然のことながら、パフォーマンスは API 利用者にとっても主要な要素です。使いやすさ、パフォーマンス、サービスの信頼性は、API の導入を評価する際に利用者が注目する上位 3 つの要素です。これらの要素の重要性は、人気のあるアプリケーション Yelp で簡単に説明できます。 何百万人もの空腹のユーザーがレビューアプリを利用して、近所の最高のレストランやその他の評価の高いビジネスを見つけます。 それ自体、Yelp は信じられないほどの量のデータを提供する強力なプラットフォームですが、拡大するユーザーベースの期待に応えるためにサードパーティにも依存しています。 消費者が地元のレストランを検索すると、Yelp は Google Maps API からサードパーティのデータを取得して、その地域にあるレストランを見つけられるようにします。

過度の使用により Google Maps API が遅れたりダウンしたりすると、エンドユーザーは被害を受け、探している情報を見つけるために別のプラットフォームを探す可能性があります。これは Yelp にとって悪いニュースです。ユーザーは、サードパーティが実際に問題を引き起こしたことを気にせずに、Yelp のエクスペリエンスの悪さを非難するからです。

基本的に、ユーザーは、トランザクションに関係する複雑さや依存する API 呼び出しに関係なく、アプリケーションが迅速に機能することを期待しています。アプリケーションが機能しない場合、彼らはわざわざ説明を求めようとせず、単に別のアプリケーションに移ります。今日の非常に競争の激しい市場では、サードパーティの API が期待に応えられないため、貴重な収益を失う可能性があります。

問題が解決しない場合、Yelp は Google Maps API の代替手段を探す可能性があります。これは、API からかなりの収益を生み出すという点で、Google にとってコストがかかります。実際、API は現在、企業にとって重要な収益チャネルとなっています。 IT リーダーは、自社の収益の平均 31% が API から生み出されていると報告しています。

多くのパブリック API は、収益を生み出したりパートナーシップを構築したりする機会に成長する前に、内部で開始されることを考慮してください。その観点から、組織内でのみ使用する場合でも、すべての API のパフォーマンス基準を高くする必要があることは容易に理解できます。 API がいくら小さくても、依存関係がいくつ(または少なく)ても、パフォーマンスが重要です。

API のパフォーマンスを確保するには? 負荷テスト。

ツールを使用してアプリケーションをテストおよび監視するのと同じように、API をテストおよび監視するための適切なツールに投資する必要もあります。独自の API を起動する場合でも、アプリケーションを強化するサードパーティの API に関心がある場合でも、これらの API のパフォーマンスを理解する必要があります。また、これらの API の容量を理解して、アプリケーションが処理できるボリュームを決定し、必要に応じて調整できるようにする必要があります。上で見たように、販売やプロモーションなどの重要な瞬間に、独自の API またはサードパーティの API が壊れたり、速度が低下したりすると、大きな問題になる可能性があります。

うまくいけば、初日からすでに機能テストを使って、API が意図したとおりに動作し、ビジネスニーズを満たしていることを確認しているかもしれません。これは重要な最初のステップですが、実際の状況で API が期待通りに動作することをどのようにして保証できますか?また、SOAP、REST、GraphQL の各サービスが、需要の高い状況下で大量のトラフィックに耐えられることをどのようにして確認できるのでしょうか?

ここで負荷テストが役立ちます。API 負荷テストは、デプロイに近い、または顧客がすでに使用しているアプリケーションまたはシステム内で本番レベルの負荷シミュレーションを作成することです。負荷テストでは、専用のテストソフトウェアを利用することで、「システムはこれらの条件下で期待どおりに動作していますか?」、「障害が発生したときにアプリケーションはどのように応答しますか?」、「アプリケーションのパフォーマンスは十分ですか?」などの質問に答えることができます。 また、API 負荷テストツールを使用すると、テストの長さや障害条件などの負荷テスト内の重要な要素に加えて、仮想負荷が API にどのように影響して現実的なシナリオを作成できるかを管理できます。

ReadyAPI Performance (旧名称 LoadUI Pro) で負荷テストを簡単に

幸い、適切なツールを使用すれば、負荷テストで API テストワークロードに大量の帯域幅を追加する必要はありません。実際、ツールの 1 つである ReadyAPI Performance (旧名称 LoadUI Pro) は、プロセスをさらに簡素化するように設計されています。 マウスを数回クリックするだけで、機能テストスクリプトを負荷テストに再利用できるため、既存の機能テストプロセスに負荷テストをシームレスに追加できます。

ReadyAPI Performance がそれをどのように行うか…それは次回の投稿でご紹介します。 それまで待てない場合は、ぜひ無料評価版をダウンロードして、ご自身でチェックしてください。 ただし、次回はパフォーマンス テスト ブログ シリーズのパート 2 として、ReadyAPI Performance と、数回クリックするだけで CI/CD パイプライン内で負荷、ストレス、耐久性のテストを正しく作成、管理、実行できる機能について詳しく説明します。

パート 2

パート 3

製品紹介:
ReadyAPI Performance – REST & SOAP API, データベース, マイクロサービスの負荷テストツール

この資料は、SmartBear の Blog で公開されている「API Performance Testing with LoadUI Pro: The Why, the How, and the Measures of Success [Part 1]」の日本語参考訳です。