Vos Tests API avec HTTPYAC
Pourquoi HttpYac ?
HttpYac est une extension de Visual Code qui permet de créer, d’exécuter et tester des requêtes.
A l’image de Postman, il offre la possibilité de faire des assertions sur le code retour ou le contenu de la réponse. A l’inverse de Postman, il est totalement gratuit.
Il peut être à l’usage du développeur pour tester ses appels APIs et/ou à l’usage d’un testeur automaticien pour faire des tests bout en bout ou End-2-End.
Installation HttpYac sur VS Code
L’installation se fait via Visual Studio Code > Extensions
puis rechercher HttpYac
et installer.
Mise en situation
On se basera sur les API Open source du projet SpaceX API. La Documentation des requêtes est consultable ici
Requête « Get »
Comment faire un Get. Notre cible sera de faire un Get de la requête suivante Get https://api.spacexdata.com/v4/launches
Créer un fichier de test ayant pour extension .http
Dans ce fichier nous faisons un copier-coller de la requête que nous souhaitons tester. Une fois fait, on a un bouton "send"
qui s’affiche au dessus de la requête et en cliquant, elle exécute notre requête en ouvrant un onglet à droit de notre fichier. Dans cet onglet, on retrouve quelques informations comme le code retour, le contenu de la réponse.
Par défaut, les requêtes sans méthode, sont interprétées comme des GET
Nous venons d’exécuter notre première requête API avec HttpYac.
Maintenant vous me direz, comment faire une requête Post et tester le code retour par exemple ?
Requête « Post » : vérification du code retour + contenu
Dans le même principe que la requête GET, nous allons copier la requête POST cette fois-ci en indiquant la méthode POST.
La fenêtre de gauche avec notre fichier de test et à l’exécution, la fenêtre de droite avec le contenu de la réponse, le nombre de test en échecs succès et le détail plus bas du test en échec.
Comment faire pour exécuter la même requête sur d’autres environnements ?
Gestion des environnements
Les fichiers d’environnement permettent de décorréler les tests de l’environnement dans lequel ils vont être exécutés. Un test d’API reste le même peu importe l’environnement sur lequel il est exécuté. La seule différence porte sur l’url de la plateforme et éventuellement les données de tests.
Dans le projet, ils sont identifiables par leur extension « .env ». Nous en avons défini 2 : dev.env et prod.ev
Dans ces 2 fichiers, définissons un nom de serveur hostUrl pointant respectivement sur l’environnement de développement et de Production. Le switch d’environnement se fait comme indiqué sur l’image ci-dessous.
Tests End 2 End ou Bout en bout
L’objectif des tests End 2 End est d’exécuter une suite de requête souvent dépendantes des unes des autres.
Dans notre exemple, nous allons exécuter une nouvelle requête dont les paramètres sont les données contenues dans la réponse de la requête POST.
Pour cela, nous avons besoin d’installer l’interface de ligne de commande de HttpYac
L’installation terminée, nous allons exécuter notre fichier de test en spécifiant l’environnement et les tests que nous souhaitons lancer.
Avant cela, nous allons structurer nos tests. HttpYac permet de gérer plusieurs requêtes dans le même fichier. Ils doivent être séparés par ###
.
Il est possible de nommer les requêtes en utilisant # @name PostLaunchesQuery.
Admettons que nous ayant une première requête que nous nommons @name PostLaunchesQuery. Si à présent pour les besoins d’une seconde requête @name GetspecificCore on a besoin des données de notre première requête, il est possible d’utiliser dans la construction de notre requête @ref GetspecificCore
Pour consulter les différentes options d’exécution vous pouvez faire : httpyac --help
Intégration dans un Pipeline
Pour en savoir plus
https://medium.com/@vosarat1995/best-postman-alternative-5890e3e9ddc7