Postmanを使用してバックエンドAPIの挙動確認を行います。特に、ログイン後にログアウトする際の認証トークンをPostmanで効率的に管理する方法について解説します。具体的には、ログインAPIで取得したトークンを環境変数として保持し、それをログアウトAPIのリクエストに付与する方法です。
目的
- ログインAPIを実行して認証トークンを取得し、そのトークンを使ってログアウトAPIを実行する
- ログイン後のレスポンスヘッダにある
access-token
、client
、uid
を取得し、環境変数に保存して使い回す
手順
1. ログインAPIを叩く準備
まず、PostmanでログインAPIのリクエストを作成し、認証情報を取得します。このリクエストにより、バックエンドからaccess-token
、client
、uid
といった認証情報がレスポンスヘッダに含まれて返されると仮定します。これらのトークンを後のリクエストで利用できるようにするために、環境変数に保存します。
2. 新しいEnvironmentの作成
環境変数を使用するため、まず新しい環境(Environment)を作成します。
- Postman右上の「Environment」ドロップダウンメニューから「Environments」を選択します。
- 「New Environment」をクリックし、任意の名前(例:「API認証環境」)を付けて作成します。
3. スクリプトでレスポンスヘッダからトークンを環境変数にセット
ログインAPIのリクエストを送信し、レスポンスヘッダから認証情報を取得するために、以下のテストスクリプトを設定します。
- ログインAPIリクエストの「Scripts」タブを開きます。
- 以下のスクリプトを貼り付けます。
var accessToken = pm.response.headers.get("access-token");
var client = pm.response.headers.get("client");
var uid = pm.response.headers.get("uid");
if (accessToken) {
pm.environment.set('access-token', accessToken);
}
if (client) {
pm.environment.set('client', client);
}
if (uid) {
pm.environment.set('uid', uid);
}
スクリプトの解説
-
pm.response.headers.get("header-name")
:レスポンスヘッダから指定のヘッダ値を取得します。 -
pm.environment.set('variable-name', value)
:取得した値を環境変数にセットします。
4. ログアウトAPIリクエストの準備
ログアウトAPIを叩くために、ログイン時に取得したaccess-token
、client
、uid
をリクエストヘッダにセットします。以下のように、Postmanのヘッダセクションでそれぞれのキーに環境変数を利用した値をセットします。
- ログアウトAPIのリクエストを作成します。
- Headersタブを開き、以下のキーと値を入力します。
{{ }}
で囲むと、Postmanはその中のテキストを対応する環境変数の値に置き換えます。
5. 動作確認
ここまでの設定が完了したら、Postmanで以下の手順で実行します。
-
ログインAPIを実行し、レスポンスヘッダに含まれる
access-token
、client
、uid
が環境変数にセットされているか確認します。 - ログアウトAPIを実行します。この際、リクエストヘッダにセットされた環境変数が適切に送信されていることを確認します。
- ログアウトAPIが正しく動作していれば、認証状態が確認され、ログアウトが成功するはずです。
コンソールでの確認方法
Postmanのコンソールを開くと、リクエストやレスポンスの詳細が確認できます。リクエストヘッダに適切にaccess-token
、client
、uid
が含まれていることを確認し、無事にログアウトができるかどうかを検証しましょう。
まとめ
Postmanの環境変数とスクリプトを使うことで、認証トークンを効率的に管理し、連続したAPIリクエストでトークンを利用できます。特に、ログイン後の認証情報をログアウトなどの後続リクエストに利用する場合、今回の方法を使えば、効率的にトークンを管理でき、テスト作業がスムーズになります。ぜひ、この便利な方法を活用し、PostmanでのAPIテストの効率を高めてください!
参考文献
実務で役立つPostmanの機能を存分に活用し、APIテストが効率化されることを願っています!