• Accueil
  • Technologie
  • Education
  • Guides
  • Fun
  • Outils IA
  • ChatGPT
Facebook Twitter Instagram
mercredi, mars 22
Facebook Twitter Instagram
Intelligence artificielle
  • Accueil
  • Technologie
  • Education
  • Guides
  • Fun
  • Outils IA
  • ChatGPT
Intelligence artificielle
Home»Education»Guide ultime des tests GraphQL : Types et composants
Education

Guide ultime des tests GraphQL : Types et composants

JeanBy Jeannovembre 14, 2022Updated:novembre 14, 2022Aucun commentaire6 Mins Read
Facebook Twitter Pinterest LinkedIn Tumblr Email
tester GraphQL
Share
Facebook Twitter LinkedIn Pinterest Email

GraphQL est un langage de requête et de manipulation open-source pour les API développé par Facebook. Les leaders du secteur et les grandes entreprises telles que Facebook, Airbnb et Github adoptent GraphQL.1 Les développeurs utilisent GraphQL en conjonction avec les API REST ou parfois même comme une alternative directe.

Tout comme les tests d’API REST, les tests GraphQL sont nécessaires aux utilisateurs pour garantir la stabilité des API GraphQL. Cependant, contrairement aux tests des API REST, les tests GraphQL peuvent s’avérer difficiles car peu d’outils prennent en charge GraphQL. Cet article vise à combler le manque d’informations en donnant des informations sur les types et les composants des tests GraphQL.

Qu’est-ce que le test GraphQL ?

Figure 1 : Représentation de GraphQL

GraphQL Representation

L’objectif principal des tests GraphQL est de s’assurer que les schémas, les requêtes et les mutations créés pour une API fonctionnent comme prévu. Comme GraphQL est un service situé entre les systèmes frontaux et les API dorsales, le test GraphQL est crucial pour maintenir la stabilité des services offerts par les API.

GraphQL possède un seul point de terminaison (voir la figure 1 ci-dessus), ce qui en fait une connexion directe entre la source de données et le client. Pour cette raison, GraphQL est essentiel à des fins de test.

Sponsorisé par

Les tests d’API sont une pratique essentielle pour garantir la stabilité d’une API. PULSE est un outil d’automatisation des tests d’API créé par Testifi. Il peut réduire la durée et le coût du cycle de 50% et améliorer la documentation. Des entreprises bien connues comme BMW et Amazon utilisent les services de Testifi.

Les 3 principaux avantages des tests GraphQL

Les tests GraphQL offrent les avantages suivants :

  1. Meilleure vue d’ensemble des applications : Les tests GraphQL permettront au testeur de mieux comprendre les objets et les structures de données renvoyés par les requêtes.
  2. Élimination des bogues imprévus : GraphQL est flexible, et les tests aident les utilisateurs à s’assurer que le nombre d’erreurs est minimal.
  3. Stabilité : Les tests GraphQL améliorent la qualité et la stabilité générales des API GraphQL en vérifiant et en garantissant les fonctions des requêtes, des résolveurs, des schémas et des mutations.

Types de tests GraphQL

Il existe de multiples méthodes pour tester GraphQL :

  • Vérification statique des types : Il est avantageux d’utiliser un langage avec vérification statique des types, comme JavaScript ou ses extensions. Le nombre d’erreurs entre les schémas et les résolveurs sera plus faible grâce aux vérifications multiples des fonctions par la méthode de vérification statique des types2.
  • Tests unitaires : Ils sont utilisés pour tester les schémas ou les résolveurs.
  • Tests d’intégration : Ils sont utilisés pour vérifier comment les résolveurs et les schémas fonctionnent ensemble.
  • Tests de bout en bout : Ils sont utilisés pour vérifier l’ensemble du cycle de vie des API GraphQL, des schémas aux résolveurs en passant par les requêtes, et la manière dont elles sont livrées aux clients. Les tests E2E (End-to-end) sont davantage liés au côté client.

Nous pouvons mettre en œuvre le schéma du Trophée pour nous faire une idée de la préférence des méthodes (voir la figure 2).

Jasper

Figure 2 : Le trophée de test

Testing Trophy Representation

Source : Medium3

Nous énumérons ci-dessous le raisonnement qui sous-tend le trophée de test (voir la figure 2) :

  • Le type statique vérifie le code et montre s’il y a quelque chose qui ne va pas.
  • Les tests unitaires sont relativement faciles à réaliser car ils testent de petites unités de code et peuvent s’exécuter rapidement.
  • Les tests d’intégration sont plus lents car ils testent plusieurs couches de code. Le testeur peut utiliser un serveur fantaisie et vérifier les flux du test.
  • Les tests de bout en bout sont beaucoup plus lents et difficiles à réaliser car ils impliquent plusieurs produits tels que des serveurs, des clients et des bases de données. Ces tests sont utilisés pour vérifier une routine.

Composants à tester dans GraphQL

