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