1. はじめに
REST APIのテスト自動化には以下の利点がありと考えています!
-
効率的な実行: 手動でテストケースを実行する時間と労力を節約できる
-
一貫性の確保: 常に同じ手順とアサーションを実行するため、テスト結果の一貫性が確保される
-
早期のバグ検出: 短時間で大量のテストケースを実行できるため、バグや問題を早期に検出し、修正することができる
これらの利点により、REST APIのテスト自動化は効率的で信頼性の高いテストプロセスを実現し、開発チームの生産性と品質を向上させることができます。
2. 概要と目的
REST APIの自動テストに挑戦したいと思った時に、最もシンプルな自動テストの基盤となる物を作っていきたいと思います。
まずは下記テスト内容を作っていきます。
- リクエストの正常な応答
- レスポンス速度が大きく遅延していない
3. 使用ツール
PostmanとNewmanを組み合わせることで、APIのテストと自動化を効果的に行うことができます。
- Postman
APIの開発、テスト、ドキュメント作成等を行えるツール - Newman
Postmanコレクションをコマンドラインから実行するためのツール
4. Postmanでテストケースを作成
4-1. Postmanをインストール
- Postmanの公式ウェブサイトにアクセス
- ダウンロードページから、対応するオペレーティングシステム用のPostmanをダウンロード
- ダウンロードが完了したら、インストーラを実行し、指示に従ってPostmanをインストール
4-2. リクエストの作成と送信
Postmanを起動し、以下の手順でリクエストを作成して送信できます。
- Postmanを開き、新しいリクエストを作成
- リクエストのメソッド(GET、POSTなど)とエンドポイント(APIのURL)を指定
- 必要に応じて、ヘッダーやパラメーターを追加
- 必要に応じて、リクエストボディに必要なデータを入力
- 作成したリクエストを送信し、レスポンスを確認
4-3. テストスクリプトの作成
レスポンスを確認できたら、Scripts画面にテストスクリプトを書いていきます。
// Test Case 1: 疎通確認
pm.test("APIが正常に応答すること", function () {
pm.response.to.be.ok;
pm.response.to.have.status(200);
});
// Test Case 2: パフォーマンス確認
pm.test("レスポンス時間が一定範囲内であること", function () {
pm.expect(pm.response.responseTime).to.be.below(3000);
});
4-3. テストスクリプトの実行と結果の確認
テストスクリプトは、Postmanのテストランナーを使用して実行できます。以下の手順でテストスクリプトを実行し、結果を確認できます。
- Postman右上の「Send」ボタンをクリック
- テストが実行され、結果が表示
- テストが成功した場合は緑色のチェックマークが表示され、Test Results画面に実施したテストケースの結果が表示される
PASS APIが正常に応答すること
PASS レスポンス時間が一定範囲内であること
5. テストの自動化とエクスポート
Postmanで作成したテストケースをNewmanを使用して実行できるようにします。
5-1. Newmanをインストール
- NewmanはNode.jsで動作するため、まずNode.jsをインストール
- ターミナルまたはコマンドプロンプトを開き、以下のコマンドを実行してNewmanをインストール
npm install -g newman
5-2. テストケースのエクスポートとコレクションの作成
- Postmanを開き、テストケースを含むコレクションを選択
- コレクションの右上にある「...」アイコンをクリックし、「エクスポート」を選択
- エクスポートのオプションを選択し、コレクションをエクスポート
5-3. Newmanを使用したテストの自動化と実行
- ターミナルまたはコマンドプロンプトを開く
newman run コレクションファイル名.json
- コレクション内のすべてのリクエストが実行される
6. まとめ
今回作ってみた自動テストは、REST APIの自動化を行っていくための最初の一歩です!
この基本を覚えた上で、テストスクリプトにテストケースを増やして網羅率あげていったり、newmanの実行をCIツールを利用して定期実行をかけて安定稼働、監視を行ったりと、テストを充実させていくきっかけにしていきます。