Voici les composants suivants sur lesquels vous devriez effectuer des tests :

  • Schéma : Les schémas peuvent être testés en utilisant des vérifications de type statique et des schémas fictifs et des requêtes de test.
  • Requête : Une approche automatisée peut être utilisée pour tester les requêtes à l’aide de bibliothèques telles que « request » et « supertest ». GraphiQL4 est également un moyen facile de tester les requêtes si les serveurs GraphQL sont construits en JavaScript. EasyGraphQL tester peut également être mis en œuvre par l’utilisateur pour tester différentes requêtes.
  • Mutations : Les mutations peuvent être testées en utilisant la fonction du testeur d’EasyGraphQL ou la requête de mutation de GraphiQL dans son client. Cela permettra de s’assurer que la base de données fonctionne correctement.
  • Résolveurs : La bibliothèque de testeurs d’EasyGraphQL peut être utilisée pour tester les résolveurs. Les résolveurs sont des fonctions Javascript, ils peuvent donc être testés comme un autre code Javascript.

EasyGraphQL5 est l’un des outils les plus utilisés pour les tests GraphQL. Vous pouvez l’exécuter sur chaque implémentation JavaScript de GraphQL. Vous pouvez également simuler les résultats des requêtes et les tester.

Test du schéma

Nous pouvons utiliser des vérifications de type statique, un schéma fictif et des requêtes de test pour tester le schéma. Les bibliothèques graphql-schema-linter6 et eslint-plugin-graphql7 peuvent être utilisées pour effectuer des tests de schéma.

Est-lint-plugin-graphql est un linter pour étendre les règles Eslint, et graphql-schema-linter est un outil pour valider la définition du schéma. En plus des vérifications statiques des types, mocker le schéma en utilisant un mock-server via graphql-tools8(un ensemble de paquets npm) tout en faisant attention aux combinaisons possibles sera bénéfique pour les tests de schéma.

Test des requêtes et des mutations

Alors que nous pouvons utiliser une approche automatisée en utilisant les bibliothèques « request » et « supertest » pour le test des requêtes, nous pouvons faire des simulations de requêtes et de mutations via easygraphql-tester.9 Nous pouvons également faire des assertions de test directement via easygraphql-tester au lieu de faire des simulations. Ci-dessous, vous pouvez voir l’exemple d’assertion de test direct.

Source : Conférences NDC10

Test des résolveurs

Les résolveurs sont de pures fonctions, et ils sont plus faciles à tester. Nous n’avons pas besoin de packages pour tester les résolveurs ; il s’agit simplement de fonctions javascript ou de n’importe quel langage sur lequel le serveur GraphQL est basé. Les résolveurs collectent des informations à partir des schémas, il est donc nécessaire de les tester dès le début pour éviter des erreurs coûteuses. Voici un exemple de test de résolveurs :

Testing resolvers

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Jean
  • Website

Related Posts

éviter les CAPTCHAs dans le Web Scraping

Le guide ultime pour éviter les CAPTCHAs dans le Web Scraping

mars 14, 2023
Quelle est la différence entre l’analyse prédictive et l’IA ?

Quelle est la différence entre l’analyse prédictive et l’IA ?

février 7, 2023
L'éthique de l'IA générative

L’éthique de l’IA générative : Les 6 principales préoccupations

janvier 10, 2023

Comments are closed.

Bienvenue sur le Mag dédié à l’intelligence artificelle

Ce site est dédié à l’IA et au machine learning et est un moyen de partager notre passion pour tout ce qui touche de près ou de loin à cette nouvelle révolution.
Que vous soyez passionné par les évolutions dans ce secteur, à la recherche d’outils ou d’astuces pour automatiser votre activité, ce blog est fait pour vous !

Articles récents
Artificial Intelligence in Tourism Industry Revolutionising the Way We Travel
Artificial Intelligence in Tourism Industry: Revolutionising the Way We Travel
mars 18, 2023
The Growing Role of AI in Supply Chain Management
Le rôle croissant de l’IA dans la gestion de la chaîne d’approvisionnement
mars 17, 2023
réseau adversarial génératif (GAN)
10 Cas d’utilisation du GAN en 2023
mars 16, 2023
IA social
  • Facebook
  • Twitter
  • Pinterest
Artificial Intelligence in Tourism Industry Revolutionising the Way We Travel Actualité IA
5 Mins Read
Artificial Intelligence in Tourism Industry: Revolutionising the Way We Travel
By Jeanmars 18, 2023

Are you tired of spending hours on end researching and planning your next vacation? Do…

The Growing Role of AI in Supply Chain Management

Le rôle croissant de l’IA dans la gestion de la chaîne d’approvisionnement

mars 17, 2023
réseau adversarial génératif (GAN)

10 Cas d’utilisation du GAN en 2023

mars 16, 2023
Note

Nous sommes soutenus par nos lecteurs. Lorsque vous effectuez des achats par le biais de liens présents sur notre site, nous pouvons recevoir une commission d’affiliation.

Facebook Twitter Instagram Pinterest
  • À propos
  • Confidentialité
  • Écrivez pour nous
  • Contact
Tous droits réservés 2023 - Plan du site

Type above and press Enter to search. Press Esc to cancel.