Home Outils Présentation de Postman, outil multifonction pour API Web

Présentation de Postman, outil multifonction pour API Web

  Sylvain, Consultant MOA 10 min 18 octobre 2017

Parmi les nombreuses solutions pour interroger ou tester webservices et API, Postman propose de nombreuses fonctionnalités, une prise en main rapide et une interface graphique agréable.

Postman existe sous la forme d’une App (Windows/MacOS/Linux) et d’une Chrome App. Cependant les Chrome Apps vivant leurs derniers jours, il est recommandé d’utiliser la version desktop.

Voici un rapide aperçu des possibilités de la version App gratuite.

Prise en main

Postman permet de construire et d’exécuter des requêtes HTTP, de les stocker dans un historique afin de pouvoir les rejouer, mais surtout de les organiser en Collections. Cette classification permet notamment de regrouper des requêtes de façon « fonctionnelle » (par exemple enchaînement d’ajout d’item au panier, ou bien un processus d’identification).

Postman assure également la gestion des Environnements, qui permet de contextualiser des variables et d’exécuter des requêtes ou des séries de requêtes dans différents configurations (typiquement : dev, recette, prod).

 

Send Request

Pour s’appuyer sur un exemple concret nous utiliserons l’API libre RandomUser : chaque GET vers l’URL https://randomuser.me/api retourne, comme son nom le laisse supposer, une fiche utilisateur au format JSON.

Après avoir défini un environnement « Test », une variable d’environnement « domainname » de valeur « randomuser.me », on peut envoyer notre requête GET paramétrée ici pour nous retourner un homme de nationalité américaine : voici donc la fiche de Johnny Gilbert.

L’outil donne la possibilité de modifier l’entête de la requête, de spécifier le type d’identification (Basic, Digest, OAuth,…) et d’exécuter des scripts JavaScript avant chaque requête.

L’ensemble des verbes HTTP est également configurable.

 

Test request

La mise en place d’une série de tests pour valider le résultat de requêtes se fait de façon similaire.

Par exemple vérifions les spécifications suivantes :

  • Un seul user doit être retourné
  • Il doit s’agir d’un homme
  • La nationalité doit être US

L’onglet « Test Results » de la réponse à la précédente requête permet de vérifier que ce brave Johnny répond bien au cahier des charges.

 

Collection Runner

Le module Collection Runner permet d’exécuter des requêtes regroupées sous forme de collection.

Une série de tests basés sur un jeu de données peut également être menée par le biais de ce module.

Nous allons tester les appels suivants, en conservant les tests homme-US définis précédemment.

Pour ce faire on définit une nouvelle requête paramétrée, sélectionne le fichier de données et exécute le Runner sur ces éléments.

Sans surprise, le résultat indique que seul le premier enregistrement valide la totalité des tests.

L’ensemble des paramètres des requêtes et de leurs réponses sont disponibles pour rapidement identifier d’où proviennent les erreurs.

 

Monitor

Autre module disponible dans Postman, Monitor permet de suivre le comportement d’une collection à travers des appels successifs : une fois définis la collection, la fréquence, l’environnement, éventuellement le timeout accepté et le délai d’attente entre chaque requête, les résultats sont consultables dans un navigateur.

Pour chaque requête de la collection sont notifiés les résultats des tests, ainsi que les temps de réponse.

 

Mock server

Autre fonctionnalité de Postman, la possibilité de simuler ce qui sera le fonctionnement final de l’API.

La réponse à une requête peut être sauvegardée (et éventuellement modifiée) sous forme d’Example, le Mock server se chargera de simuler l’appel aux requêtes en retournant les réponses statiques pré définies.

Utile pour permettre aux équipes front de commencer leurs développements sans attendre que les développements back soient terminés.

Voici un exemple de notre RandomUser homme-US, en la personne de Nathaniel Brewer.

Le Mock Server est créé en indiquant la collection et l’environnement : 3 clics plus tard on dispose d’une URL imitant le comportement de l’API.

Chaque requête vers cette URL retournera le résultat utilisé pour générer le server (on retrouve bien le Mr Brewer apparu ci-dessus).

 

API Documentation

Lors de l’enregistrement des collections et requêtes, il est possible d’inclure des commentaires de description. La fonctionnalité Documentation génère la documentation en ligne de l’API, méthodes, paramètres et exemples de codes multi langages à l’appui.

 

Intégration

Postman peut intervenir dans le processus d’intégration continue par le biais de sa version ligne de commande Newman et de Jenkins ou Docker.

 

Team Library

Les versions Pro et Enterprise de Postman donnent accès à des fonctionnalités de collaboration comme le partage d’environnements et de collections entre les collaborateurs d’un même projet, en incluant les rôles de chacun, la gestion des conflits, l’intégration aux outils collaboratifs (Git, Microsoft Teams, Slack,…).

 

Synthèse

Postman est un outil facile à prendre en main, sans pour autant être simpliste. Sans être révolutionnaire, les fonctionnalités de base de cette famille d’outils sont présentes, et leur mise en œuvre est intuitive.

La documentation est claire (https://www.getpostman.com/docs/), et les ressources sur le net ne manquent pas.

Certes il n’offre pas les mêmes possibilités que le mastodonte SoapUI, mais remporte haut la main les suffrages (en tout cas le mien 🙂 en matière d’accessibilité et d’expérience utilisateur.

A noter toutefois que le traitement de requêtes SOAP est un peu laborieux puisqu’il faut saisir le XML de l’enveloppe SOAP dans le corps de la requête (mode raw, format text/xml) avant de pouvoir exécuter la requête POST.

La plupart des APIs disponibles actuellement étant désormais REST cela ne devrait pas être un frein à son utilisation.

Enfin, les possibilités offertes par les versions payantes en termes de travail collaboratif semblent prometteuses.

Lire les articles similaires

Laisser un commentaire

Social Share Buttons and Icons powered by Ultimatelysocial