Amarengo

Articles and news

Humble Bits

 Test d'API à l'aide de Postman, Newman et Jenkins

Le test d’API est un type de test logiciel dans lequel un ingénieur teste non seulement la fonctionnalité, mais les performances, la fiabilité et la sécurité d’une application. Les API sont testées pour examiner si l’application fonctionnerait comme prévu, car les API sont au cœur des fonctionnalités d’une application.

Les tests d’API pendant le développement peuvent révéler des problèmes avec l’API, le serveur, d’autres services, le réseau et plus encore, ceux que l’on ne peut pas découvrir ou résoudre facilement après le déploiement.

Cependant, tester les API est difficile. Au lieu de simplement vérifier la réponse d’un point de terminaison, on peut avoir des tests d’intégration avec Postman pour examiner et valider les réponses. De nos jours, les équipes peuvent également vouloir automatiser l’exécution de ces tests dès qu’un déploiement est effectué. Une approche que nous pouvons adopter est de faire exécuter nos tests d’intégration chaque fois qu’un développeur vérifie le code dans le dépôt.

L’ajout de cette couche de contrôle de qualité permet de s’assurer que les fonctionnalités existantes fonctionnent toujours comme prévu, avec un avantage supplémentaire pour les développeurs de valider que leur code fait exactement ce à quoi il était destiné.

Outils d’automatisation des tests API dans CI

CI fait référence à l’intégration continue. Intégration de scripts de test et d’un outil de test avec le système de génération continue où les scripts de test peuvent être exécutés à chaque nouveau déploiement ou sur une base régulière (quotidienne, hebdomadaire ou bimensuelle)

  1. Facteur: Tests d’intégration avec Postman.
  2. Newman : Créez un fichier PowerShell qui exécute ces tests d’intégration via la ligne de commande.
  3. Jenkins : Ajoutez une étape Post Build dans Jenkins pour exécuter le script PowerShell chaque fois qu’une build est lancée.

Sélection d’API

J’ai implémenté cette procédure dans notre projet en utilisant les API GPS, mais pour instancier ici, reprenons les API suivantes :

Open Weather Map: Api publiques gratuites.

J’ai choisi ceci car il s’agit d’une collection gratuite d’API auxquelles tout le monde peut s’abonner et avoir ses propres clés d’API avec lesquelles fonctionner.

Créer des tests d’intégration

Pour le premier test, reprenons une simple requête GET pour obtenir Weather by ID. Pour interagir via les API, assurez-vous d’utiliser la clé API reçue lors de l’abonnement aux services OWM.

Étapes du premier test d’intégration

Créez un environnement sur Postman, « Carte météo » et définissez-y les variables d’environnement. .

Ajoutez les prérequis dans l’onglet Pré-Req pour configurer le test.

 var cityIds =; // Obtenir un nombre aléatoire entre 0-9var randomCityId=Math.étage ((Math.au hasard() * 9) + 1);// Définissez une variable d'environnement sur la valeur de l'id de ville de la ville de l'arraypostman.setEnvironmentVariable ("CITYID", cityIds)

Maintenant, dans l’onglet Test, ajoutez le script de test comme suit:

 var jsonData = JSON.parse(responseBody); // Sauvegarde de la valeur "name" de la réponse dans un environnement variablepostman.setEnvironmentVariable("CITYNAME",jsonData.name ); pm.test("Le code d'état est 200", function() { pm.response.to.have.status(200); });

Le script de test ci-dessus obtient la réponse et notre script encapsule la réponse dans une variable appelée ‘jsonData’. Maintenant, la valeur de la propriété name est enregistrée dans une variable d’environnement.

Ainsi, le premier test est créé qui échoue si le code d’état HTTP est autre chose qu’un 200.

Collections

Comme les tests API ci-dessus, on peut avoir plusieurs scripts de test pour plusieurs points de terminaison. Et ces scripts de test multiples peuvent être exécutés en séquence pour avoir une suite de tests de bout en bout. La façon d’avoir une suite de tests consiste à conserver plusieurs scripts de test dans un lieu appelé Collection dans Postman.

Ces collections peuvent ensuite être exécutées via le coureur de collection de l’outil.

Coureur de collection

Un coureur de collection peut être utilisé pour avoir une collection de points de terminaison API avec leurs scripts de test en un seul endroit et donc les exécuter un par un de manière séquentielle. L’utilisateur a juste besoin d’exécuter la collection une seule fois avec toutes les données de test requises, les scripts de test et pour autant d’itérations que l’on peut vouloir. Le résultat de l’exécution de la collection est un rapport de test, suffisamment complet pour surveiller les performances des API et également pour réessayer d’exécuter les scripts de test ayant échoué.

