Testowanie webhooka

Podczas tworzenia webhooka warto przetestować go w aplikacji Business Ładunki wiadomości. Zamiast ręcznie tworzyć testy, możesz użyć funkcji Platforma testowa Wiadomości do testowania webhooka z różnymi typami ładunków JSON webhook może otrzymać informację o wersji produkcyjnej.

Na początek wystarczy podać adres URL z działającą instancją webhooka. Platformę do testów można łatwo zainstalować. możesz przetestować webhooka jednym poleceniem.

Pierwsze kroki

Instalowanie platformy

Najłatwiejszym sposobem zainstalowania platformy jest użycie menedżera pakietów NPM. Platforma jest opublikowana w rejestrze pakietów NPM, więc możesz ją zainstalować z użytkownikiem npm:

npm install -g bm-test-framework

Przeprowadzanie testów

Po zainstalowaniu pakietu możesz podać adres URL webhooka jako środowisko i uruchom wszystkie testy tym poleceniem:

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

Wyniki platformy testowej 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 uruchomieniu testowym wszystkie zostały zaliczone.

Jeśli w jednym z przypadków testowych webhook przestanie działać, oznacza to, że nie zrobi tego. wysyłać odpowiedź 200 OK do ładunku JSON tego przypadku testowego. W takim przypadku test platforma wyświetla informacje o błędach, które ułatwiają debugowanie. Zobacz platforma README do testów aby dowiedzieć się więcej o konkretnych przypadkach testowych.

Używanie platformy w projekcie NodeJS

Aby użyć platformy z poziomu własnego kodu w projekcie NodeJS lub w ramach pakietu testów Mocha, najpierw zainstaluj ten pakiet jako program zależność:

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 członków payloads zawiera wszystkie przypadki testowe. Za pomocą sendPayload, aby uruchomić określony test. Na przykład ten kod przeprowadza pierwszy test w ramach platformy:

bmTestFramework.sendPayload(bmTestFramework.payloads[0])

Konfigurowanie testów

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

Zmienna środowiskowa Nazwa pola konfiguracji Typ Opis
BMTF_RANDOM_UUID randomUuid wartość logiczna Jeśli ustawiona jest wartość „prawda”, identyfikator rozmowy jest ustawiany na losowy identyfikator UUID w prawidłowym formacie. Jeśli ma wartość Fałsz, wszystkie identyfikatory wątków ustawiają na „CONVERSATION-ID”.
BMTF_TIMEOUT czas oczekiwania Liczba lub sformatowany ciąg znaków czasu Ustawia czas oczekiwania w milisekundach dla każdego przypadku testowego. Domyślny limit czasu wynosi 2000 ms dla każdego przypadku testowego. Szczegółowe specyfikacje typów i formatowania znajdziesz w dokumentacji interfejsu Mocha API.

Na przykład ten kod uruchamia platformę testową z poziomu wiersza poleceń z włączoną opcją losowego identyfikatora UUID i limitem czasu wynoszącym 1000 ms:

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

Aby dostosować działanie testu w projekcie NodeJS, możesz też przekazać do obiektu config podczas tworzenia obiektu BmTestFramework:

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