web-dev-qa-db-fra.com

Vérifier la valeur de l'en-tête de réponse dans les tests Postman

Je voudrais vérifier la valeur d'un en-tête de réponse concret ("Emplacement") en tant que résultats de test dans Postman. Dans la documentation du facteur, j'ai trouvé des exemples sur la façon de vérifier l'existence d'en-têtes avec

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

Mais ce que je recherche, c'est quelque chose comme

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

J'ai finalement trouvé la solution:

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

Voici une autre façon de récupérer l'en-tête de réponse spécifique dans la section Tests ...

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

Juste au cas où, si la ou les demandes suivantes ont besoin des informations spécifiques, comme la valeur d'en-tête, vous pouvez également les stocker/définir en tant que variable d'environnement comme ci-dessous, et les réutiliser davantage

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);
   }
});

L'avantage est que la valeur collectée dans la variable peut être manipulée.

Mais tout dépend de la situation. Comme, vous pourriez vouloir extraire et pré/post-traiter l'URL de redirection.

Par exemple,

Lors de l'exécution de la collection de tests, vous souhaitez collecter la valeur dans une variable et la modifier pour pointer vers le serveur simulé Host: port .

1
Irfan Makandar