Tutoriel sur les tests d'API : Qu'est-ce que l'automatisation des tests d'API ?

Qu'est-ce que le test API?

Test d'API est un type de test logiciel qui valide les interfaces de programmation d'applications (API). Le but des tests API est de vérifier la fonctionnalité, la fiabilité, les performances et la sécurité des interfaces de programmation. Dans les tests d'API, au lieu d'utiliser les entrées et sorties utilisateur standard (clavier), vous utilisez un logiciel pour envoyer des appels à l'API, obtenir une sortie et noter la réponse du système. Les tests API sont très différents des tests GUI et ne se concentrent pas sur l'apparence d'une application. Il se concentre principalement sur la couche logique métier de l’architecture logicielle.

Image de test d'API

Pour le fond, API (interface de programmation d'application) est une interface informatique qui permet la communication et l'échange de données entre deux systèmes logiciels distincts. Un système logiciel qui exécute une API comprend plusieurs fonctions/sous-programmes qu'un autre système logiciel peut exécuter. L'API définit les requêtes qui peuvent être effectuées, comment effectuer des requêtes, les formats de données qui peuvent être utilisés, etc., entre deux systèmes logiciels.

Mise en place de l'environnement d'automatisation des tests API

Automatisation des API Les tests nécessitent une application pouvant interagir via une API. Afin de tester une API, vous devrez

  1. Utiliser l'outil de test pour piloter l'API
  2. Écrivez votre propre code pour tester l'API

Quelques points à noter

  • Les tests d'API sont différents des autres types de tests de logiciels car l'interface graphique n'est pas disponible, et pourtant vous devez configurer un environnement initial qui appelle l'API avec un ensemble de paramètres requis, puis enfin examiner le résultat du test.
  • Par conséquent, la configuration d'un environnement de test pour les tests d'automatisation des API semble un peu complexe.
  • La base de données et le serveur doivent être configurés selon les exigences de l'application.
  • Une fois l'installation terminée, la fonction API doit être appelée pour vérifier si cette API fonctionne.

Types de sortie d'une API

Une sortie de l'API pourrait être

  1. Tout type de données
  2. Statut (disons réussite ou échec)
  3. Appelez une autre fonction API.

Examinons un exemple de chacun des types ci-dessus dans ce didacticiel de test d'API.

Tout type de données

Exemple : Il existe une fonction API qui doit ajouter deux nombres entiers.

Long add(int a, int b)

Les nombres doivent être donnés comme paramètres d'entrée. Le résultat doit être une somme de deux nombres entiers. Ce résultat doit être vérifié avec un résultat attendu.

L'appel doit être effectué tel que

add (1234, 5656)

Les exceptions doivent être traitées si le nombre dépasse la limite entière.

Statut (disons réussite ou échec)

Considérez la fonction API ci-dessous –

  1. Fermer à clé()
  2. Ouvrir()
  3. Supprimer ()

Ils renvoient n'importe quelle valeur telle que True (en cas de succès) ou false (en cas d'erreur) en sortie.

Un plus précis Cas de test serait, peut appeler les fonctions dans n'importe lequel des scripts et vérifier plus tard les modifications dans la base de données ou dans l'interface graphique de l'application.

Appel d'une autre API / Evénement

Appel d'une autre API / Evénement

Dans ce cas, nous appelons l’une des fonctions API qui à son tour appellera une autre fonction.

Par exemple – La première fonction API peut être utilisée pour supprimer un enregistrement spécifié dans la table et cette fonction, à son tour, appelle une autre fonction pour RAFRAÎCHIR la base de données.

Cas de test pour les tests d'API :

Les cas de test des tests d'API sont basés sur

  • Valeur de retour basée sur la condition d'entrée : il est relativement facile à tester, car les entrées peuvent être définies et les résultats peuvent être authentifiés
  • Ne renvoie rien : Lorsqu'il n'y a pas de valeur de retour, un comportement de l'API sur le système à vérifier
  • Déclenchez une autre API/événement/interruption : Si une sortie d'une API déclenche un événement ou une interruption, alors ces événements et ces écouteurs d'interruption doivent être suivis.
  • Mettre à jour la structure des données : La mise à jour de la structure des données aura un résultat ou un effet sur le système, et cela doit être authentifié
  • Modifier certaines ressources : Si l'appel API modifie certaines ressources, il doit être validé en accédant aux ressources respectives.

Approche de test API

Approche de test API est une stratégie prédéfinie ou une méthode que l'équipe d'assurance qualité appliquera afin d'effectuer les tests d'API une fois la version prête. Ce test n'inclut pas le code source. L'approche de test API permet de mieux comprendre les fonctionnalités, les techniques de test, les paramètres d'entrée et l'exécution des cas de test.

Les points suivants aident l'utilisateur à adopter une approche de test d'API :

Approche de test API

  1. Comprendre les fonctionnalités du programme API et définir clairement la portée du programme
  2. Appliquer des techniques de test telles que les classes d'équivalence, l'analyse des valeurs limites et la supposition d'erreurs et rédiger des cas de test pour l'API.
  3. Les paramètres d'entrée de l'API doivent être planifiés et définis de manière appropriée
  4. Exécuter les cas de test et comparer les résultats attendus et réels.

Différence entre les tests API et les tests unitaires

