Aller au contenu
Tests d'API avec Bruno
Image de Bruno sur Github
  1. Blogs/

Tests d'API avec Bruno

··685 mots·4 mins·

Dans le monde dynamique du développement et des tests d’API, l’automatisation est essentielle.

Bruno offre un support de script pour vous aider à ajouter des fonctionnalités supplémentaires à l’outil, telles que la génération de données, la validation et l’intégration avec d’autres outils et systèmes, y compris l’envoi de requêtes intermédiaires, l’analyse des données de réponse, la mise à jour des variables d’environnement, etc.

Gestion des secrets
#

Énoncé du problème
#

Dans toute collection, il y a des secrets qui doivent être gérés. Ces secrets peuvent être des clés d’API, des mots de passe ou des jetons.

Une pratique courante consiste à stocker ces secrets dans des variables d’environnement.

Les développeurs peuvent partager les collections Bruno de deux manières :

  • Vérifier le dossier de la collection dans le contrôle de source (comme git)
  • Exporter la collection dans un fichier et la partager

Dans les deux cas, nous voulons nous assurer que les secrets sont retirés de la collection avant qu’elle ne soit partagée.

Solution
#

Bruno propose deux approches pour gérer les secrets dans les collections :

  • Fichier .env
  • Variables secrètes

Caractéristiques principales de Bruno Scripting
#

Bruno est un framework de script conçu pour fournir des fonctionnalités avancées et des capacités d’automatisation. Avec Bruno, les développeurs peuvent améliorer leurs tests d’API et leurs flux de travail de développement en permettant des tâches telles que la génération de données, les processus de validation, l’intégration avec d’autres outils et systèmes, et bien plus encore.

Explorons quelques-unes des principales caractéristiques et fonctionnalités de Bruno :

Génération et validation des données
#

Bruno permet de générer des données de manière transparente dans l’environnement de test, ce qui permet aux développeurs de simuler divers scénarios et cas limites. De plus, il facilite les processus de validation robustes, garantissant que les API se comportent comme prévu dans différentes conditions.

Intégration et interopérabilité
#

L’une des forces de Bruno réside dans sa capacité à s’intégrer à d’autres outils et systèmes de manière transparente. Qu’il s’agisse d’orchestrer des flux de travail complexes ou d’incorporer des services tiers, Bruno rationalise le processus, améliorant ainsi la collaboration et l’efficacité.

Requêtes intermédiaires et analyse des réponses
#

Avec Bruno, les développeurs peuvent exécuter des requêtes intermédiaires dans leurs workflows, ce qui permet de réaliser des scénarios de test sophistiqués et des interactions API complexes. De plus, Bruno simplifie l’analyse des données de réponse, ce qui facilite l’extraction et la manipulation des informations pertinentes.

Gestion de l’environnement
#

Bruno permet aux développeurs de gérer les variables d’environnement sans effort, ce qui facilite la gestion de la configuration et assure la cohérence entre les différents environnements de test. Qu’il s’agisse de mettre à jour des variables ou d’accéder à des données spécifiques à l’environnement, Bruno simplifie le processus, améliorant ainsi l’efficacité du flux de travail.

Traduction des scripts Postman en commandes Bruno
#

Pour illustrer davantage les capacités de Bruno, traduisons quelques scripts Postman courants en commandes Bruno :

Les tests confirment que l’API fonctionne
#

Commande Bruno:

bru.test("check status code", function() {
  expect(res.status).to.equal(200);
});

Commande Postman:

pm.test("check status code", function() {
  pm.response.to.have.status(200);
});

Définir la variable de collecte
#

Commande Bruno:

bru.setVar("auth_token", res.body.userid);

Commande Postman:

pm.collectionVariables.set("auth_token", "abc123");

Obtenir une variable de collection
#

Commande Bruno:

bru.getVar("auth_token");

Commande Postman:

pm.collectionVariables.get("auth_token");

Définir une variable d’environnement
#

Commande Bruno:

bru.setEnvVar("api_key", "xyz1712");

Commande Postman:

pm.environment.set("api_key", "xyz1712");

Obtenir une variable d’environnement
#

Commande Bruno:

bru.getEnvVar("api_key");

Commande Postman:

pm.environment.get("api_key");

Commande Prochaine demande
#

Commande Bruno:

bru.setNextRequest("Token_SSO");

Commande Postman:

pm.setNextRequest("Token_rock");

Conclusion
#

En conclusion, Bruno permet une automatisation, une personnalisation et une flexibilité avancées, aidant les développeurs à fournir des API de haute qualité en toute confiance.

Bruno prend en charge le chargement de n’importe quel module npm pour l’utiliser dans vos flux de script.

Vous devez ajouter un fichier package.json dans lequel votre collection est stockée.

package.json
{
  "name": "bruno_api_demo",
  "version": "1.0.0",
  "description": "With Bruno CLI, you can now run your API collections with ease using simple command line commands.",
  "author": "Ludovic Wyffels",
  "license": "ISC",
  "keywords": [
    "bruno",
    "api testing"
  ],
  "scripts": {
    "test": "bru run Oauth-Login --env test_ludo --format junit --output results.xml"
  },
  "dependencies": {
    "@usebruno/cli": "~1.11.0",
    "@faker-js/faker": "8.3.1"
  }
}

Articles connexes

Bruno, l'alternative à Postman
··659 mots·4 mins
Bruno est un nouveau client API innovant, conçu pour remettre en question le statu quo représenté par Postman et d’autres outils similaires.
Créer et exécuter des jeux de tests Playwright à l'aide de tags et de grep
··1164 mots·6 mins
Au fur et à mesure que votre suite de tests s’étoffe, il se peut que vous souhaitiez exécuter un sous-ensemble de vos tests.
Ajoutez des pièces jointes à votre rapport de Playwright
··655 mots·4 mins

Les tests automatisés avec Playwright sont un excellent moyen de s’assurer que votre application fonctionne correctement, mais tester un fichier peut s’avérer difficile.

Il ne s’agit pas d’une tâche simple à automatiser et elle doit être testée par un humain pour être complète. Cependant, nous pouvons faire de notre mieux pour rendre cette tâche plus facile que d’avoir à ouvrir manuellement l’application, puis à interagir avec elle, juste pour télécharger le fichier. Cela peut être acceptable une ou deux fois, mais cela devient rapidement une tâche fastidieuse. Par conséquent, ce test sera “oublié”.