【初心者向け】postmanで変数を使ってみた
はじめに
どうも、セカンドセレクション前野です。
RestAPIの開発にてリクエストするときにBearerトークンが必要で、ユーザー・パスワードを渡したリクエストから返ってくるトークンをコピーして開発中のAPIを呼ぶということをやっていました。
ただ時間が経過するとトークンが無効になるので、再度トークンを取得してコピー・ペーストという行為をやる必要があります。
せめてコピー・ペーストの作業だけでも省力化できないかといろいろと調べるとPostmanの変数を使えばできるということがわかりました。
備忘録がてらに細かいネタとして書いておきます。
Postmanについて
あまりにもメジャーなんで、こちらなんかを参照ください。
バージョン
Postman v11.18
変数
PostmanにはGlobal変数と環境変数の2つがあります。どちらもコレクション、環境、リクエスト、テストスクリプト全体で変数を参照できます。
Global変数
環境に関係なく共通の値を使いたいときに使用します。
この画面で追加、変更できます。
環境変数
環境を切り替えるごとに切り替わる変数です。
ここでは、開発で使う時の環境は「Test」、リリースで使う時の環境は「Release」に分けて、使用する変数を登録しています。
環境は右上の赤線で囲まれたところをクリックすると変わります。ここでは環境Testが選択されています。
環境としては「No environment」「Release」「Test」があります。
-
「Release」「Test」はこちらで追加したものです。
-
環境「No environment」では環境変数を設定できません。
環境Testには環境変数として「token_key」「base_url」を登録しています。
右上のvariablesボタンを押すと右側に変数一覧を表示します。
変数を使ってAPIの実行
- 接続先のURLは「base_url」に登録して、環境TestとReleaseで接続先を変更します。
- データ取得APIを実行するためのトークンキーを「token_key」に保存します。
- トークンキーを取得するリクエストを実行する。(トークンキーを環境変数へ保存)
- 環境変数のトークンキーを使ってデータ取得のリクエストを実行する。
URLの設定
- 環境を切り替えて「base_url」を追加して、値を設定します。
- 環境「Test」では
localhost:8877
で設定しています。 - 使う時は
{{base_url}}
と記述すれば、使用できます。- ここではトークンキー取得APIとデータ取得APIのURLに使用しています。
前準備
前準備として以下の処理を追加します。
- リクエスト
Get Token
を追加します。
http://{{base_url}}/authenticate
- ScriptsのPost-responseのトークンキーを環境変数「token_key」にセットするスクリプトを追加します。
pm.environment.set("token_key", pm.response.json().access_token)
- データ取得するリクエスト
Get Data
を追加します。
http://{{base_url}}/products/test?id=10000
- リクエスト
Get Data
のAuthorizationのBearer Tokenに{{token_key}}
をセットします。
今回のシステムでAuth TypeはBearer Tokenを使用していますので、このような設定をしました。
その他のAuth TypeでもGlobal変数と環境変数は使えますので、応用してみてください。
トークンキー取得APIを実行する
前準備が終わったら実行してみましょう。
- リクエストGet Tokenを実行する。トークンキーが取得できました。
- リクエストGet Dataを実行する。データが取得できました。
素晴らしい、トークンキーのコピー・ペーストをする必要がなくなりました。
この後は、1の実行は不要となり2だけでデータは取得できるようになります。
トークンキーの期限が切れたら、再度1を実行して新しいトークンキーを取得してください。
補足
グローバル変数
グローバル変数については細かく書いてありませんが、使い方はほぼ一緒です。
トークンキーをグローバル変数のtoken_keyにセットするには下記のようなスクリプトとなります。
pm.globals.set("token_key", pm.response.json().access_token)
変数名を間違えた
存在しない変数名を使用すると変数名のところが赤い背景色になります。
ここでは「base_urxx」なんて変数名はありません。
さいごに
たかがコピー・ペーストされどコピー・ペースト。「塵も積もれば山となる」です。
それに間違いを起こす原因となります。やらなくていいことはなるべく省力化するようにしましょう。
Postmanのバージョンによっては画面のイメージや操作方法が変わりますので、ご容赦ください。
Discussion