how when use postman pre request
このチュートリアルでは、簡単な例を使用して、PostmanPre-requestスクリプトとPostRequestスクリプトまたはテストをいつどのように使用するかを説明します。
キューは抽象的です
単体テストの世界と同様に、事前要求スクリプトは、テストが実行される前に行われるセットアップに他なりません。同様に、Postmanでは、特定の方法でリクエストを変更する場合、pre-requestスクリプトは、リクエストの実行が開始される前に保証するロジックまたはコードを配置する場所です。
=> ここで簡単な郵便配達員トレーニングシリーズに気をつけてください。
学習内容:
Postmanリクエストフロー
まず、Postmanがリクエスト実行のコンテキストで事前スクリプトとテストスクリプトの実行を有効または許可する方法を理解してみましょう。 Postmanには、リクエストの実行の前後にスクリプト機能を追加できるNodeJSベースの強力なランタイムがあります。
スクリプトは、Postmanサンドボックスが理解して必要に応じて実行するJavascriptコードに他なりません。
ポストマンリクエストフローを理解するには、下の図を参照してください。
これがビデオチュートリアルです:
事前リクエストスクリプトは、Postmanでリクエストを実行するためのエントリポイントです。事前リクエストスクリプトの一部として追加されたスクリプト/ロジックが最初に実行され、その後実際のリクエストが実行され、応答が受信されると、テストまたはポストリクエストスクリプトが実行されます。
事前リクエストスクリプト
事前リクエストスクリプトは、リクエストの実行が開始される前に実行されることが保証されているロジックまたはコードの一部です。これにより、動的な動作を追加して実行を要求できます。
ここで重要なのは、事前リクエストスクリプトはコレクションレベルでも適用できるということです。つまり、事前リクエストスクリプトは、そのコレクションの一部であるすべてのリクエストに適用されます。
次の図を参照して、コレクションレベルの事前リクエストスクリプトとテストが存在する場合のリクエストフローを確認してください。
プレリクエストスクリプトをいつ使用するか?
事前リクエストスクリプトは、通常、リクエストを実行する前に前処理が必要な場合に役立ちます。
#1)例えば、 リクエストでサードパーティサーバーから取得する必要のあるセキュリティトークンが必要であり、この値はリクエストの実行ごとに変化するため、環境/グローバル変数でも永続化できなかったとします。
事前リクエストスクリプトは、このようなロジックを実行し、リクエストの実行で同じものを使用するのに最適な場所です。
この場合、事前リクエストスクリプトを使用する方法の例を見てみましょう。説明のために同じGETAPIエンドポイントを使用します https://reqres.in/api/users/{(randomVal}}
ここで、{{randomVal}}は、事前リクエストスクリプトで計算される1〜10のランダムな整数です。
スクリプトフローは次のとおりです。
- 事前リクエストスクリプトタブにロジックを追加します。 1 t010の間の乱数を生成します。
var random = Math.floor(Math.random() * 10); pm.variables.set('randomVal',random)
- 生成された乱数を環境またはローカル変数に格納します。上記のコードスニペットでは、1〜10のランダムな値を生成し、「randomVal」という名前のローカル変数に格納していることがわかります。
- リクエスト本文の一部として環境変数を使用します。
- リクエストを実行します。
- 結果を検証します。リクエストを複数回ヒットしてみて、確率変数のプリスクリプトを通じて生成されたuserIdのさまざまな値に対してリクエストがヒットするのを確認できます。
#二) 事前リクエストスクリプトは、特定のヘッダー関連の操作が必要な場合にも役立ちます。 例えば、 ランダムに生成する必要があり、base64エンコーディングや一般的な処理などの他の変換が必要なセッションIDを期待するリクエストヘッダー。
コレクションでのプレリクエストおよびポストリクエストスクリプトの使用
上で説明したように、事前要求スクリプトはコレクションレベルでも適用できます。これらのスクリプトは、コレクションで使用可能なすべてのリクエストに適用されます。事前リクエストスクリプトと同様に、テストまたは事後リクエストスクリプトもコレクションに適用できます。
コレクションレベルの事前リクエストスクリプトとテストの図を見て、コレクション内の各リクエストに対してスクリプトが実行されることを確認しましょう。
回帰テストを実行する必要がある場合
次のテストエンドポイントを持つ2つのリクエストでPostmanコレクションを使用します。
- 取得する https://reqres.in/api/users/1
- 役職 https://reqres.in/api/register リクエストの本文はJSONで、2つのフィールド(emailIdとpassword)があります。
これらのリクエストに対して、次のコレクションレベルのスクリプトを追加します。
- 事前リクエスト: 「Content-Type」という名前の新しいヘッダーを追加し、ヘッダーの値を「application / json」に設定します。
- テスト: テストまたはリクエスト後の検証として、返された応答がHTTPステータスコード200であるかどうかを確認します。
以下の手順に従ってください
#1) 上記のリクエストGETおよびPOSTを使用して新しいPostmanコレクションを作成します。
#二) 右クリック コレクション->編集を選択 コレクションレベルで事前リクエストスクリプトとテストを追加します。
に) 事前リクエストスクリプトの場合、コレクション編集ウィンドウで(事前リクエストスクリプト)タブを選択し、以下のスクリプトを追加します(このスクリプトは、コレクション内のすべてのリクエストに対して、値application / JSONを含む「Content-Type」という名前のヘッダーを追加します) 。
pm.request.headers.add({ key: 'Content-Type', value: 'application/json' });
b) テストまたはポストリクエストスクリプトを追加するには、「テスト」タブに以下のスクリプトを追加します。 (このスクリプトは、コレクション内に存在するすべての要求に対してHTTPステータス200の応答を検証するためのテストを追加します)。
pm.test('Status code is 200', function () { pm.response.to.have.status(200); });
c) スクリプトが追加されたら、「更新」をクリックして、行った変更を保存します。
#3) それでは、コレクション内でリクエストを実行して、コレクションレベルで指定された事前リクエストスクリプトとテストが適切に設定されているかどうかを確認してみましょう。
#4) 最初のGETリクエストを開き、をクリックして実行します。 「送信」 ボタン。リクエストヘッダーを表示するには、Postmanコンソールを使用できます。このコンソールには、Postmanアプリケーションを通過するすべてのリクエストの完全なリクエスト/レスポンスの詳細が表示されます。
Postmanコンソールについては後で詳しく説明しますが、このチュートリアルでは、Postmanコンソールを使用してリクエストヘッダーを検証します。
コンソールを開くには、Postmanアプリケーションの左下にあるコンソールアイコンをクリックするか、(ウィンドウ)メニューからコンソールオプションを選択します(Windows OSとPostmanアプリケーションで同様のオプションを使用できることに注意してください)。
#5) リクエスト後のスクリプトまたはテストを検証するには、実行されたリクエストの(テスト)タブを検証するだけで、コレクションレベルで追加されたステータスコードが200であることを検証するためのテストが表示されます。
私たちが達成したコレクションレベルのスクリプトで、
- コレクションレベルで事前リクエストスクリプトとテストを追加すると、メンテナンスが簡単になります。 例、 すべてのリクエストに共通のヘッダーを追加する、サードパーティを介してリクエストのセッショントークンを生成するなどが含まれます。
- 応答コードの検証などの一般的なスクリプト/テストは、繰り返しを避けるためにコレクションレベルに配置できます。
結論
このチュートリアルでは、リクエスト前のスクリプトとテスト、またはリクエスト後のスクリプトについて詳しく説明しました。また、コレクションレベルでこれらのスクリプトを使用して繰り返しを回避し、コレクションレベル自体に共通のスクリプトを配置する例についても説明しました。
事前リクエストスクリプトとテストはどちらもPostmanの非常に強力で重要な機能であり、特にRESTベースのAPIエンドポイントのエンドツーエンド統合テストを作成する上で多くの価値を追加します。
=> Postmanを最初から学ぶには、こちらにアクセスしてください。
推奨読書
- POSTMANチュートリアル:POSTMANを使用したAPIテスト
- さまざまなAPI形式をテストするためにPostmanを使用する方法は?
- Postmanのアサーションによる応答検証の自動化
- JMeterでのFTPリクエストの操作
- JMeterのXpathExtractorポストプロセッサー
- リクエストとレスポンスのデータをファイルに保存するためのクイックSoapUIガイド– SoapUIチュートリアル#15
- JMeter(正規表現エクストラクタ)でのポストプロセッサの使用
- Postmanコレクション:コードサンプルのインポート、エクスポート、生成