Webhook testen

Bei der Entwicklung Ihres Webhooks können Sie ihn mit echten Business Messages-Nutzlasten testen. Anstatt Tests manuell zu erstellen, können Sie das Test-Framework für Business Messages verwenden, um Ihren Webhook mit verschiedenen JSON-Nutzlasttypen zu testen, die Ihr Webhook in der Produktion erhalten kann.

Für den Einstieg benötigen Sie lediglich eine URL zu einer ausgeführten Webhook-Instanz. Das Test-Framework ist einfach zu installieren und Sie können den Webhook mit einem einzigen Befehl testen.

Erste Schritte

Framework installieren

Am einfachsten lässt sich das Framework mit dem Paketmanager für die Verwaltung von Werbenetzwerkpartnern installieren. Das Framework wird in der NPM-Paket-Registry veröffentlicht, sodass Sie es mit npm installieren können:

npm install -g bm-test-framework

Tests ausführen

Wenn das Paket installiert ist, können Sie die Webhook-URL als Umgebungsvariable angeben und alle Tests mit dem folgenden Befehl ausführen:

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

Die Ergebnisse des Test-Frameworks sehen so aus:

  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

In diesem Beispieltest wurden alle Testläufe bestanden.

Wenn der Webhook in einem der Testläufe fehlschlägt, antwortet der Webhook nicht mit einer 200 OK auf die JSON-Nutzlast dieses Testlaufs. In diesem Fall gibt das Test-Framework Fehlerinformationen aus, die Ihnen bei der Fehlerbehebung helfen. Weitere Informationen zu bestimmten Testfällen finden Sie in der README-Datei des Test-Frameworks.

Framework in Ihrem NodeJS-Projekt verwenden

Wenn Sie das Framework in Ihrem eigenen Code in einem NodeJS-Projekt oder in einer Mocha-Testsuite verwenden möchten, installieren Sie zuerst das Paket als Entwicklungsabhängigkeit:

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

Nach der Installation können Sie ein BmTestFramework-Objekt erstellen, um die Tests zu verwalten:

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

Das Mitglieder-Array payloads enthält alle Testläufe. Sie können die Methode sendPayload verwenden, um einen bestimmten Test auszuführen. Mit dem folgenden Code wird beispielsweise der erste Test im Framework ausgeführt:

bmTestFramework.sendPayload(bmTestFramework.payloads[0])

Tests konfigurieren

Zusätzlich zur erforderlichen BMTF_ENDPOINT_URL-Umgebungsvariable können Sie auch optionale Umgebungsvariablen festlegen, um das Testverhalten anzupassen:

Umgebungsvariable Name des Konfigurationsfelds Typ Beschreibung
Logo: BMTF_RANDOM_UUID randomUuid boolean Bei „true“ wird die Unterhaltungs-ID auf eine randomisierte UUID in einem gültigen Format festgelegt. Bei "false" werden alle Unterhaltungs-IDs auf "Conversation-ID" festgelegt.
MTF_TIMEOUT timeout Zahl oder formatierter Zeitstring Legt das Zeitlimit in Millisekunden für jeden Testfall fest. Das Standardzeitlimit beträgt für jeden Testlauf 2.000 ms. Detaillierte Informationen zu Typ und Formatierung finden Sie in der Referenz zur Mocha API.

Der folgende Code führt beispielsweise das Test-Framework über die Befehlszeile mit aktivierter zufälliger UUID-Option und einem Zeitlimit von 1.000 ms aus:

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

Um das Testverhalten in Ihrem NodeJS-Projekt anzupassen, können Sie dieselben Variablen auch beim Erstellen des BmTestFramework in das Objekt config übergeben:

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