Les tests karatés

Actualités > Mobilité > Les tests karatés
Catégories
EVAN MARTHO

Publié le :

Par EVAN MARTHO

Karaté est un framework d’automatisation des tests d’API Open Source.

Chez XPEHO, nous aimons la mobilité et nous nous sommes, depuis peu, lancés dans le partage de connaissances à travers des meetups, vidéos, articles, etc. Comme vous pouvez le découvrir dans notre dernier article sur le Monkey Testing.

Qu’est-ce que c’est ?

Karaté est un framework d’automatisation des tests d’API Open Source. Les scénarios sont réalisés en Gherkin.

Il permet donc à la fois de combiner les scénarios Gherkin, des fichiers config javascript mais également du JSON ou XML pour la data.

Configuration

Nous aurons d’abord besoin d’une API. Gratuite, c’est encore mieux :

API-Football® - Best Football (Soccer) API [For Developers]

Veillez à bien configurer votre accès à RapidApi afin de pouvoir appeler les différentes routes de votre API.

Ensuite, initions un projet Kotlin/Maven :

Interface IntelliJ

Avant de se lancer directement dans la création d’une feature qui décompose notre test, nous avons besoin d’ajouter des dépendances dans le pom.xml. (https://github.com/XPEHO/KarateTestsTuto/blob/main/pom.xml)

Ces dépendances vont nous permettre de travailler avec Karate.

A l’attaque

Maintenant, créons un fichier .js dans le dossier test/ressources. Ce fichier va nous permettre de gérer nos urls d’API ainsi que nos valeurs.

config.js

Pour notre test, sélectionnons la route : Get Search Team

Nous allons créer notre fichier karate test dans le dossier ressources. Je l’ai nommé : get_search_team.feature

Exemple :

Feature: Football

Background:
* url apiFootballUrl

Scenario: Get Search Team Success
Given path '/teams'
And header X-RapidAPI-Host = XRapidAPIHost
And header X-RapidAPI-Key = XRapidAPIKey
And param search = 'marseille'
When method GET
Then status 200


Scenario: Get Search Team not found
Given path '/teams?search=marseille'
And header X-RapidAPI-Host = XRapidAPIHost
And header X-RapidAPI-Key = XRapidAPIKey
When method GET
Then status 404

La décomposition d’un fichier.feature :

  • Feature : Description
  • Background : base_url du scénario
  • Scénario : Nom du scénario
  • Given : path + les différents paramètres (header/query/…)
  • When : La méthode que l’on veut utiliser (GET/POST/PUT/PATCH)
  • Then : Le statut que l’on attend

Toutes les variables sont indiquées dans notre fichier config.js.

Pour lancer notre feature, nous pouvons soit lancer le scénario success, soit le not found, soit le fichier entier. Pour ce faire, je vous conseille d’installer les modules Cucumber/Karate et Gherkin.

Le résultat se trouve dans : target/karate-reports/karate-summary.html

Résultat de la feature

Conclusion

L’avantage des tests karatés est la capacité à voir le taux de coverage de ses routes à travers un rapport.

Nous pouvons également réaliser des tests de charge grâce en générant nos jeux de données. D’ailleurs, pour générer nos jeux de données, nos tests devront être dynamiques et nos données ne devront pas être renseignées “en “dur”.

Nous verrons ça prochainement dans un second article sur Karaté de XPEHO… 😌