Pour une étude approfondie sur les coureurs de collecte, reportez-vous au lien.

Bien que l’interface utilisateur de Postman’s collection runner soit assez bonne, pour intégrer le système à Jenkins, nous devons exécuter nos collections via la ligne de commande. Ainsi, un moyen d’exécuter des collections via la ligne de commande est de passer par Newman.

Newman

Newman est un package NPM (Node Package Manager) qui nous permet d’exécuter et de tester des collections directement à partir de la ligne de commande.

Pré-requis:

  • NodeJS et
  • NPM déjà installés.

Commandes à exécuter sous Windows Powershell

  • node-v
  • npm-v
  • $npm install-g newman

Une fois les installations requises effectuées, il faut que ses collections et son Environnement soient exportés vers des fichiers JSON dans le système local. Ces fichiers peuvent ensuite être passés comme arguments à Newman.

Étapes pour obtenir l’environnement et les collections sur le système local:

  • Cliquez sur le bouton Télécharger et exporter dans Postman.
  • Téléchargez la collection
  • Téléchargez l’environnement
  • Ouvrez l’invite de commande et augmentez vos privilèges. Ceci est important pour vous d’exécuter le script. Exécutez la commande suivante:
 Stratégie Set-ExecutionPolicy-Scope CurrentUserExecution : Unrestrictedconfirmer ce changement: Y 

Ouvrez maintenant une autre invite de commande et exécutez la commande suivante:

 newman run-e 

Ajout de tests Postman à Jenkins

Nous devons d’abord exporter nos fichiers Postman (Environnement et collections) et les ajouter à GIT, ainsi que notre script Powershell pour exécuter les tests via la génération Jenkins.

 » Ajoutez les fichiers Postman à la racine du projet. »

Disant à Jenkins d’exécuter Newman

Pour cela, nous écrivons un script qui appelle Newman et lui transmet les fichiers JSON de l’environnement et de la collection.

# powershell.exe-executionpolicy bypass-command "& '%WORKSPACE%\Jenkins_PostmanDemo.ps1'"echo" Dans le script Powershell "SourSourceFilePath=enenv:WORKSPACEFilFilenamePostfix="*.postman_collection.json "DemoEnvironmentFile=" Démo - OpenWeatherMap.postman_environnement.json " # Obtenez tous les fichiers de test PostmanJJsonFiles = Get-ChildItem-PathSourSourceFilePath-name-Filter#FilenamePostfix |Sort-Object-Property CreationTime-Descending # Passez au répertoire où nous avons installé NodeJS. Sinon, la commande " newman " ne sera pas reconnue.# Vous pouvez installer NPM et Newman en tant qu'utilisateur et copier le répertoire ~Roaming \npm dans theC:\drive.#cd C:\Users\\AppData\Roaming\npm\node_modules\newman\bincd C:\npm\node_modules\newman\bin# Boucle sur les fichiers json et exécuter newman pour exécuter le Facteur testsforeach ($Fichier $JsonFiles) {$collectionfilepath = "$SourceFilePath\$Fichier"$environmentfilepath = "$SourceFilePath\$EnvironmentFile"nœud newman, exécutez $collectionfilepath -e $environmentfilepath --disable-unicode}exit $LASTEXITCODE

– ‘exit $LASTEXITCODE’: En tapant cette commande, vous verrez le résultat de la dernière commande. Nous faisons cela pour nous assurer que sur chaque boucle, la commande Newman est réussie. Si l’un des tests échoue, nous devons arrêter le script et quitter 1. Cela entraînera un échec de la construction sur Jenkins.

Ajout d’un script à Jenkins

Étapes:

  • Connectez-vous à Jenkins et créez un projet Freestyle.
  • Commencez par configurer ce projet pour extraire votre code de dépôt de Git.
  • Dans l’onglet Général, allez dans la section build et ajoutez la commande suivante:
 powershell.exe-executionpolicy bypass-command "&'%WORKSPACE%\Jenkins_PostmanDemo.ps1'

** On peut configurer la section de notification par e-mail pour configurer également une alerte par e-mail sur les échecs de génération.

Exécution des résultats de génération et de surveillance

Essayez d’exécuter le projet et examinez les résultats.

On peut distinguer une entrée réussie dans le script Powershell avec l’instruction « Inside Powershell script » dans la sortie Jenkins.

Conclusion

Améliorer l’intégration continue en utilisant Postman, Newman et Jenkins ajoute une autre couche d’assurance qualité à notre cycle de vie de développement. Bien qu’il s’agisse d’une étape importante dans l’automatisation, nous devons souligner le fait que la couverture de nos tests dépend de la qualité de nos scripts de test.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.