Comment tester une API avec Python et JavaScript

C’est une mince ligne entre choisir une interface de programmation d’application (API) et décider si vous pouvez travailler avec ou non. La plupart des API REST ont une architecture générique et un chemin de requête commun. Mais certaines API s’écartent de la norme. Par conséquent, ils deviennent difficiles à utiliser.

Ainsi, avant de construire l’intégralité de votre logiciel sur une API, vous devez effectuer des contrôles de qualité et vous assurer qu’il fonctionne correctement. Alors, qu’est-ce que le test d’API et comment pouvez-vous tester une API ?

Qu’est-ce que les tests d’API ?

Les tests d’API impliquent l’évaluation initiale de la fonctionnalité, de la sécurité, de l’évolutivité, de la vitesse d’une API, etc., pour voir si elle est idéale pour le programme qui souhaite l’utiliser. Mais superficiellement, cela peut impliquer des tests pour voir s’il envoie les réponses appropriées lorsque vous faites des demandes via ses différents points de terminaison.

En fonction de sa structure, lors du test d’une API, vous ferez des requêtes (Get, Post, Update ou Delete) à ses points de terminaison pertinents. Il existe de nombreuses métriques à vérifier lors des tests d’API. Mais au niveau débutant, vous souhaitez valider l’intégrité d’une API à partir de son code d’état et vous assurer qu’elle récupère et accepte les données correctes.

À cette fin, comme toute requête Web, une API peut renvoyer le code d’état 200, 400 ou 500 ou même d’autres.

La plupart des API utilisent des réponses JSON pour servir leurs charges utiles. Selon l’objectif, d’autres peuvent accepter et répondre avec des charges utiles XML, en plusieurs parties ou HTML.

Comment tester une API avec Python et JavaScript

Bien qu’il existe de nombreux outils de test d’API d’interface utilisateur graphique (GUI) sur Internet, vous pouvez évaluer une API de manière plus critique avec des scripts écrits.

Une API indique dans sa documentation le type de requêtes qu’elle autorise et leur fournit des points de terminaison pertinents. Vous pouvez donc les récupérer et les tester en utilisant les méthodes de requête appropriées.

Voir aussi :  9 questions courantes pour les entretiens avec les développeurs web et comment y répondre

Contrairement à la phase de production proprement dite, les tests API sont bruts. Vous n’avez donc pas besoin d’autant de spécificité que lors de l’exécution de l’API pour la production. Bien qu’il existe différents types de tests d’API, nous nous concentrerons davantage sur les tests de validation des réponses dans cet article.

Nous allons tester un fausse API de magasin dans ce tutoriel en utilisant JavaScript aller chercher et Python demandes bibliothèque. Ce faisant, nous testerons les points de terminaison pour obtenir, publier, mettre à jour et supprimer des données.

Comment tester un point de terminaison Get API avec JavaScript

Comme si vous l’utilisiez en production, vous pouvez tester une API en JavaScript en utilisant soit Axios ou la aller chercher méthode.

Pour obtenir l’état de la réponse de l’API à l’aide de aller chercher :

La requête ci-dessus renvoie un statut 200 s’il s’agit d’une réponse valide. Une fois que vous avez fait une demande réussie, vous pouvez alors demander des données en temps réel à partir de l’API.

Obtenons les données de cette API :

La réponse au code de récupération ci-dessus ressemble à ceci :

Pour obtenir le prix de tous les produits, par exemple, vous pouvez utiliser le carte une fonction:

Ce qui précède enregistre la sortie suivante :

Capture d'écran montrant la réponse du prix pour le test de l'API JavaScript

Tester un point de terminaison Get avec Python

Comme mentionné précédemment, Python utilise également le demandes bibliothèque pour accéder aux données d’une API.

Pour vérifier l’état de la réponse dans ce cas :

Enregistrement Les données comme nous l’avons fait ci-dessus renvoie un statut correspondant. C’est 200 dans ce cas, cependant.

Obtenons maintenant les mêmes données avec Python que lors de l’utilisation de JavaScript :

