Apidog

オールインワンのAPI開発プラットフォーム

API設計

API仕様書生成

API設計

API Mock

APIテスト自動化

無料登録
Home / 操作ガイド / 解説:PostmanでJSONレスポンスから値を変数に抽出する

解説:PostmanでJSONレスポンスから値を変数に抽出する

PostmanでAPIをテストする時、テストプロセスをより効率的に行うために、レスポンスから特定の値を変数に抽出する必要があります。それでは、PostmanでJSONレスポンスから値を変数に抽出するには、どうしたらいいですか?本文では、Postmanのテストスクリプトを使って、便利にJSONレスポンスから値を変数に抽出する方法を皆さんに紹介します。

PostmanでAPIをテストする時、テストプロセスをより効率的に行うために、レスポンスから特定の値を変数に抽出する必要があります。それでは、PostmanでJSONレスポンスから値を変数に抽出するには、どうしたらいいですか?本文では、Postmanのテストスクリプトを使って、便利にJSONレスポンスから値を変数に抽出する方法を皆さんに紹介します。

💡
Apidogは、APIの設計、ドキュメンテーション、テストやモックサーバーなどにも全面的に対応可能なAPI管理ツールとして、API開発の効率性をかなり向上することができます。Apidogの「変数抽出」機能を使うことで、JSONPathでレスポンスから値を抽出し、直感的に変数として保存することができます。

また、Apidogは完全無料で利用可能なツールになりますが、次のボタンからこのツールを無料で取得することが可能です。

Postmanとは?

Postmanは、API(Application Programming Interface)開発とテストのための人気のあるツールです。Postmanを使用すると、開発者はHTTPリクエストを作成し、APIエンドポイントに送信することができるので、APIの動作をテストしたり、リクエストとレスポンスのデータを確認したりできます。

初心者向け:Postmanの基本的な使い方を
Postmanは、APIテストなどを行うための定番のツールになります。API戦略を実施する場合は、Postmanを利用することで、その効率性を大幅に向上できます。そこで、本文では、基本的なPostmanの使い方を皆さんに紹介して、Postmanを全く使ったことがないユーザーでも、本文の内容を参照して、Postmanを使いこなすことができると思います。

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

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クライアントツールです。

button

Apidogには、「変数抽出」という機能がありますので、直感的な画面で、APIレスポンスの特定の値を変数として抽出したり、保存したりすることができます。

ステップ⒈ApidogでJSONレスポンスの値を変数に抽出する場合、Apidogのリクエスト画面で「後処理」に切り替え、「抽出変数」を追加します。

後処理で抽出変数のステップを追加

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

抽出変数の詳細を定義

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

JSONPath抽出ツールを利用

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

変数が追加された
button

まとめ

本記事では、PostmanでJSONレスポンスから値を変数に抽出する理由と方法について説明しました。Postmanでは、テストスクリプトを使ってJSONレスポンスから値を抽出し、変数に格納することができます。

さらに、JSONレスポンスの値をより便利に変数に抽出したい場合は、Apidogの「変数抽出」機能を使うことがおすすめです。JSONPathでレスポンスから値を抽出し、直感的に変数として保存することができます。

このように、PostmanおよびApidogにはJSONレスポンスから値を変数に抽出する便利な機能が備わっています。APIテストの時にこれらの機能を活用することで、テストの効率化やデータ駆動型テストの実現が可能になります。

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。