Tutoriel de test API: Qu'est-ce que l'automatisation des tests API? Comment tester

Avant de passer au didacticiel de test d'API, comprenons d'abord

Qu'est-ce que l'API?

L'API (Application Programming Interface) est une interface informatique qui permet la communication et l'échange de données entre deux systèmes logiciels distincts. Le 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 demandes qui peuvent être faites, comment faire des demandes, les formats de données qui peuvent être utilisés, etc. entre deux systèmes logiciels.

Qu'est-ce que le test API?

TEST D'API est un type de test logiciel qui valide les interfaces de programmation d'application (API). Le but du test 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 des entrées et des 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'aspect et la convivialité d'une application. Il se concentre principalement sur la couche de logique métier de l'architecture logicielle.

Les tests d'automatisation des API nécessitent une application qui peut être interagie via une API. Afin de tester une API, vous devrez

  • Utilisez l'outil de test pour piloter l'API
  • Écrivez votre propre code pour tester l'API

Dans ce didacticiel de test d'API, vous en apprendrez plus sur-

  • Configuration de l'environnement de test API
  • Types de sortie d'une API
  • Cas de test pour les tests d'API
  • Approche des tests d'API
  • Différence entre les tests API et les tests unitaires
  • Comment tester l'API
  • Meilleures pratiques de test d'API
  • Types de bogues détectés par API Testing
  • Comment faire l'automatisation des tests API
  • Défis des tests d'API

Configuration de l'environnement de test API

  • Le test API est différent des autres types de test logiciel car l'interface graphique n'est pas disponible, et pourtant vous devez configurer l'environnement initial qui appelle l'API avec un ensemble de paramètres requis, puis examine enfin le résultat du test.
  • Par conséquent, la mise en place 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 conformément aux 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 d'API pourrait être

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

Regardons 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.

Ajout long (int a, int b)

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

L'appel doit être effectué comme

ajouter (1234, 5656)

Les exceptions doivent être gérées si le nombre dépasse la limite des nombres entiers.

Statut (dites Réussite ou Échec)

Considérez la fonction API ci-dessous -

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

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

Un scénario de test plus précis serait, peut appeler les fonctions dans l'un des scripts et vérifier ultérieurement les modifications dans la base de données ou l'interface utilisateur graphique de l'application.

Appel d'une autre API / évé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 REFRESH 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 l'entrée peut être définie et les résultats peuvent être authentifiés
  • Ne renvoie rien: Lorsqu'il n'y a pas de valeur de retour, un comportement d'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, ces événements et interruptions des écouteurs doivent être suivis
  • Mettre à jour la structure des données: la mise à jour de la structure des données aura un certain résultat ou un effet sur le système, et cela devrait être authentifié
  • Modifier certaines ressources: si l'appel d'API modifie certaines ressources, il doit être validé en accédant aux ressources respectives

Approche de test API

L'approche de test d'API est une stratégie prédéfinie ou une méthode que l'équipe d'assurance qualité exécutera afin de mener les tests d'API une fois la construction 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 à faire une approche de test API:

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

Différence entre les tests API et les tests unitaires

Test unitaire 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
  • Le test de l'interface utilisateur est également impliqué
  • Seules les fonctions de l'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
  • Champ d'application plus large
  • Généralement exécuté avant l'enregistrement
  • Ran après la création de la version

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

  • Test de découverte: le groupe de test doit exécuter manuellement l'ensemble des appels documentés dans l'API, comme 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
  • Test d'utilisabilité: ce test vérifie si l'API est fonctionnelle et conviviale. Et l'API s'intègre-t-elle bien avec une autre plate-forme également
  • Test de sécurité: ce test inclut le type d'authentification requis et si les données sensibles sont cryptées via HTTP ou les deux
  • Tests automatisés: les tests d' API devraient 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 cas de test lui-même
  • Hiérarchisez les appels de fonction API afin que les testeurs puissent facilement tester
  • Chaque cas de test doit être aussi autonome et indépendant des dépendances que possible
  • Évitez de "tester le chaînage" dans votre développement
  • Des précautions particulières doivent être prises lors de la gestion des fonctions d'appel ponctuelles telles que - Supprimer, Fermer la fenêtre, etc.
  • Le séquençage des appels doit être effectué et bien planifié
  • Pour garantir une couverture de test complète, créez des cas de test d'API pour toutes les combinaisons d'entrée possibles de l'API.

Types de bogues détectés par les tests d'API

  • Ne parvient pas à gérer correctement les conditions d'erreur
  • Drapeaux inutilisés
  • Fonctionnalité manquante ou dupliquée
  • Problèmes de fiabilité. Difficulté à se connecter et à obtenir une réponse de l'API.
  • Problèmes de sécurité
  • Problèmes de multi-threading
  • Les problèmes de performance. Le temps de réponse de l'API est très élevé.
  • Erreurs / avertissement inappropriés à un appelant
  • Traitement incorrect des valeurs d'argument valides
  • Les données de réponse ne sont pas structurées correctement (JSON ou XML)

Comment faire l'automatisation des tests API

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

Comment tester l'API avec REST Assured

Comment tester l'API avec Postman

Comment tester l'API avec UFT

En outre, il existe d'autres outils pour les tests d'API. Vérifiez-les 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 la combinaison de paramètres, la sélection des paramètres et le séquençage des appels
  • Il n'y a pas d'interface graphique disponible pour tester l'application, ce qui rend difficile la saisie des valeurs d'entrée
  • Valider et vérifier la sortie dans un système différent est peu difficile pour les testeurs
  • La sélection et la catégorisation des paramètres doivent être connues des testeurs
  • La fonction de gestion des exceptions doit être testée
  • La connaissance du codage est nécessaire pour les testeurs

Conclusion:

L'API se compose d'un ensemble de classes / fonctions / procédures qui représentent 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.

Articles intéressants...