Tester votre webhook

Lorsque vous développez votre webhook, vous pouvez le tester avec des charges utiles Business Messages réelles. Au lieu de créer manuellement des tests, vous pouvez utiliser le framework de test Business Messages pour tester votre webhook avec différents types de charges utiles JSON que votre webhook peut recevoir en production.

Pour commencer, il vous suffit de disposer d'une URL qui redirige vers une instance en cours d'exécution de votre webhook. Le framework de test est facile à installer et vous pouvez tester votre webhook à l'aide d'une seule commande.

Commencer

Installer le framework

Le moyen le plus simple d'installer le framework est d'utiliser le gestionnaire de packages NPM. Le framework est publié dans le registre de packages NPM. Vous pouvez donc l'installer avec npm :

npm install -g bm-test-framework

Exécuter les tests

Une fois le package installé, vous pouvez fournir votre URL de webhook en tant que variable d'environnement et exécuter tous les tests avec la commande suivante:

BMTF_ENDPOINT_URL=<Your webhook URL> bm-test-framework

Les résultats du framework de test se présentent comme suit:

  Sending payloads to <Your webhook URL>
      ✔ authentication-request.json should return 200
      ✔ event-receive.json should return 200
      ✔ image-message.json should return 200 (862ms)
      ✔ read-receipt.json should return 200
      ✔ suggestion-message.json should return 200
      ✔ text-message.json should return 200 (134ms)
      ✔ text-with-dialogflow-response.json should return 200 (128ms)
      ✔ user-receipt.json should return 200

Dans cet exemple d'exécution, tous les scénarios de test ont réussi.

Si votre webhook échoue dans l'un des scénarios de test, cela signifie qu'il ne répond pas avec une 200 OK à la charge utile JSON de ce scénario de test. Dans ce cas, le framework de test imprime des informations d'erreur pour vous aider à déboguer. Consultez le fichier README du framework de test pour en savoir plus sur des scénarios de test spécifiques.

Utiliser le framework dans votre projet NodeJS

Pour utiliser le framework depuis votre propre code dans un projet Node.js, ou depuis une suite de test Mocha, commencez par installer le package en tant que dépendance de développement:

npm install --save-dev bm-test-framework

Une fois installé, vous pouvez créer un objet BmTestFramework pour gérer les tests:

const BmTestFramework = require('bm-test-framework');
const bmTestFramework = new BmTestFramework({endpointURL: <Your webhook URL>});

Le tableau de membres payloads contient tous les scénarios de test. Vous pouvez utiliser la méthode sendPayload pour exécuter un test spécifique. Par exemple, le code suivant exécute le premier test du framework:

bmTestFramework.sendPayload(bmTestFramework.payloads[0])

Configurer les tests

En plus de la variable d'environnement BMTF_ENDPOINT_URL requise, vous pouvez également définir des variables d'environnement facultatives pour personnaliser le comportement de test:

Variable d'environnement Nom du champ de configuration Type Description
BMTF_RANDOM_UUID aléatoire booléen Si la valeur est "true", l'ID de la conversation est défini sur un UUID aléatoire, avec un format valide. Si elle est définie sur "false", tous les ID de conversation sont définis sur "CONVERSATION-ID".
BMTF_TIMEOUT timeout Nombre ou chaîne de temps formatée Définit le délai avant expiration (en millisecondes) pour chaque scénario de test. Le délai avant expiration par défaut est de 2 000 ms pour chaque scénario de test. Consultez la documentation de référence de l'API Mocha pour connaître les spécifications détaillées du type et de la mise en forme.

Par exemple, le code suivant exécute le framework de test à partir de la ligne de commande, avec l'option UUID aléatoire activée et avec un délai avant expiration de 1 000 ms:

BMTF_ENDPOINT_URL=<Your webhook URL> BMTF_TIMEOUT=1000 BMTF_RANDOM_UUID=true bm-test-framework

Pour personnaliser le comportement de test dans votre projet NodeJS, vous pouvez également transmettre les mêmes variables dans l'objet config lorsque vous créez votre BmTestFramework:

const bmTestFramework = new BmTestFramework({endpointURL: <Your webhook URL>, randomUuid: true, timeout: 1000});