Testez efficacement vos API avec Postman grâce à ces astuces
Le concept d’API REST se base essentiellement sur l’architecture REST. Cette dernière utilise les requêtes HTTP pour transférer et accéder à des données. L’objectif majeur des API REST est de faciliter le développement et l’intégration d’applications complexes.
Plusieurs outils ont été créés pour permettre aux développeurs de facilement tester les API qu’ils développent, parmi lesquels, Postman.
Dans cet article nous allons voir quelques fonctionnalités de Postman qui vont non seulement vous permettre de simplifier vos tests mais aussi de développer des API en adéquation avec les bonnes normes et spécifications.
Plan
NB : tout au long de cet article nous utiliserons ce petit projet (Node.js et express) qui contient quelques API qui nous permettront d'illustrer chacune des fonctionnalités citées.
1. Organisation
Il existe plusieurs niveaux d'organisation en ce qui concerne Postman, notamment :
Le Workspace ou espace de travail
Il s'agit du premier niveau d'organisation sur Postman. Il permet d'organiser et de travailler sur les API avec d'autres membres de l’équipe. Dans le cas de notre exemple, nous allons juste utiliser un seul espace de travail pour des raisons de simplicité.
Collection
Une collection est un regroupement de plusieurs requêtes. Elle permet d'organiser ensemble les requêtes qui définissent la même logique métier. Dans notre exemple, nous avons juste une seule collection.
Dossier
Il s'agit d'un sous-élément d'une collection qui permet de séparer davantage les requêtes. Par exemple, dans notre collection, nous pouvons regrouper les requêtes liées à un module dans un dossier séparé. Ainsi nous aurons un dossier pour les requêtes des utilisateurs et un autre pour les admins.
L'organisation des API en hiérarchie comporte de nombreux avantages :
2. Environnements et variables
Quand on développe des API, on les teste sur plusieurs environnements (dev, test, etc.). Pour une seule requête, on peut effectuer le test sur divers environnements en changeant manuellement l'URL de base . Mais quand on travaille sur plusieurs API, ayant plusieurs collections et requêtes, cela devient très fastidieux. D'où l'importance d'utiliser les variables d'environnements de Postman.
Dans notre exemple, avant l’utilisation des variables d’environnements, la requête pour récupérer le token ressemblait à :
En créant nos premiers environnements (test et développement), illustré par la capture ci-dessous :
Maintenant nous pouvons organiser nos requêtes en utilisant les variables d'environnements afin de simplifier nos tests.
variables de collection
Sur Postman, en plus des variables d'environnements, nous avons les variables de collections. Ces dernières permettent de regrouper les valeurs répétitives sur les requêtes d'une collection en un seul endroit.
variables dynamiques
Nous avons également des variables dynamiques, qui permettent de générer des valeurs génériques (comme le nom, l'adresse, etc.). Pour plus de détails sur leurs utilisations référez-vous à la section sur les scripts.
3. Les scripts Postman
Postman dispose d'un environnement d'exécution basé sur Node.js qui permet d'ajouter des comportements dynamiques aux requêtes et aux collections.
Ces scripts nous permettent d'écrire des tests pour nos API, transmettre des données entre les requêtes, etc. Il existe deux types de scripts, les pre-request scripts, et les test scripts.
Recommandé par LinkedIn
Les test scripts
Écrits en javascript, les tests permettent de confirmer que les API fonctionnent comme prévu, que les intégrations entre les services fonctionnent de manière fiable.
On peut également utiliser les tests pour le débogage sur les réponses des requêtes. On peut ajouter les tests individuels pour chaque requête, ou des tests globaux pour le dossier d'une collection, ou à la collection elle-même.
Dans notre exemple, nous avons écrit des tests pour vérifier que chacune de nos requêtes renvoie une réponse avec un statut 200.
Également, comme chaque requête de notre collection nécessite une autorisation (Bearer). Nous allons écrire un test sur la requête qui récupère le token afin d'ajouter le token aux variables de collection.
Ainsi, nous n'aurons plus besoin d'ajouter le token manuellement à chaque entête de requête.
Tel que mentionné précédemment, il existe des variables dynamiques. Par exemple, nous pouvons utiliser la variable $randomProduct pour générer un nom de produit randomisé pour l'api post /products.
Les pre-request scripts
Les pre-request scripts sont utilisés pour exécuter certains codes avant l'exécution d'une requête. Comme pour les tests, on peut les ajouter individuellement pour chaque requête, ou d'une manière globale pour le dossier d'une collection, ou à la collection elle-même.
Exécution en série des requêtes
Comme mentionné précédemment, si nous avons des requêtes qui doivent s'exécuter séquentiellement (un dossier, ou la collection), au lieu de le faire à la main, on peut utiliser le collection runner de Postman.
Comme illustré sur l’image ci-dessous, on peut configurer plusieurs paramètres en fonction de ce que l’on souhaite tester.
Le résultat de l'exécution est semblable à celui de l'image ci-dessous. Nous avons les résultats de nos tests ainsi que le statut et le temps requis pour chaque requête.
4. Documentation des API
Les API visent à favoriser l'intégration entre les applications. Pour ce faire, chaque personne disposant d'une API doit être capable de savoir ce qu'elle fait et comment s'en servir sans avoir accès à son code source. D'où l'importance d'une documentation facile à comprendre.
Postman offre la possibilité de créer des documentations pour une requête, une API, ou bien une collection. Pour mieux comprendre son fonctionnement, créons les documentations des API de notre exemple.
Ci-dessous est l’exemple d’une documentation de la requête post /purchase de notre collection. Le principe est quasiment le même pour la rédaction de la documentation d'une collection ou celle d'un dossier.
Publication de documentations
Postman nous permet également d'exporter et de publier nos documentations pour qu'elles soient accessibles à tous.
La documentation complète de notre exemple avec l'ensemble des dossiers et des requêtes ressemble à ce que nous voyons sur la capture ci-dessous.
Une fois la documentation publiée, Postman met à notre disposition l’URL qui nous permet d’y accéder. On peut également exporter son code HTML si l'on décide de l’héberger sur un serveur dédié. La documentation finale mise en ligne ressemble à :
Vous pouvez retrouver la collection complète de notre exemple avec les API, la documentation ici.
Conclusion
Les API visent à simplifier l'intégration entre applications. D'où le besoin de faire des tests afin de fournir non seulement des API qui correspondent aux spécifications, mais aussi des API qui peuvent facilement être utilisées par d'autres applications.
Dans cet article nous avons vu quelques concepts de Postman qui permettent de tester efficacement nos API. Mais ceci n'est qu'une portion des fonctionnalités de Postman. Si vous souhaitez en savoir davantage sur ce sujet, je vous suggère conception et développement d'API avec Postman.
Si vous avez aimé cet article n'hésitez pas à le partager, vous pouvez également rejoindre mon réseau LinkedIn pour être notifié de mes prochains articles.