Introduction

Postman est un excellent outil pour tester des API REST.

L’utilisation des environnements permet déjà d’apporter une certaine dynamicité en regroupant certaines variables propres un environnement justement : URL, login et mot de passe, etc. En utilisant les variables entre double accolade (ex : {{base_url}}), il est alors possible de réutiliser ces variables dans l’URL, dans le contenu de la requête ou autre.

Postman permet de faire des prétraitements en JavaScript. C’est ce que nous allons exploiter.

Les scripts de prérequêtes

Il est possible d’ajouter du JavaScript à 2 moments :

  • Avant d’envoyer la requête : le contenu du script est dans l’onglet "Pre-request Script"

  • Après avoir reçu la réponse : le contenu du script est dans l’onglet "Tests"

Il est à noter qu’on peut positionner des scripts à plusieurs niveaux :

  • Au niveau de la collection

  • Au niveau du répertoire

  • Au niveau de la requête

Un premier script

L’exemple ci-dessous permet de créer 2 variables : startTime et endTime.

var now = new Date().getTime();
console.log(now);(1)
var startTime = new Date(now + 60*1000);
var endTime = new Date(now + 5*60*1000);
console.log(startTime);


pm.environment.set('startTime', startTime.toISOString()); (2)
pm.environment.set('endTime', endTime.toISOString());
1 Il est possible de logguer, ce qui est très appréciable.
2 Les variables sont rendues disponibles grâce à cette commande.
La console développeur avec les logs est disponible dans le menu View  Show Postman Console

Définir une variable d’environnement dynamique

Comme évoqué, il est aussi possible d’exécuter un script après l’exécution d’une requête. C’est intéressant pour récupérer un token, une valeur générée, etc. Pour configurer un tel script, il faut aller dans la partie "Tests".

L’exemple ci-dessous permet de récupérer une variable access_token.

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("access_token", jsonData.access_token);

Utilisation des variables

L’exemple montre l’utilisation des variables dans le corps du message.

{
    "startTime": "{{startTime}}",
    "endTime": "{{endTime}}"
}

Conclusion

Il n’est pas rare que l’on veuille tester avec des valeurs aléatoires ou dépendantes du temps. L’utilisation de script permet de rendre plus dynamique les requêtes.