非同期通信パターンを採用する API が増えるにつれて、非同期 API (AsyncAPI) テストの重要性が高まっています。API の品質を確保するための強力かつ包括的なテスト ツールである ReadyAPI は、AsyncAPI のテストもサポートしています。この記事では、SwaggerHub から ReadyAPI に AsyncAPI をインポートしてテストする手順を紹介します。
非同期 API とは?
手順を説明する前に、非同期 API について説明しましょう。非同期 API は、プログラムが各タスクの完了を待たずに複数のタスクを同時に実行できるプログラミング インターフェイスです。つまり、プログラムは非同期 API へのリクエストを開始し、API からの応答を待たずに他のコードの実行を継続できます。
非同期 API を使用すると、プログラムは API 応答の受信後に実行するコールバック関数を登録できるため、API からの応答を待機している間も他のコードの実行を継続できます。非同期 API は、ネットワーク要求やファイル I/O など時間のかかるタスクを、メイン スレッドをブロックせずに実行する必要があるアプリケーションにおいて特に有用です。
事前準備
ここで紹介する ReadyAPI を使って AsyncAPI をテストする手順では、以下のものが必要になります。
- SwaggerHub アカウント
- ReadyAPI ライセンス
- SwaggerHub 上の AsyncAPI 仕様
SwaggerHub から AsyncAPI をインポートする
SwaggerHub アカウントにログインして、ReadyAPI にインポートする AsyncAPI 仕様に移動します。
[Download] ボタンをクリックして、YAML 形式を選択します。
YAML ファイルをローカル マシンに保存します。
ReadyAPI を開いて、[File] > [Import] をクリックします。
[Import File] ダイアログ ボックスで AsyncAPI 形式を選択し、ステップ 3 で保存した YAML ファイルを指定します。
[Import] をクリックします。これで、AsyncAPI 仕様が ReadyAPI にインポートされます。
ReadyAPI で AsyncAPI をテストする
API をインポートしたら、API Navigator に移動して Publisher または Subscriber チャネルを選択します。
右クリックして [Add to Test Case] を選択します。
テスト ケースに [API Connection] テスト ステップを追加します。
[API Connection] テスト ステップは、非同期 API、特に Kafka の操作に使用できます。この場合、パブリッシャーはブローカー上のチャネルにメッセージ (またはイベント) を送信し、サブスクライバーはチャネルをサブスクライブすることでそれらのメッセージ (イベント) を取得します。
ReadyAPI の API Connection テスト ステップは、次の 2 つのモードで動作します。
Publish モードでは、イベント パブリッシャー (またはプロデューサー) として、ブローカーに接続し、イベントを送信してから切断します。
- Subscribe モードでは、イベント サブスクライバー (またはコンシューマー) として、ブローカーに接続し、接続が開いている間イベントを消費し続けます。
複雑な検証条件を作成するには、アサーションをアサーション グループに整理できます。
また、メッセージをフィルターして、特定のアサーションに合格/不合格になったもののみを表示することもできます。これを行うには、アサーションをポイントし、ドロップダウン リストから必要なオプションを選択します。
ReadyAPI を使って AysncAPI を次のレベルに引き上げましょう。テストをお楽しみください!
この資料は、SmartBear の Blog で公開されている「How to Test your AsyncAPIs with ReadyAPI」の日本語参考訳です。