Tester votre webhook

Lorsque vous développez votre webhook, vous pouvez le tester avec de vraies entreprises Charges utiles des messages. Au lieu de créer manuellement des tests, vous pouvez utiliser la console Framework de test 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 d'une URL pour une instance en cours d'exécution de votre webhook. Le framework de test est facile à installer et vous pouvez tester votre webhook avec une seule commande.

Premiers pas

Installer le framework

Le moyen le plus simple d'installer le framework consiste à utiliser le gestionnaire de packages NPM. Le framework est publié dans le registre de packages NPM pour que vous puissiez l'installer avec npm:

npm install -g bm-test-framework

Exécuter les tests

Une fois le package installé, vous pouvez fournir l'URL de votre webhook en tant qu'environnement et exécutez tous les tests à l'aide de 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 de test, tous les scénarios de test ont réussi.

Si votre webhook échoue sur l'un des scénarios de test, cela signifie qu'il n'effectue pas répondre avec un 200 OK à la charge utile JSON de ce scénario de test. Dans ce cas, le test le framework affiche des informations sur l'erreur pour vous aider au débogage. 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 à partir de votre propre code dans un projet NodeJS ou depuis dans une suite de tests Mocha, installez d'abord le package en tant que la dépendance:

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

Une fois les tests installés, 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 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 obligatoire, vous pouvez Définissez également des variables d'environnement facultatives pour personnaliser le comportement du test:

Variable d'environnement Nom du champ de configuration Type Description
BMTF_RANDOM_UUID randomUuid booléen Si la valeur est "true", l'ID de conversation est défini sur un UUID aléatoire avec un format valide. Si la valeur est "false", tous les ID de conversation sont définis sur "CONVERSATION-ID".
BMTF_TIMEOUT délai avant expiration Nombre ou chaîne d'heure 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 obtenir des spécifications détaillées sur le type et 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 du test dans votre projet NodeJS, vous pouvez également transmettre la méthode 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});