Assertible est un outil pratique pour tester et monitorer les services Web.
Il prend en charge l’automatisation des tests API à chaque étape, de l’intégration continue à la livraison et crée des assertions programmées.
Il empêche les bugs de passer en production en automatisant les tests manuels, en exécutant des assertions et en intégrant des alertes dans votre chaîne d’outils actuelle telle que Gitub et Slack
Il se décline en 4 versions :
- Personal qui est une version gratuite, mais avec des fonctionnalités limitées
- Standard,
- Startup
- Business (Qui sont des versions payantes dont le prix varie selon le package).
Comment tester une API avec Assertible ?
Une fois connecté, on crée un nouveau service :
On a la possibilité d'importer une url ou un fichier à partir de Postman
Ou Swagger
Dans ce tutoriel j'utilise une url swagger https://petstore.swagger.io/v2/swagger.json
Un aperçu du Web service et des tests qui seront créés s'affiche, dans notre cas on aura 20 tests et 14 endpoints. Pour chaque combinaison Endpoint/méthode de votre spécification, Assertible créera un test.
Enfin cliquez sur Créer un service et des tests, Assertible affichera la page de présentation du nouveau service Web.
On sélectionne l'environnement sur lequel on exécute et clique le bouton Run, tous les tests se lance sur l'environnement sélectionné.
Si on clique sur l'onglet Test on affiche le résultat de tous les tests exécutés.
Pour une meilleure gestion, il est possible de regrouper les tests par groupe et d'afficher uniquement les tests avec résultat échec.
Gestion des tests :
Si on clique sur un test on affiche le détail de la requête et l'historique des précédentes exécutions. Il est possible aussi d'éditer chaque test sélectionné : Configurer l'authentification, ajouter des variables, paramétrer le header ainsi que de modifier le body en cas de besoin…
À partir de l'onglet Test si on sélectionne un test avec un résultat KO n'obtient le code d'erreur ainsi qu'un message d'erreur dans notre cas : aucune data
Si on clique sur add request body
On a la main pour ajouter un body à la requête post afin d'insérer de la data dans notre requête.
Le body peut être inséré sous 3 formats : Raw, form-urlencoded et multipart/form-data
On insère un body en forma Raw avec le modèle ci-dessous
Copy To Clipboard
{ "id": 0, "petId": 0, "quantity": 0, "shipDate": "2021-07-08T13:30:28.791Z", "status": "placed", "complete": true }
On clique sur Save request body
On clique sur le bouton Run Test le test est exécuté et le nouveau résultat s'affiche
Dans le tableau de bord le test passe en vert
Monitoring et test post-déploiement
- Le monitoring :
Cette étape consiste à configurer l'automatisation pour garantir que votre Web service est testé en permanence.
Pour configurer le monitoring quotidien dans Assertible, accédez à l'onglet Monitoring et coché la case Daily schedule
Il est également possible de planifier des monitorings par heure, demi-heure, un quart d'heure ….
Il est possible de sélectionner les tests à monitorer.
Une fois validé Assertible ajoute le nouveau monitoring à la liste
Il suffit ainsi de configurer les alertes pour chaque monitoring à partir de l'onglet Setting.
Dans Hooks & Alert vous devriez avoir des options pour configurer Slack, Email ou Zapier
Puis sélectionner votre messagerie et insérer votre adresse mail
Il est également possible de planifier des notifications avec l'outil Slack pour les alertes d'échec de test et un déclencheur Zapier pour ouvrir de nouvelles issues sur GitHub lorsque des tests critiques échouent.
- Le test post-déploiement :
Idéalement, vos tests d'API sont exécutés à chaque fois que vous déployez une nouvelle version de votre API ; surtout si vous disposez d'une chaine CICD
Pour se faire accédez à l'onglet Déploiements et connecté Assertible a GitHub puis intégrez le script fourni dans votre pipeline de déploiement ou exécutez-le manuellement après le déploiement.
Assertible enregistre la version de déploiement dans vos résultats de test afin que vous puissiez suivre les régressions lorsque les tests échouent après le déploiement d'une version spécifique de votre API.