PostmanでAPIをテストする時、テストプロセスをより効率的に行うために、レスポンスから特定の値を変数に抽出する必要があります。それでは、PostmanでJSONレスポンスから値を変数に抽出するには、どうしたらいいですか?本文では、Postmanのテストスクリプトを使って、便利にJSONレスポンスから値を変数に抽出する方法を皆さんに紹介します。
また、Apidogは完全無料で利用可能なツールになりますが、次のボタンからこのツールを無料で取得することが可能です。
Postmanとは?
Postmanは、API(Application Programming Interface)開発とテストのための人気のあるツールです。Postmanを使用すると、開発者はHTTPリクエストを作成し、APIエンドポイントに送信することができるので、APIの動作をテストしたり、リクエストとレスポンスのデータを確認したりできます。

また、Postmanは、機能豊富なインターフェースを提供し、リクエストの作成や編集、ヘッダーの管理、パラメータの設定、レスポンスの確認などを行うことができます。

PostmanでJSONレスポンスの値を変数に抽出する理由
PostmanでJSONレスポンスから値を変数に抽出すると、多くの場合はAPIテストの効率性を高めることができます。PostmanでJSONレスポンスの値を変数に抽出すると、次のような場面で役に立ちます。
テストスクリプトでの利用
Postmanのテストスクリプトでは、レスポンスデータを検証したり、後続のリクエストに使用したりできます。レスポンスから抽出した値を変数に格納することで、テストスクリプト内で使いやすくなります。
後続のリクエストでの利用
RESTfulなAPIを扱う際、特定のリソースを操作するためにはそのリソースを一意に識別する値(ID等)が必要となります。レスポンスからIDを抽出して変数に格納しておけば、後続のリクエストでそのIDを使ってリソースを参照できます。
動的データの扱い
レスポンスは常に同じ値ではありません。例えば認証トークンなどは、リクエストの度に異なる値が返されます。そういった動的なデータをレスポンスから抽出して変数に格納しておけば、その変数を後続のリクエストで使うことができます。
つまり、PostmanでAPIテストを行う際、レスポンスデータから必要な値を取り出して変数として保持しておくことで、テストスクリプトの記述や、後続のリクエストにおける動的データの扱いが容易になるのです。強力な機能の1つとして、このPostmanの変数機能が重要な役割を果たしています。
PostmanのテストスクリプトでJSONレスポンスの値を変数に抽出
それでは、次はPostmanのテストスクリプトという機能を使って、JSONレスポンスの値を変数に抽出する方法を皆さんに紹介します。
ステップ⒈Postmanでリクエストを送信して、レスポンスを取得すると、レスポンスのどの値を変数に抽出するのかを決めます。

例えば、次のようなJSONレスポンスを取得すると仮定します。
{
"code": 0,
"data": {
"id": 1,
"name": "ペット名",
"photoUrls": [
"http://dummyimage.com/200x200"
],
"category": {
"id": 3874752823886026,
"name": "Cat"
},
"tags": [
{
"id": 4222123753704460,
"name": "cat"
}
],
"status": "available"
}
}
上記のようなJSONデータから販売状況を表すstatus
を環境変数として保存します。
ステップ⒉Postmanでリクエスト画面で「Tests」タブに切り替えて、次のようなScriptを入力します。

// JSONレスポンスのデータをresponseDataオブジェクトに定義
let responseData = pm.response.json();
// レスポンスのデータのデータオブジェクトの下のstatusフィールドの値をPetStatusという変数に抽出
pm.environment.set("PetStatus", responseData.data.status);
ステップ⒊「Send」ボタンをクリックして、リクエストを送信すると、先に入力したテストスクリプトが自動的に実行されます。
そして、右上にあるEnvironmentをクリックして、環境設定を開くと、先に定義した変数がすでに環境変数に追加されるかどうかを確認できます。

Apidogの変数抽出機能を使ってより便利に行う
上記の内容では、Postmanでレスポンスの値をテストスクリプトで環境変数に抽出する方法を紹介しました。実際には、JSONフォーマットのレスポンスの値を変数に抽出するには、Apidogという強力なAPI管理ツールを使うのがより便利です。Apidogは、API設計、ドキュメンテーション、テストやモックサーバーなどの機能をもサポートできるAPIクライアントツールです。
Apidogには、「変数抽出」という機能がありますので、直感的な画面で、APIレスポンスの特定の値を変数として抽出したり、保存したりすることができます。
ステップ⒈ApidogでJSONレスポンスの値を変数に抽出する場合、Apidogのリクエスト画面で「後処理」に切り替え、「抽出変数」を追加します。

ステップ⒉ここで変数名を定義した上、JSONレスポンスから抽出したい値をJSONPathで定義します。

ご案内:JSONPath式の書き方がわからない場合は、入力ボックスの「展開」アイコンをクリックして、JSONPath抽出ツールを開くことができます。ここで、JSONPath式を入力すると、抽出の結果がリアルタイムに表示されます。

ステップ⒊最後に「送信」ボタンをクリックしてリクエストを送信した後、この後処理のステップが自動的に実行されます。そして、右上にある環境設定をクリックして、環境変数のリストで先に定義した変数が追加されたことを確認できます。

まとめ
本記事では、PostmanでJSONレスポンスから値を変数に抽出する理由と方法について説明しました。Postmanでは、テストスクリプトを使ってJSONレスポンスから値を抽出し、変数に格納することができます。
さらに、JSONレスポンスの値をより便利に変数に抽出したい場合は、Apidogの「変数抽出」機能を使うことがおすすめです。JSONPathでレスポンスから値を抽出し、直感的に変数として保存することができます。
このように、PostmanおよびApidogにはJSONレスポンスから値を変数に抽出する便利な機能が備わっています。APIテストの時にこれらの機能を活用することで、テストの効率化やデータ駆動型テストの実現が可能になります。