Postmanの入門から精通へ:正規表現エクストラクタを使ったAPIチェーンの実装

Postmanの正規表現エクストラクタを活用してAPIチェーンを実装する方法を紹介します。テストプロセスを自動化し、効率化を図るための実践的なアプローチを学びましょう。

前回の記事では、JSONエクストラクタを用いたAPIチェーンの実装方法を探りました。興味のある方は、こちらのリンクから記事をチェックしてください。

Postmanの入門から精通へ:JSONエクストラクタでのAPIチェーンの実装
この記事では、PostmanのJSONエクストラクターの実用的な使用方法を探ります。テストプロセスを自動化し、手動でのデータ処理を減らすためのアプローチを紹介します。

今回の記事では、PostmanでのAPIテストにおけるもう一つの重要なテクニック—正規表現エクストラクタを利用したAPIチェーンについて解説します。

Postman.png

正規表現エクストラクタを使ったAPIチェーンの実装

それでは、正規表現エクストラクタを使ってどのようにAPIチェーンを実現できるでしょうか?以下にステップバイステップでご紹介します。

ステップ 1: ポストレスポンススクリプトセクションにアクセス

最初に、APIリクエストのポストレスポンスセクションに移動します。ここでは、抽出プロセスをスクリプト化します。

まずは次のように入力します:

responseBody.match()

match関数はレスポンスデータの本文に対して正規表現をマッチさせるために使用します。

match.jpg

ステップ 2: 正規表現パターンを作成

次に、match関数内で正規表現を定義します:

responseBody.match(new RegExp())
RegExp.jpg

有効な正規表現パターンを書くために、まずPostmanで返されるデータの生データフォーマットを確認します。

raw.jpg

抽出したい具体的な部分を特定しましょう。例えば、usernameをターゲットとするとします。これをシングルクォートで囲み、正規表現に挿入します:

responseBody.match(new RegExp('"username":"echoapi"'))
regex.jpg

次に、固定値をキャプチャグループ(.*?)に置き換え、動的な抽出を可能にします:

responseBody.match(new RegExp('"username":"(.*?)"'))

ステップ 3: 抽出した値をキャプチャして保存

一致した結果をresultという変数に代入します:

var result = responseBody.match(new RegExp('"username":"(.*?)"'));
result.jpg

resultを出力して、抽出されたデータの構造を確認します:

console.log(result);
console.jpg

resultには、全マッチを持つresult[0]と、必要な抽出値を持つresult[1]が含まれます。正しく値を取得できているか確認するために、result[1]を出力します:

console.log(result[1]);
result[1].jpg

ステップ 4: 値をグローバル変数として設定

確認できたら、usernameをグローバル変数として設定します:

pm.globals.set("username", result[1]);

これにより、Postmanテストの他の部分でユーザー名を使用できるようになります。

Global Variable.jpg

ステップ 5: 他のAPIリクエストでグローバル変数を使用

次に、「get user info」APIリクエストに移動します。ここで、グローバル変数の構文{{username}}を使用して、usernameを参照できます。このリクエストを送信すると、Postmanは前のステップで抽出した値を使用し、2つのAPI呼び出しを効果的につなぎます。

API Request.jpg

結論

Postmanで正規表現エクストラクタを使用することにより、APIテストの自動化能力を高めるだけでなく、リクエスト間の手動データ処理を省くことで時間を節約できます。このテクニックをマスターすることで、開発者としてより包括的で正確なテストを実行し、API統合の堅牢性と効率性をさらに保証します。Postmanで正規表現の力を活用して、ワークフローを合理化し、開発ツールキットを強化しましょう。