【ツール活用|実務向け】Postman Collection Runnerで始めるAPIシナリオテストの自動化と効率化

導入

API開発において、エンドポイント単体の疎通確認だけで満足していませんか?実際のシステムでは「ユーザー登録後に発行されたトークンを使って記事を投稿する」といった、リクエスト間の依存関係を持つシナリオが不可欠です。Postmanの「Collection Runner」を活用すれば、これらの連続したリクエストを自動化し、手動テストの工数を劇的に削減できます。本稿では、効率的なCI/CDへの第一歩となる自動テストの構築方法を解説します。

基礎知識

Collection Runnerとは、Postmanの「コレクション(リクエストをまとめたフォルダ)」に含まれるAPIを、設定した順序で一括実行する機能です。これを用いることで、データ駆動テスト(Data-Driven Testing)が可能になります。外部のCSVファイルを読み込ませることで、同一のシナリオを異なる入力値で繰り返し実行でき、境界値テストや異常系テストの網羅性を高めることができます。

実装/解決策

具体的な手順は以下の通りです。
1. コレクションを作成し、シナリオ順にリクエストを並べます。
2. 後のリクエストで前のリクエストのレスポンス(例:認証トークン)を使うため、Testsタブで環境変数に値を保存します。
3. Collection Runnerを開き、実行対象のコレクションを選択します。
4. 必要に応じてテスト用データ(CSV)をアップロードし、「Run」ボタンを押すだけで検証が開始されます。

サンプルプログラム

以下のコードは、最初のAPIで取得したユーザーIDを環境変数に保存し、次のAPIでそのIDを利用する例です。各リクエストの「Tests」タブに記述してください。

(リクエスト1:ユーザー作成のTestsタブ)
// レスポンスからIDを取得し、環境変数にセットする
const jsonData = pm.response.json();
pm.environment.set(“userId”, jsonData.id);
console.log(“ユーザーIDを保存しました: ” + jsonData.id);

(リクエスト2:ユーザー詳細取得のTestsタブ)
// 環境変数からIDを読み込み、テストを実行する
const userId = pm.environment.get(“userId”);
pm.test(“ユーザーIDが一致すること”, function () {
const responseData = pm.response.json();
// 保存したIDとレスポンスのIDを照合
pm.expect(responseData.id).to.eql(userId);
});

応用・注意点

現場で活用する際のポイントとして、「テストの独立性」を意識してください。CSVで大量のデータを流す際、1件のテスト失敗が後続のテストに影響を与えないよう、各リクエスト終了後にクリーンアップ処理(作成したデータの削除など)をAPIで呼び出す工夫が重要です。また、CI/CDに組み込む際は、GUIではなくコマンドラインツールの「Newman」を利用することで、GitHub Actions等のパイプライン上で自動テストを実行することが可能になります。これにより、デプロイ前のリグレッションテストを完全に自動化できます。

コメント

タイトルとURLをコピーしました