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});