OUTIL DE TEST: tester vos API avec Postman

Edit du 08 mars 2020: merci à Ali El Malhouf pour ses propositions d’amélioration.

Ma présentation de l’outil se base sur un usage que j’ai terminé en août dernier. Il est possible que des évolutions soient disponibles entre temps. N’hésitez pas à les partager en commentaires.

Postman en bref

Postman est une plateforme collaborative de développement des API.

Il permet:
– d’envoyer des requêtes REST, SOAP ou GraphQL pour solliciter vos API
– simuler des endpoints (mocking)
– Générer et publier la documentation de vos API
– Surveiller la performance de vos API
– Travailler de manière collaborative avec les espaces de travail
– Automatiser vos tests d’API

C’est ce dernier volet qui nous intéresse plus particulièrement.
Postman organise une suite de test dans ce qu’il appelle une collection.

Une collection est une suite de requêtes (REST, SOAP ou GraphQL) qui s’enchaînent en partageant un même contexte. Le contexte est partagé durant toute l’exécution. On y retrouve les cookies par exemple qui ont été déposés par une requête précédente mais aussi des variables créées à la volée. Cela est particulièrement pratique pour monter des sessions Web et tester des enchaînements de requêtes qui ont des dépendances.

Pour chaque requête, Postman propose d’exécuter des prérequis et un script de test. C’est dans ce dernier script qu’on va ajouter des vérifications sur la réponse obtenue (assertion): C’est la partie testing de l’outil.

Les deux schémas qui suivent sont issus de la documentation de postman et illustrent l’enchaînement entre prérequis, requête, réponse et script de test.

Avec l’héritage depuis la collection, des dossiers et notre requête finale

Ces prérequis et script de test sont en Javascript et le tout repose sur une base NodeJS pour l’exécution. Cela apporte une flexibilité pour partager des variables entre les requêtes d’une même collection.

Postman propose un client lourd et un client Web pour gérer ses collections et les exécuter. Il est aussi possible de les exécuter dans une intégration continue avec l’outil Newman. Cela est facilité par la proposition de récupérer ses collections avec un API et facilite donc l’intégration dans une CI.

Request Test Tab
source: https://learning.postman.com/docs/postman/scripts/test-scripts/

Points forts et axes d’amélioration

Ses points forts sont:
– faciliter à prendre en main avec des tutoriels qui vous guident pas à pas au démarrage
– faciliter pour construire les vérifications avec des snippets prêtes à l’emploi mais aussi la syntaxe ChaiJS BDD
– un système d’exécution dans le client lourd qui fourni un bon niveau de log pour identifier une assertion qui échoue ou un problème dans le script de test.
– une gestion de la configuration avec plusieurs niveaux pour mieux gérer les variables.
– une API pour récupérer directement les collections et faciliter l’intégration continue.
– exploitation des jeux données par import csv ou json facilitant la mise en oeuvre d’une combinatoire d’exécution

Dans les versions futures, j’espère qu’ils vont améliorer les éléments suivants:
– Le partage de requêtes entre collections qui est un vrai frein lorsqu’on veut faire du test de bout-en-bout avec uniquement les API.
– la gestion des cookies
– Une intégration native à des outils de gestion de configuration comme gitlab.

– un reporting natif. Il est cependant possible de passer par l’outil tiers htmlextrareport pour obtenir des rapports plus complet.

Conclusion

Postman est un bon outil pour initier rapidement des vérifications de vos API. Dans un contexte full développement d’une API, il doit être très puissant. Si on se limite à la partie automatisée pour faire du test de bout-en-bout des API, on va vite arriver à des limites de maintenabilité, de stockage et partage de collections et in fine d’exécution en contexte intégration continue.

Pour en savoir plus, je vous invite à aller directement sur le site de Postman https://www.postman.com/ (en anglais) mais aussi de découvrir le cours d’Amber Race sur l’université du test automatisé: https://testautomationu.applitools.com/exploring-service-apis-through-test-automation/ (en anglais).

Un article d’Ali très intéressant pour compléter la présentation de cet outil (en anglais): https://medium.com/younited-tech-blog/generate-automated-test-reports-using-postman-b9c8cd53b955

4 Responses

  1. Très bon article, résumant bien Postman ! 🙂

    Niveau points forts, j’aurais ajouté :
    – Possibilité de partager les collections sur le workspace de l’équipe.
    – Communauté active (pour avoir déjà posé quelques questions, on me répond toujours)
    – De très nombreuses nouvelles fonctionnalités au fur et à mesure des versions publiées

    Points faibles, j’aurais ajouté :
    – Manque de filtres sur les collections/requêtes. Il n’existe qu’un seul filtre (permettant de filtrer sur le nom des requêtes + collections). Il serait bien de pouvoir avoir des filtres avancés (filtrer sur le contenu de la tab « Tests » ou « Pre-request script », sur la description, etc…). On peut vite s’y perdre quand on a beaucoup de collections sur le workspace local.
    – La documentation n’est pas vraiment complète et détaillée, lorsqu’on s’attaque à des points techniques au niveau de l’outil.
    – J’aimerais bien qu’on puisse intégrer beaucoup plus facilement la notion de loop dans une collection, mais là je chipote un petit peu 😉

    Je ne m’en fais pas pour les points négatifs, je pense que d’ici quelques mois et années, Postman deviendra bien + complet (bien qu’il rempli très bien son rôle aujourd’hui).

    Cordialement

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Qualité

[Programmez] Les testeurs ne sont pas « l’Assurance Qualité » !

Le testeur est une assurance pour la qualité ? Le terme d’ingénieur « QA » pour « Quality Assurance » – traduit Assurance Qualité en français – est de plus en plus fréquent pour nommer le métier de « testeur logiciel ». Cette démocratisation de ce terme tend à indiquer que le testeur est, de par sa

Lire la suite »
Image représentant le test et de nombreux éléments liés
sondage

Sondage 2020: vos débuts dans le test

Comme chaque année, la taverne vous propose de répondre à un sondage. Cette année le sondage est le même que celui réalisé en 2017 sur vos débuts dans le test et l’image que vous avez du test. Refaire ce sondage permettra de « le mettre à jour » mais aussi, et surtout,

Lire la suite »
Image représentant le test et de nombreux éléments liés
Avenir

Sondage: Quel futur pour le test ? – 2024

Sondage terminé. Article présentant les résultats prévu pour le 16 septembre Il y a 3 ans je proposais un sondage dans lequel je vous demandais, quels étaient, selon vous les 3 axes principaux de développement du test sur les 10 prochains années. Je vous propose cette année de nouveau ce

Lire la suite »