web-dev-qa-db-ja.com

Postmanテストで応答ヘッダーの値を確認する

Postmanのテスト結果として、具体的な応答ヘッダー(「場所」)の値を確認したいと思います。 Postmanのドキュメントで、ヘッダーの存在を確認する方法の例を見つけました

pm.test("Content-Type is present", function () {
   pm.response.to.have.header("Content-Type");
});

しかし、私が探しているのは次のようなものです

pm.test("Location value is correct", function () {
   CODE HERE THAT CHECKS "Location" HEADER EQUALS TO SOMETHING;
});
12
Lluís Suñol

私は最終的に解決策を見つけました:

pm.test("Redirect location is correct", function () {
   pm.response.to.have.header("Location");
   pm.response.to.be.header("Location", "http://example.com/expected-redirect-url");
});
33
Lluís Suñol

Testsセクションで特定の応答ヘッダーを取得する別の方法は次のとおりです...

loc = pm.response.headers.get("Location");

念のため、後続のリクエストにヘッダー値などの特定の情報が必要な場合は、以下のように環境変数として保存/設定し、さらに再利用することもできます

pm.environment.set("redirURL", loc);

var loc = null;
pm.test("Collect redirect location", function () {
   pm.response.to.have.header("Location");
   loc = pm.response.headers.get("Location");
   if (loc !== undefined) {
      pm.environment.set("redirURL", loc);
   }
});

利点は-変数に収集された値を操作できることです。

しかし、それはすべて状況に依存します。同様に、リダイレクトURLを抽出して前処理/後処理することもできます。

例えば、

テストコレクションの実行中に、変数の値を収集し、モックサーバーのHost:portを指すように値を変更します。

1
Irfan Makandar