Les APIs sont partout.
Les entreprises digitales sont de plus en plus dépendantes des APIs pour leur expérience client et leurs opérations.
La livraison des APIs est donc un domaine critique à sécuriser.
Mais il y a tellement d’outils à considérer que nous pouvons nous perdre : est-ce que Postman est suffisant ? Qu’en est-il du framework de test d’intégration ? etc.
Cet article partage les étapes pour sélectionner les outils permettant le test continu d’APIs.
Suivez la QE Unit pour plus de contenu exclusif de Quality Engineering.
Avis de non-responsabilité : ¹Cet article ne se concentre pas sur les produits, ni ne vise à être totalement exhaustif ni à les comparer ; l’accent est mis sur le processus de décision. ²Je contribue au produit open-source Cerberus Testing listé avec les autres. ³Si vous pensez qu’il manque une solution importante, commentez ce post ou contactez-moi ici.
Identifiez vos besoins en tests continus d’APIs
Commencez par définir ce que vous souhaitez en vous concentrant sur vos besoins, indépendamment des solutions possibles.
Identifiez la partie des tests d’API continus qui vous intéresse le plus :
- Valide la conception de l’API avec des cas d’utilisation, un dictionnaire de données et des modèles ;
- Vérifications rapides des stubs d’APIs et des contrats lors du codage ;
- Tests en amont d’APIs dans des environnements hors production ;
- Tests d’intégration d’APIs dans des systèmes distribués et déployés ;
- Vérifications systématiques après un déploiement dans un environnement ;
- Assurer des niveaux spécifiques de sécurité, de performance, de fiabilité ;
- Mesurer les performances en production, dans différentes configurations.
Vous pouvez les vouloir tous, mais classez vos besoins dans une liste de priorités.
Vous commencerez à voir des modèles pour répondre à ces questions :
- Recherchez-vous plutôt des tests unitaires, d’intégration, fonctionnels ?
- Le focus est-il sur les exigences fonctionnelles ou non fonctionnelles ?
- Qui seront les principaux utilisateurs, l’ensemble de l’équipe ou des rôles spécifiques ?
- Vos besoins sont-ils plus en amont, au milieu ou en fin de la chaîne logicielle?
Ensuite, vous pouvez commencer à identifier vos critères.
Clarifiez les critères importants de vos tests d’APIs
Nous pouvons imaginer des matrices de décision complexes lorsque nous parlons de critères – et déjà faire un tableau de comparaison si vous êtes analytique comme moi.
Nous n’avons généralement pas besoin de ce niveau de complexité.
Clarifiez ces points importants pour en faire rapidement une short-list :
- Quels critères peuvent vous faire rejeter directement une solution ?
- Quelles sont les 3 exigences incontournables que vous recherchez ?
- Quels cas d’utilisation et quelle valeur dois-je créer par rapport à aujourd’hui ?
Vos réponses fourniront déjà un bon résumé de ce que vous recherchez.
Vous pouvez ensuite vérifier une liste systématique des exigences communes des APIs à des fins de vérification :
- Facilité d’utilisation, éventuellement low-code et sans script pour la collaboration ;
- Prend en charge la conception des tests, les modules et la réutilisation ;
- Soutenir la définition de diverses applications et environnements ;
- Facilité des stubs d’API, de la définition et de la définition des contrats ;
- Bibliothèque intégrée pour les vérifications telles que les assertions, la sécurité, les codes d’erreur ;
- Intégrations externes et API publiques ;
- Fonctionnalités de collaboration de préférence via une interface SaaS/web ;
- Maturité, support, intégration et documentation ;
- Exigences en matière de sécurité, d’évolutivité et de performances.
Le type de solutions requises commencera à émerger.
Décidez de la typologie des solutions de test d’APIs
Différents problèmes ont différentes solutions. Séparez les préoccupations vous permet de voir plus clairement les options dont vous disposez.
Il existe 3 types de solutions pertinentes à distinguer :
- Produit d’API focalisé : conçus pour prendre en charge l’automatisation des tests d’API avec des capacités de surveillance. Ils ne sont généralement pas fournis avec d’autres types de tests Web/mobiles, par exemple, leur focus étant les APIs. Plus comparable à Postman. Ils incluent généralement la découverte et la documentation des APIs.
- Plateforme d’automatisation des tests : fournissent un ensemble complet de fonctionnalités d’automatisation des tests pour le Web, le mobile, les APIs, desktops et bases de données avec un large éventail de fonctionnalités. Les APIs sont un ensemble de tests possibles, elles peuvent donc être moins approfondies en termes de facilité d’utilisation, de fonctionnalités d’APIs.
- Solution de surveillance complète : elles sont axées sur la surveillance des composants informatiques, y compris les APIs, mais moins sur l’automatisation des tests sur la chaîne de développement. Ils ne fournissent pas nécessairement des fonctionnalités CI/CD mais peuvent par exemple exécuter des tests d’APIs dans le monde entier en fournissant d’autres types de métriques.
Chacun d’entre eux ont des forces et des faiblesses en fonction de vos besoins.
Vous pouvez décider des types de solutions en fonction de vos exigences et de vos critères :
- Choisissez un produit d’API ciblé si vos besoins sont limités à l’API uniquement tout au long de la chaîne de développement logiciel, en acceptant les compromis tels que l’impossibilité de combiner des actions avec le Web ou mobile.
- Utilisez une plateforme d’automatisation des tests si vous souhaitez capitaliser sur une pratique d’automatisation des tests de bout en bout pour le Web, le mobile, l’API, etc., généralement avec plus d’intégrations et de fonctionnalités, en acceptant que vous manquiez peut-être de fonctionnalités avancées d’APIs.
- Optez pour une solution de monitoring d’API si votre préoccupation est axée sur la performance, le test et la mesure dynamiques de la sécurité dans le monde entier; d’autres produits ne sont pas faits pour cela et ne sont pas leur objectif.
Ce qui est important, c’est de prendre la meilleure décision par contexte.
Composer avec un ou plusieurs produits API Testing
On ne peut pas être bon partout. C’est la même chose pour les produits technologiques; vous devez identifier le problème central qu’ils résolvent.
Juger les solutions sur les 3 critères de choix du Quality Engineering:
- Quality
- La solution répond-elle à vos principales exigences fonctionnelles et non fonctionnelles ?
- Allez-vous créer plus de valeur pour votre équipe en l’utilisant ?
- Speed
- Pouvez-vous utiliser et maintenir la solution avec un minimum d’effort ?
- Allez-vous accélérer la livraison de logiciels à valeur ajoutée pour votre équipe ?
- Complexity
- Êtes-vous capable de déployer la solution facilement et avec des interfaces claires ?
- Tous vos utilisateurs donneront-ils au produit une note supérieure à 8 sur une échelle de 0 à 10 ?
Une fois que vous avez clarifié cela, réalisez un Proof of Value.
Vous pouvez conclure que vous avez besoin de plus d’une solution. Dans ce cas, la capacité d’intégration devient importante pour maintenir des cycles rapides de mise en œuvre d’APIs.
Si vous commencez à avoir divers référentiels d’API non synchronisés entre eux, vous finirez par perdre du temps à répliquer les données, ce qui entraînera des problèmes manuels et du rework inutile.
Enfin, sélectionnez les outils pour le Quality Engineering
Voici une liste de produits connus que vous pouvez considérer par catégorie. Sans être complètement exhaustif, en voici les principales options.
Produit d’API ciblés
RapidAPI : test de supervision d’’APIs, planificateur intégré, CI/CD, vous pouvez planifier et exécuter des tests à intervalles réguliers à partir de différents endroits dans le monde. Cela vous permet de gérer les différences pour les utilisateurs en fonction de l’emplacement et de la taille de la demande, des analyses détaillées.
API Fortress : cette plateforme se concentre sur le test des API et des microservices. Il fournit des analyses, le téléchargement de spécifications d’intégration CI/CD.
Gravity : vous permet de découvrir vos parcours clients à partir de connecteurs de logs natifs tels que Dynatrace, Elastic Search, entre autres. Il est ensuite intégré à la gestion des tests pour conserver la vue bidirectionnelle.
APIMetrics, RunScope, Assertible, Rapidspike, Checkly.
Plateforme d’automatisation des tests
Katalon : Boîte à outils basée sur un IDE Eclipse fournissant désormais des reportings avec une plateforme web. Le planificateur se fait via une licence ou une intégration externe personnalisée et un déclencheur.
Cerberus Testing : Open-source entièrement disponible sur GitHub, pour API dans REST/SOAP/GraphQL et Kafka, construit en java, prend en charge les tests web/mobile/api/desktop/base de données, avec CI/CD, planification, tests continus.
TestSigma: Une plate-forme d’automatisation des tests vous permettant d’automatiser une variété de tests automatisés, y compris des API. L’interface est principalement web et facilite l’utilisation.
TestProject : Open-source by design disponible dans le Cloud, avec boîte à outils web/mobile/api disponible.
Robot Framework: Une boîte à outils complète largement connue sur le marché. C’est un logiciel puissant avec beaucoup de fonctionnalités. Les compromis sont la complexité à ouvrir à davantage d’équipes métiers, la collaboration et l’intégration dans des environnements cloud plus modernes.
Hoppscotch: Anciennement Postwoman, très populaire, près de 30k sur github axé sur la fourniture d’un écosystème de développement d’API open source.
Solutions axées sur le Monitoring
Uptrends : Traite le cas de la surveillance d’API faisant partie d’autres cas d’utilisation de surveillance, moins profonds que RapidAPI par exemple.
AlertSite : de Smartbear, basé sur le cloud, il est donc accessible dans votre navigateur. Vous pouvez créer des charges utiles, ajouter des assertions et exécuter des tests à la demande, avec des mécanismes de notifications.
Loggly : surveillance des API dans le monde entier avec des fonctionnalités standard. Le produit est initialement conçu pour surveiller les journaux.
Dotcom-Monitor : une plate-forme de test basée sur le cloud pour les sites Web et les services Web qui inclut des contrôles de disponibilité pour les API REST et SOAP.
Pinghut, API Science, Apps Dynamics, Bearer, New Relic, CloudWatch, ManageEngine, Datadog, Dynatrace, Site24x7 Website Monitoring (Zoho), Rigor.
Tests d’API continus pour le Quality at Speed
Le test de vos APIs fait partie d’un effort plus large visant à accélérer la livraison de logiciels à valeur ajoutée.
Votre objectif n’est donc pas de choisir le meilleur produit de test d’API, mais de sélectionner celui qui offre le plus de Quality at Speed avec un minimum de Complexity.
Vous aurez peut-être besoin de plusieurs solutions pour couvrir entièrement vos besoins. Je suis convaincu que la convergence des technologies crée les opportunités.
Les tests continus d’APIs nécessitent d’agir le long de la chaîne de valeur logicielle, en composant avec des solutions agissant sur chaque espace.
D’autres solutions comme Gravity apparaîtront. Celle-ci se concentre sur le regroupement des parcours des clients à partir des logs d’APIs pour s’intégrer aux solutions de gestion des tests et d’automatisation.
Ce dont vous avez besoin n’est pas un outil.
C’est du Quality Engineering pour le Quality at Speed.
Suivez la QE Unit pour plus de Quality Engineering.