【えーぴーあいてすと】

APIテスト とは?

💡 UIを飛ばしてバックエンドに直接話しかける、高速テストの主役
📌 このページのポイント
APIテスト — UIを介さない直接検証 テストツール Postman / Jest REST Assured Request API GET /users/1 POST /orders Response 検証ポイント ✓ Status 200 ✓ JSON構造 ✓ 応答時間 ✓ データの値 テストピラミッドでの位置 UIテスト(遅) APIテスト ← ここ! 単体テスト(速)
APIテストのイメージ
ひよこ ひよこ

APIテストってブラウザ使わないの?

ペンギン先生 ペンギン先生

そうだよ。ブラウザの代わりにPostmanなどのツールやテストコードから直接HTTPリクエストを送るんだ。UIの表示崩れに影響されないから安定していて高速だよ

ひよこ ひよこ

何をチェックするの?

ペンギン先生 ペンギン先生

主にHTTPステータスコード(200 OKとか404 Not Found)、レスポンスのJSON構造、データの値、レスポンス時間などだよ。認証が必要なAPIなら、トークンなしでアクセスしたとき403が返るかもチェックするんだ

ひよこ ひよこ

UIテストの方が実際のユーザーに近くて良くないの?

ペンギン先生 ペンギン先生

UIテストも必要だけど、遅くて壊れやすいんだ。テストピラミッドではAPIテストが中層に位置していて、ビジネスロジックの検証にはAPIテストの方が費用対効果が高いよ

ひよこ ひよこ

Postman以外だとどんなツールがあるの?

ペンギン先生 ペンギン先生

JavaならREST Assured、JavaScriptならSupertestやAxios+JestPythonならRequestsライブラリが定番だよ。最近はPlaywrightAPIテスト機能も人気が出てきているんだ

ひよこ ひよこ

CIに組み込むこともできるの?

ペンギン先生 ペンギン先生

もちろんだよ。Newman(PostmanのCLI版)やテストフレームワークを使えばCIパイプラインで自動実行できる。デプロイ後にスモークテストとしてAPIテストを走らせるのは定番のプラクティスだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
APIテスト」って出てきたら「UIを使わずにAPIへ直接リクエストを送って動作確認するテスト」と思えればだいたいOK!
📖 おまけ:英語の意味
「API Testing」 = API(アプリケーションプログラミングインターフェース)のテスト
💬 API自体は「プログラム同士の窓口」だよ。その窓口が正しく応答するかを確認するのがAPIテストなんだ
← 用語集にもどる