🎉

APIdogを利用して、QAエンジニアによるAPIテストを実施してみる

2024/06/26に公開

はじめに

これまで、CUIベースやPostmanを利用したAPIテストを実施してきましたが、これまで結合テスト期間中に一人で実施することが多かったので、特にテストツールには拘りはありませんでした。
今回は複数人のチームでテストを実施すること、API実装と並行してAPIテストを実施するアジャイル開発を行うため、チームでテスト環境を共有できるツールが必要になりました。実験的なプロセスでもあったため、4人までならFree利用(かつクレジットカード登録不要)ができるAPIDogを利用することになりました。

APIDogとは

APIDogは、API開発とテストを効率化するためのAPI開発プラットフォームで、下記のとおり、全てのAPI開発プロセスを効率的に実行できます。
・APIエンドポイント設計/開発とテスト
・APIドキュメントの自動生成
・API呼び出しとモックサーバーの構築
・APIシナリオテストの自動化

実際のプロダクト名称が記載されている箇所は、グレーで塗りつぶしています

APIDogを利用したAPIテストの作成

今回は、QAエンジニアのみがAPIDogを利用するため、APIテストを初めて行うテスターがいましたので、APIテストで利用するHTTPメソッドの説明も含めて、APIDogでAPIテストを作成する方法を説明します。

POSTのテスト作成

サーバー上での新規リソース作成やデータ更新に使用されるHTTPメソッドとなります。
大量にデータを送信するときに使用され、そのデータはリクエストの本文(body)に含まれていることが特徴となります。
例えば、新しいユーザーを作成するためのAPIエンドポイントがhttps://api.example.com/usersである場合、クライアントはPOSTリクエストをこのエンドポイントに送信し、ユーザー情報(名前やメールアドレスなど)を本文(body)に含めます。サーバーはそのデータを受け取り、新しいユーザーエントリをデータベースに追加します。
以下のキャプチャは、APIDogで作成したPOSTメソッドのテスト例となります。

POSTリクエストでは、Bodyタブに定義されているパラメーターを直接記載していくので、テストが少々作成しにくいかもしれません。
APIDogでは、Bobyのパラメーター値を自動生成したり、動的に変わる値を挿入することもできますが、今回は利用しませんでした。

PUTのテスト作成

サーバーに対してデータを送信し、既存のリソースを置換または更新するために使用されるHTTPメソッドとなります。
PUTリクエストは通常、クライアントが特定のリソースの新しいバージョンをサーバーに送信するときに使用され、そのデータはリクエストの本文(body)に含まれます。
例として、ユーザー情報を更新するためのAPIエンドポイントがhttps://api.example.com/users/{id}である場合、クライアントはPUTリクエストをこのエンドポイントに送信し、更新したいユーザー情報を本文(body)に含めます。サーバーはそのデータを受け取り、指定されたIDのユーザー情報を更新します。
以下のキャプチャは、APIDogで作成したPOSTメソッドのテスト例となります。

PUTリクエストでは、URI欄で指定した{id}を自動的に認識して、ParamタブにPathパラメーターを設定します(パラメーター値は自ら入力した値)。当初はこの動作が分からず、URI欄の{id}を書き換えようとしてました。

GETのテスト作成

サーバーからデータを取得するために使用されます。GETリクエストは通常、クライアントがデータを要求するときに使用され、リクエストの本文(body)にはデータを含みません。
また、GETリクエストにはクエリパラメータを含めることもでき、例えば特定のIDを指定して情報を取得するパターンもあります。
たとえば、ユーザー情報を取得するためのAPIエンドポイントがhttps://api.example.com/usersである場合、クライアントはGETリクエストをこのエンドポイントに送ることで、サーバーからユーザー情報のリストを取得できます。

GETリスエストは上記の説明通り、リスエストの本文(body)にはデータは含まれません。
クエリパラメーターが必要な場合は、Paramタブにてパラメーターを設定してください。

DELETEのテスト作成

サーバーに対して特定のリソースを削除するために使用されます。DELETEリクエストは通常、クライアントがサーバー上のリソース(データ)を削除したいときに使用します。リクエストの本文(body)には通常データを含まず、削除したいリソースを特定するためのURIを指定します。
たとえば、特定のユーザー情報を削除するためのAPIエンドポイントがhttps://api.example.com/users/{id}である場合、クライアントはDELETEリクエストをこのエンドポイントに送信し、特定のIDを持つユーザー情報を削除します。

DELETEリクエストでは、PUTリクエストと同様にURI欄で指定した{id}を自動的に認識して、ParamタブにPathパラメーターを設定します(パラメーター値は自ら入力した値)。

まとめ

ApidogはシンプルなAPIテストツールと比較して多くの高度な機能を提供しており、特にURIの自動解析といった機能は、APIテストの初心者を戸惑わせる原因になることがあります。初心者にとって、最初に学ぶべき基本的な操作や概念が、これらの機能によって見えにくくなる可能性があります。例えば、簡単なリクエスト送信やレスポンス解析に集中したい場合、多機能なインターフェースは圧倒的で混乱を招きやすいかと考えています。
実のところ、APIテストの基本を学ぶ段階ではシンプルなテストツールを使用して、簡単なリクエスト送信やレスポンスの確認を行うことをお勧めします。APIテストの基礎を習得したら、その後にApidogのようなリッチなテストツールを利用すると、スムーズに移行できるかと思います。

Discussion