Le résultat de ce qui précède ressemble à ceci :

Voir aussi :  Map-Reduce vs. Aggregation Pipeline dans MongoDB

Capture d'écran montrant la réponse des données à l'aide de Python

Vous pouvez obtenir des données spécifiques en utilisant la boucle for.

Pour obtenir les prix des produits, par exemple :

Voici à quoi ressemble la sortie :

Capture d'écran montrant la réponse du prix à l'aide de la requête Python pour les tests

Test d’un post-point de terminaison avec JavaScript

Après avoir testé et vu que le Avoir request fonctionne, selon votre objectif et ce que propose l’API, vous voudrez peut-être vérifier si vous pouvez également y insérer des données.

Contrairement à la façon dont vous faites un Avoir demande, un Poster la requête accepte une charge utile. De plus, vous devrez spécifier qu’il s’agit d’une demande Post :

Le code ci-dessus enregistre le code d’état de la réponse et les nouvelles informations insérées lorsque vous l’exécutez. Cela vous indique si votre demande a abouti ou non. En règle générale, si le code d’état est 200, votre API a un point de terminaison valide qui renvoie la réponse appropriée.

Tester la demande de publication avec Python

Vous pouvez également tester un post-endpoint d’une API à l’aide de Python demandes.post . Comme vous l’avez fait lors de l’utilisation de JavaScript aller chercher vous devez également spécifier la charge utile ici :

Comme JavaScript, le code Python ci-dessus enregistre également le code d’état de la réponse et les nouvelles données spécifiées dans le charge utile .

Tester les points de terminaison Put

La mise à jour des données de l’API suit le même processus que la publication et l’obtention de celles-ci dans les deux langues.

Pour ce faire, utilisez JavaScript aller chercher vous n’avez qu’à remplacer Poster avec Mettre :

Si vous prêtez attention au point de terminaison de l’API, vous verrez qu’il inclut l’ID de produit cette fois. C’est ainsi que l’API sait quelles données vous souhaitez mettre à jour dans ce cas.

Néanmoins, certaines API peuvent utiliser d’autres méthodes pour créer leurs points de terminaison. Ce n’est donc pas une norme.

Voir aussi :  Comment ajouter une détection de collision efficace dans Godot pour un gameplay fluide

Pour tester la mise à jour des données de l’API à l’aide de Python, vous utilisez demandes.mettre plutôt:

Les exemples ci-dessus, en cas de succès, insèrent les nouvelles données en position 19 comme indiqué par le point de terminaison API.

Tester la demande de suppression

Supprimer des données d’une API est aussi simple que de faire une requête Get. En effet, contrairement à Post et Put, vous n’avez pas besoin de spécifier de charge utile. Tout ce dont vous avez besoin est le point de terminaison de suppression.

Notre API choisie ici utilise l’ID du produit pour suivre ses données. Ainsi, supprimer un produit est facile :

Vous n’avez besoin que de quelques lignes de code pour obtenir la même chose en utilisant Python :

Les deux exemples ci-dessus enregistrent le code d’état de la réponse et les données appartenant à l’identifiant interrogé (19 dans ce cas).

Ces méthodes de test sont-elles génériques ?

Bien que nous ne nous soyons concentrés que sur une seule API dans cet article, les méthodes utilisées pour tester les points de terminaison CRUD ne sont pas différentes lorsqu’il s’agit d’autres API. La seule différence, bien sûr, pourrait résider dans les règles entourant chaque structure d’API et les directives de demande de données. Une fois que vous les avez déchiffrés pour une API choisie, vous pouvez ensuite utiliser la méthode appropriée, comme décrit ici, pour tester ses points de terminaison correspondants.

Ainsi, étant donné que chaque API a des règles pour s’y connecter, lors des tests, certaines peuvent fournir des paramètres supplémentaires à inclure dans vos en-têtes de requête. Ces paramètres incluent généralement un jeton d’accès ou d’autres, comme indiqué dans la documentation.

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *