Pour celles et ceux d’entre vous qui auraient lu la première partie de notre article sur Postman : vous ne l’attendiez plus, mais la deuxième partie est disponible ! (Et si vous souhaitez (re)lire la première partie, c’est ici).
Comme annoncé en fin de première partie, nous aborderons cette fois la rédaction des tests avant/après requête et les possibilités qu’offre Postman en terme d’automatisation et d’intégration (notamment avec des outils de déploiement en continu).
L’occasion pour vous de constater que Postman est un véritable couteau-suisse.
Rédaction de tests pré/post requête
Postman propose également un moyen simple de rédiger des tests pré ou post-requête. Ces tests, qui doivent être rédigés en JavaScript, seront exécutés soit en amont soit en aval de votre requête. Vous pouvez ainsi vérifier la réponse d’une API après l’avoir interrogée.
Les tests peuvent vérifier des critères tels que le code de statut HTTP, le format de la réponse, la présence d’un élément spécifique dans la réponse, etc.Le véritable avantage est l’utilisation du JavaScript, qui permet d’avoir des tests plus avancés et plus flexibles, en utilisant des fonctionnalités telles que les boucles, les conditions et les fonctions natives du langage.
Pour peu que vous soyez un minimum familier avec le JavaScript et la rédaction d’algorithme, vous avez la possibilité de tout tester.
Comme précisé plus haut, vous pouvez écrire ce que vous voulez dans votre section « Tests ». Vous pouvez créer des variables, manipuler les données à votre guise… Comme si vous écriviez du code JS.
La seule condition est de bien entourer les conditions de votre test avec le code suivant :
pm.test("{Libellé de votre test}", function () {
});
De cette manière, vous indiquez à Postman que votre test se trouve à l’intérieur. Nous ne rentrerons pas dans les détails ici, mais voici le lien de la documentation Postman sur l’écriture des tests : https://learning.postman.com/docs/writing-scripts/test-scripts/
Celle-ci est très bien documentée et vous permettra d’approfondir le sujet :
Petit plus : Les tests peuvent être écrits soit directement dans l’interface de Postman ou soit enregistrés dans un fichier .js externe et importé dans Postman.
Intégration de Postman avec des solutions de déploiement continu
Vous trouvez tout cela un peu léger ? Bon… Parce que Postman peut aussi s’intégrer à des solutions de déploiement en continu.
L’intégration avec les solutions de déploiement continu est un aspect important de la stratégie de tests automatisés. Cela permet d’automatiser les tests lors de chaque déploiement, garantissant ainsi la qualité du code à chaque étape du processus de développement.
Postman offre une intégration native avec plusieurs solutions telles que Jenkins et Travis CI.
Concrètement, cela signifie que les tests peuvent être exécutés automatiquement lors de chaque déploiement, sans nécessiter de configuration supplémentaire.
L’intégration peut être configurée en utilisant un plugin ou en ajoutant des commandes de scripts dans le fichier de configuration du pipeline de déploiement. Les tests peuvent également être déclenchés manuellement à partir de l’interface de la solution de déploiement continu.
Là encore, je vois renvoie à la documentation officielle de Postman pour l’intégration avec Jenkins et Travis CI, si vous souhaitez approfondir le sujet :
Intégration avec Travis CI : https://learning.postman.com/docs/running-collections/using-newman-cli/integration-with-travis/
Intégration avec Jenkins : https://learning.postman.com/docs/running-collections/using-newman-cli/integration-with-jenkins/
Si vous travaillez dans une entreprise et qu’une de ces solutions est déjà mise en place, Postman trouvera donc parfaitement sa place dans le process de déploiement.
Automatisation de tests via Newman
Vous n’êtes pas familier avec les solutions de déploiement en continue mais vous souhaitez quand même pouvoir exécuter toute une batterie de tests de manière automatisée ?
Vous voulez exécuter vos tests sur un environnement sans interface graphique ou vous voulez vous la péter en tapant des trucs sur une console en vert et noir comme dans les films ?
Là encore, une solution existe, et elle s’appelle Newman.
Newman est un outil en ligne de commande pour exécuter des collections de tests Postman de manière automatisée, pratique donc lorsque vous travaillez sur un environnement sans interface graphique, tels que des serveurs de build ou des environnements de tests.
Pour utiliser Newman, vous devez au préalable avoir installé Node.js et installé le package Newman sur votre environnement.
Et vous devez d’abord exporter votre collection de tests Postman en tant que fichier JSON.
Une fois que vous avez fait cela, vous pouvez exécuter la collection en utilisant la commande suivante dans votre terminal :
newman run mycollection.json
Vous pouvez également utiliser Newman pour exécuter des tests en utilisant un fichier d’environnement, en utilisant la commande suivante :
newman run mycollection.json -e myenvironment.json
Besoin d’un support pour visionner le résultat de votre exécution ? Demandez à Newman de vous générer un joli fichier HTML contenant le résumé de l’exécution de vos tests Postman :
npm i newman-reporter-html
Petit complément de coolitude, la communauté Postman/Newman a aussi créé quelques templates HTML, dont le template « htmlextra » que je ne saurais trop vous recommander.
Le template est interactif et vous permet soit de visualiser de manière synthétique, soit de parcourir les résultats de vos tests plus en détail. Un vrai bijou :
Le lien vers le Github : https://github.com/DannyDainton/newman-reporter-htmlextra
Un exemple du template à l’œuvre : Juste ici
La commande d’appel avec génération de fichier HTML est la suivante :
newman run <file_name> -r html
ou si vous avez installé htmlextra :
newman run <file_name> -r htmlextra
Et c’est aussi simple que ça. Il ne vous reste plus qu’à nommer et organiser vos rapports HTML Newman pour garder un solide historique de l’exécution de vos collections de tests.
Inconvénients de Postman et alternatives
Bien que Postman soit un outil puissant et populaire, il n’est évidemment pas parfait. Voici quelques inconvénients qu’on pourrait lui trouver :
Coût : Nous n’avons abordé Postman que sous l’angle du développeur solitaire. Cependant, lorsque l’on envisage l’outil en équipe et de manière collaborative, certaines fonctionnalités deviennent payantes.
Complexité : Postman peut être complexe à utiliser pour les nouveaux utilisateurs, en particulier pour les tests automatisés. Cela peut prendre du temps de comprendre les fonctionnalités et pour les utiliser de manière efficace.
Reporting limité : Bien que Postman propose des fonctionnalités de reporting, elles peuvent être limitées et ne pas suffire pour les grands projets. Les utilisateurs peuvent avoir besoin d’outils de reporting supplémentaires pour surveiller les tests et les résultats.
Il est également bon de noter qu’il existe plusieurs alternatives disponibles sur le marché. Parmi les plus populaires se trouvent :
Insomnia : Un outil open-source similaire à Postman, avec une interface conviviale pour tester les API. Site officiel : https://insomnia.rest/
Swagger UI : Principalement utilisé pour la documentation et la visualisation des API, en permettant aux développeurs de voir les différents endpoints, les paramètres d’entrée et les réponses des API. Site officiel : https://swagger.io/tools/swagger-ui/
SoapUI : SoapUI se concentre principalement sur les tests de protocoles SOAP, contrairement à Postman qui prend en charge un large éventail de protocoles de communication d’API. Site officiel : https://www.soapui.org/
Conclusion
En conclusion, Postman est un outil puissant pour tester et documenter les API.
Il offre une interface conviviale pour effectuer des requêtes HTTP, gérer les collections et environnements ainsi qu’écrire des tests en JavaScript et les exécuter. De plus, il peut être intégré nativement à des solutions de déploiement continu pour améliorer la fiabilité des processus de livraison.
Très complet, Postman sera donc un véritable couteau-suisse qui répondra à la majorité des besoins auxquels vous serez confronté en travaillant avec des API.
Cependant, il est important de noter qu’il peut être complexe à prendre en main pour les débutants et les coûts élevés peuvent refroidir les entreprises qui envisageraient de s’en servir comme solution collaborative.
Comme pour chaque logiciel, ce qui motivera votre choix sera vos préférences personnelles et le besoin que vous avez.
Mais soyons honnête, quoique vous aillez besoin de faire, Postman pourra très certainement s’en occuper.