Tests unitaires Test d'API
Les développeurs l'exécutent Les testeurs l'exécutent
Une fonctionnalité distincte est testée La fonctionnalité de bout en bout est testée
Un développeur peut accéder au code source Les testeurs ne peuvent pas accéder au code source
Les tests d’interface utilisateur sont également impliqués Seules les fonctions API sont testées
Seules les fonctionnalités de base sont testées Tous les problèmes fonctionnels sont testés
Portée limitée Portée plus large
Généralement exécuté avant l'enregistrement Test exécuté après la création de la build

Comment tester l'API

Les tests d'automatisation des API doivent couvrir au moins les méthodes de test suivantes en dehors du processus SDLC habituel

  • Tests de découverte : Le groupe de test doit exécuter manuellement l'ensemble d'appels documentés dans l'API, par exemple pour vérifier qu'une ressource spécifique exposée par l'API peut être répertoriée, créée et supprimée, le cas échéant.
  • Tests d'utilisation: Ces tests vérifient si l'API est fonctionnelle et conviviale. Et l'API s'intègre-t-elle également bien à une autre plate-forme
  • Tests de sécurité : Ces tests incluent le type d'authentification requis et si les données sensibles sont cryptées via HTTP ou les deux.
  • Test automatisé: Les tests d'API doivent aboutir à la création d'un ensemble de scripts ou d'un outil pouvant être utilisé pour exécuter l'API régulièrement.
  • Documentation: L'équipe de test doit s'assurer que la documentation est adéquate et fournit suffisamment d'informations pour interagir avec l'API. La documentation doit faire partie du livrable final

Meilleures pratiques de test d'API :

  • Les cas de test API doivent être regroupés par catégorie de test
  • En plus de chaque test, vous devez inclure les déclarations des API appelées.
  • La sélection des paramètres doit être explicitement mentionnée dans le scénario de test lui-même
  • Hiérarchisez les appels de fonctions API afin qu'il soit facile pour les testeurs de tester
  • Chaque cas de test doit être aussi autonome et indépendant des dépendances que possible
  • Évitez le « chaînage de tests » dans votre développement
  • Des précautions particulières doivent être prises lors de la gestion des fonctions d’appel ponctuel telles que – Supprimer, Fermer la fenêtre, etc…
  • Le séquençage des appels doit être effectué et bien planifié
  • Pour garantir une couverture complète des tests, créez des cas de test d'API pour toutes les combinaisons d'entrée possibles de l'API.

Types de bugs détectés par les tests API

  • Ne parvient pas à gérer les conditions d'erreur avec élégance
  • Drapeaux inutilisés
  • Fonctionnalité manquante ou en double
  • Problèmes de fiabilité. Difficulté à se connecter et à obtenir une réponse de API.
  • Les problèmes de sécurité
  • Problèmes multithread
  • Les problèmes de performance. Le temps de réponse de l'API est très élevé.
  • Erreurs incorrectes/avertissement à un appelant
  • Gestion incorrecte des valeurs d'argument valides
  • Les données de réponse ne sont pas structurées correctement (JSON ou XML)

Comment automatiser les tests API

1) PrêtAPI

PrêtAPI est un outil leader pour les tests fonctionnels, de sécurité et de charge de RESTful, SOAP, GraphQL et d'autres services Web. Dans une plate-forme intuitive, vous disposerez de trois outils puissants : ReadyAPI Test, ReadyAPI Performance et ReadyAPI Virtualization. Avec ces outils, vous pouvez effectuer des tests fonctionnels, de sécurité et de performances/charge. Vous pouvez également simuler des API et des services Web avec notre outil de virtualisation robuste. De plus, vous pouvez facilement intégrer votre Pipeline CI / CD lors de chaque construction.

PrêtAPI

Caractéristiques principales

  • ReadyAPI peut être intégré dans n’importe quel environnement.
  • Il dispose d'une fonctionnalité Smart Assertion qui peut créer rapidement des assertions groupées sur des centaines de points de terminaison.
  • Support natif de Git, Docker, Jenkins, Azure, etc.
  • Prend en charge la ligne de commande pour les tests automatisés.
  • Prend en charge l'exécution parallèle de tests fonctionnels et de mise en file d'attente des tâches.
  • Promoréutilisation du code tes
  • Supprime les dépendances pendant les tests et le développement.

Visitez ReadyAPI >>

Essai gratuit de 14 jours (aucune carte de crédit requise)

Les didacticiels suivants fournissent un guide détaillé pour automatiser les tests d'API.

En outre, il existe d'autres outils pour tester les API. Les vérifier ici.

Défis des tests d'API

Les défis des tests d'API incluent :

  • Les principaux défis des tests d'API Web sont Combinaison de paramètres, sélection de paramètres et séquencement d'appels
  • Il n'y a pas d'interface graphique disponible pour tester l'application, ce qui fait il est difficile de donner des valeurs d'entrée
  • Valider et vérifier la sortie dans un système différent est un peu difficile pour les testeurs
  • La sélection et la catégorisation des paramètres doivent être connues des testeurs
  • Fonction de gestion des exceptions doit être testé
  • Des connaissances en codage sont nécessaires pour les testeurs

Conclusion

L'API se compose d'un ensemble de classes/fonctions/procédures représentant la couche de logique métier. Si l'API n'est pas testée correctement, cela peut entraîner des problèmes non seulement dans l'application API mais également dans l'application appelante. C'est un test indispensable en génie logiciel.