現在のアプリ開発では、APIはすでに不可欠の部分になります。APIの導入によって、アプリの機能を充実にし、生産性を極めて向上させることが可能です。Postmanは開発者の間で大人気なツールでは、変数を配置することで、開発の効率をさらに上げることができます。本文では、Postmanの変数について詳しく紹介した上、その利用ガイドも徹底的に解説します。
Postmanの変数とは?
Postmanの変数は、PostmanというAPI開発ツールで使用される変数のことを指します。Postman 変数は、リクエストで再利用する動的なキーと値のペアになります。ここでキーは変数名を表し、値は変数の値になります。これらの変数は、さまざまな API 間で値を保存して再利用できるため、冗長性が削減され、API テストプロセスでのエラーが最小限に抑えられます。
Postman 変数の一般的な使用例は、APIベースURL や認証トークンなど、複数のリクエストにわたって同じ値を使用する必要がある場合です。これらの値を変数として保存すると、URL、ヘッダー、前処理スクリプト、Bodyなど、リクエストのさまざまな部分でそれらの値を簡単に参照できるようになります。これにより、APIテスト間の一貫性が確保されます。
また、もう1つ便利な機能は、環境を配置して編集をグループ化にできるというところにあります。Postmanの環境機能は、環境に応じて異なる値を持つ変数のセットに切り替えることができますので、API開発の各段階においては、手動でデータを変更せずに、簡単に環境を変えてテスト環境を整えます。
Postmanの変数型の定義
Postmanでは、変数型が次のような2つが有ります。
- デフォルト型(Default Type):追加のプロパティを持たないプレーンテキスト変数です。
- シクレッド型(Secret Type):パスワードと同様に、すべてのワークスペースで初期値と現在の値を隠します。これらは、機密データの意図しない開示を防ぐために使用されます。
Postman変数の種類を解説
Postmanでは、開発者が特定のニーズを満たすために、異なる種類の変数をいくつか提供しています。Postmanでテストをより効率化にするために、Postmanのかく種類の変数を理解しなければいけません。そこで、次は、Postmanの各種類の変数を説明します。
グローバル変数(Global Variables)
グローバル変数は、Postmanプロジェクト全体で使用できる変数です。複数のリクエストや環境で同じ値を共有する必要がある場合に使用されます。グローバル変数は、プロジェクトの "Variables" セクションで定義され、どのリクエストでも参照できます。
具体的な使用例
- APIベースURL: 複数のAPIエンドポイントを使用する場合、共通のベースURLを変数として定義することができます。それにより、URLの変更や管理が簡単になります。
- 認証トークン: APIへの認証に使用するトークンを共通の変数として定義することで、各リクエストで手動でトークンを入力する必要がなくなります。トークンの更新があった場合も、一箇所で変更するだけで済みます。
- ユーザーIDやAPIキー: リクエストごとに必要なユーザーIDやAPIキーを共通の変数として定義することで、複数のリクエストで同じ値を使用できます。また、これらの値を変更する際も、変数の値を更新するだけで反映されます。
グローバル変数の構文
Set Global Variable: pm.globals.set("variable_name", "variable_value");
Get Global Variable: var variable_value = pm.globals.get("variable_name");
Unset Global Variable: pm.globals.unset("variable_name");
構文の例
// Set up Global Variable
pm.globals.set("base_url", "https://api.example.com");
// Access Global Variable
var base_url = pm.globals.get("base_url");
// Unset Global Variable
pm.globals.unset("base_url");
環境変数(Environment Variables)
環境変数は、特定の環境(開発、ステージング、本番など)に関連付けられた変数です。各環境には異なる値を持つことができ、切り替えることができます。環境変数は、Postmanの "Environment" タブで定義され、その環境に属するリクエストで使用できます。
環境変数の使用例
- テストデータ: テストシナリオで使用するデータ(例:テストユーザーの情報)を共通の変数として定義することで、異なるテストケースで同じデータを再利用できます。テストデータの変更があった場合も、変数の値を更新するだけで変更が反映されます。
- 環境固有の設定: 環境ごとに異なる設定(例:開発、ステージング、本番)を共通の変数として定義することで、環境の切り替え時に設定を簡単に変更できます。
環境変数の構文
Get Environment Variable: var variable_value = pm.environment.get("variable_name");
Unset Environment Variable: pm.environment.unset("variable_name");
構文の例
// Set up Environment Variable
pm.environment.set("api_key", "xyz789");
// Access Environment Variable
var api_key = pm.environment.get("api_key");
// Unset Environment Variable
pm.environment.unset("api_key");
コレクション変数(Collection Variables)
コレクション変数は、特定のAPIコレクション内で使用される変数です。コレクション内のすべてのリクエストで共有される値を格納するために使用されます。コレクション変数は、コレクションの "Variables" セクションで定義され、そのコレクション内のすべてのリクエストで利用できます。
コレクション変数の使用例
- コレクション固有のデータ:テスト固有のデータやコレクションレベルの構成など、特定のデータ値が特定のコレクション内にのみ関連する場合、コレクション変数をそれらを保存および管理する便利な方法を提供します。
- コレクション全体の環境構成: コレクションごとに異なる API キーやエンドポイント URL など、コレクションに特定の環境構成が必要な場合、コレクション変数を使用すると、コレクション全体で値が一貫していることが保証されます。
コレクション変数の構文
Set Collection Variable: pm.collectionVariables.set("variable_name", "variable_value");
Get Collection Variable: var variable_value = pm.collectionVariables.get("variable_name");
Unset Collection Variable: pm.collectionVariables.unset("variable_name");
構文の例
// Set up Collection Variable
pm.collectionVariables.set("auth_token", "abcd1234");
// Access Collection Variable
var auth_token = pm.collectionVariables.get("auth_token");
// Unset Collection Variable
pm.collectionVariables.unset("auth_token");
ローカル変数(Local Variables)
ローカル変数は、一時変数としても知られていて、特定のリクエストのスクリプト内でのみアクセスできます。ローカル変数の範囲は現在のリクエストまたはコレクションに限定されており、実行が完了するとすぐ無効になります。
ローカル変数の使用例
- 計算値:リクエスト内で計算や変換を実行する必要がある場合は、同じリクエスト内で後で使用できるように、その結果をローカル変数に保存できます。
- リクエスト固有のデータ:リクエストが他のリクエストに関係のない固有のデータを必要とする場合、ローカル変数は、そのようなデータを一時的に保存するためのメーカリズムを提供しています。
ローカル変数の構文
Set Local Variable: pm.variables.set("variable_name", "variable_value");
Get Local Variable: var variable_value = pm.variables.get("variable_name");
Unset Local Variable: pm.variables.unset("variable_name");
構文の例
// Set up Local Variable
pm.variables.set("response_code", 200);
// Access Local Variable
var response_code = pm.variables.get("response_code");
// Unset Local Variable
pm.variables.unset("response_code");
上記では、Postmanで利用可能な変数の種類を紹介しました。これらの変数の定義や効果を深く理解すると、変数を効果的に利用・再利用することで、生産性を向上することができます。また、これらの変数は、{{variable_name}}という形式で参照され、動的なデータの操作やテストの自動化などのさまざまな用途に活用されます。
Postman変数の利用制限について
Postmanで変数を設定して、作業の効率を向上することができますが、 Postmanのコレクションの制限によって、その生産性向上に悪影響を出しています。Postmanは、最近コレクションの実行回数に制限を課すことにしました。FreeとBasicプランでは、1ヶ月以内でコレクションを最大25回のみ実行できます。この制限は、開発者、特に大規模のプロジェクトに大きな悪影響を与えています。
また、Postmanは現時点日本語に対応していないため、英語のUIしか使えません。これらの制限により、Postmanを日本語化されたApidogに切り替える必要があります。Apidogでは、変数を設定したり、環境を配置したり、テストのコレクションを無制限に実行したりすることができます。また、個人利用は完全無料になります。
Apidogで変数をより簡単に利用する
Apidogは、Postmanより強力で使いやすいAPI管理ツールになります。Apidogの日本語UIで、環境や変数を簡単に設定することができます。また、非常に優れたコラボレーション機能を提供しているので、チームの開発効率をかなり向上することができます。
次の画像のように、Apidogの環境管理画面で、変数を簡単に設定することができます。
Postmanの変数を日本語対応のApidogにインポート
また、Apidogは、Postmanフォーマットのデータにも完璧に互換できますが、Postmanのデータをエクスポートして、それをApidogにインポートすると、Postmanのコレクション、環境、変数などのデータがApidogで直接に利用できます。
ステップ⒈Postmanの「Export Collection」機能を利用して、コレクションのデータを完全にエクスポートできます。
ステップ⒉Apidogは様々なフォーマットにも対応しています。Postmanのコレクションをインポートするには、「Postman」を選択して、Postmanのデータを完璧にApidogにインポートできます。
ステップ⒊Apidogは、Postmanのデータを完璧に解析することができるので、仕様書、テストケース、変数を含む環境設定、Schemaなども直接にApidogで利用できます。
まとめ
Postmanでは、変数を利用することで、API作業の効率を大幅に向上できます。本文では、Postman変数を詳しく紹介しましたので、これらの変数をより効率的に利用するために、本文の内容を参照してください。また、Postmanは日本語に対応できていない、コレクション実行に制限があるなどの欠点もありますので、環境、変数やコレクション実行にも対応可能なApidogに切り替えることがおすすめです。ApidogはPostmanより制限が少なく、使いやすいAPI管理ツールになります。