Testowanie webhooka

Podczas tworzenia webhooka możesz przetestować go za pomocą ładunków firmowych wiadomości. Zamiast ręcznie tworzyć testy, możesz użyć platformy testu wiadomości biznesowych, aby przetestować webhooka z różnymi typami ładunków JSON, które webhook może otrzymywać w środowisku produkcyjnym.

Aby rozpocząć, potrzebujesz adresu URL działającego instancji webhooka. Platformę testową można łatwo zainstalować, a webhooka możesz przetestować za pomocą jednego polecenia.

Pierwsze kroki

Instalowanie platformy

Najłatwiejszym sposobem zainstalowania platformy jest menedżer pakietów pakietu NPM. Platforma jest opublikowana w rejestrze pakietów NPM, dzięki czemu możesz ją zainstalować za pomocą npm:

npm install -g bm-test-framework

Przeprowadź testy

Po zainstalowaniu pakietu możesz podać adres URL webhooka jako zmienną środowiskową i uruchom wszystkie testy za pomocą tego polecenia:

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

Wyniki testu testowego wyglądają tak:

  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

W tym przykładowym wyniku wszystkie przypadki testowe zostały zaliczone.

Jeśli webhook nie przejdzie do jednego z przypadków testowych, oznacza to, że Twój webhook nie odpowiada 200 OK na ładunek JSON danego przypadku testowego. W takim przypadku grafika testowa zawiera informacje o błędach, które ułatwiają debugowanie. Więcej informacji o określonych przypadkach testowych znajdziesz w platformie README.

Użyj platformy w projekcie NodeJS

Aby użyć platformy z własnego kodu w projekcie Node.js lub z pakietu testowego Mocha, najpierw zainstaluj pakiet jako zależność programistyczną:

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

Po zainstalowaniu możesz utworzyć obiekt BmTestFramework, aby zarządzać testami:

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

Tablica elementów payloads zawiera wszystkie przypadki testowe. Aby przeprowadzić określony test, możesz użyć metody sendPayload. Na przykład ten kod uruchamia pierwszy test w ramach platformy:

bmTestFramework.sendPayload(bmTestFramework.payloads[0])

Skonfiguruj testy

Oprócz wymaganej zmiennej środowiskowej BMTF_ENDPOINT_URL możesz też ustawić opcjonalne zmienne środowiskowe, aby dostosować działanie testowe:

Zmienna środowiskowa Nazwa pola konfiguracji Typ Opis
BMTF_RANDOM_UUID Losowy identyfikator użytkownika wartość logiczna Jeśli ustawisz wartość Prawda, ustawiasz losowy identyfikator UUID w prawidłowym formacie. Jeśli ma wartość Fałsz, wszystkie identyfikatory rozmów są ustawione na „"Conversation-ID"”.
BMTF_TIMEOUT przekroczono limit czasu Liczba lub sformatowany ciąg czasowy Ustawia czas oczekiwania w milisekundach dla każdego przypadku testowego. Domyślny limit czasu oczekiwania na test to 2000 ms. Szczegółowe informacje o typach i formatowaniu znajdziesz w dokumentacji interfejsu Mocha API.

Na przykład ten kod uruchamia platformę testową z wiersza polecenia z włączoną opcją losowego identyfikatora UUID i limitem czasu oczekiwania 1000 ms:

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

Aby dostosować działanie testowe w projekcie Node.js, możesz też utworzyć te same zmienne w obiekcie config podczas tworzenia obiektu BmTestFramework:

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