Протестируйте свой вебхук

При разработке веб-перехватчика вы можете протестировать его с реальными полезными нагрузками Business Messages. Вместо того, чтобы создавать тесты вручную, вы можете использовать тестовую среду Business Messages для тестирования вашего веб-перехватчика с различными типами полезной нагрузки JSON, которые ваш веб-перехватчик может получать в рабочей среде.

Для начала все, что вам нужно, — это URL-адрес работающего экземпляра вашего веб-перехватчика. Платформу тестирования легко установить, и вы можете протестировать свой веб-хук с помощью одной команды.

Начиная

Установить фреймворк

Самый простой способ установить фреймворк — с помощью менеджера пакетов NPM . Фреймворк опубликован в реестре пакетов NPM, поэтому вы можете установить его с помощью npm :

npm install -g bm-test-framework

Запустите тесты

Установив пакет, вы можете указать URL-адрес веб-перехватчика в качестве переменной среды и запустить все тесты с помощью следующей команды:

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

Результаты тестового фреймворка выглядят так:

  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

В этом тестовом прогоне все тестовые случаи пройдены.

Если ваш веб-перехватчик дает сбой в одном из тестовых случаев, это означает, что ваш веб-перехватчик не отвечает 200 OK на полезную нагрузку JSON этого тестового примера. В этом случае среда тестирования выводит информацию об ошибке, чтобы помочь вам в отладке. См. README среды тестирования, чтобы узнать больше о конкретных тестовых примерах.

Используйте фреймворк в своем проекте NodeJS.

Чтобы использовать фреймворк из собственного кода в проекте NodeJS или из набора тестов Mocha, сначала установите пакет как зависимость разработки:

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

После установки вы можете создать объект BmTestFramework для управления тестами:

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

Массив элементов payloads содержит все тестовые случаи. Вы можете использовать метод sendPayload для запуска определенного теста. Например, следующий код запускает первый тест в фреймворке:

bmTestFramework.sendPayload(bmTestFramework.payloads[0])

Настроить тесты

В дополнение к обязательной переменной среды BMTF_ENDPOINT_URL вы также можете установить дополнительные переменные среды для настройки поведения теста:

Переменная среды Имя поля конфигурации Тип Описание
BMTF_RANDOM_UUID randomUuid логический Если это правда, устанавливает идентификатор диалога в рандомизированный UUID с допустимым форматом. Если false, устанавливает для всех идентификаторов бесед значение «CONVERSATION-ID».
BMTF_TIMEOUT тайм-аут Число или форматированная строка времени Устанавливает время ожидания в миллисекундах для каждого теста. Тайм-аут по умолчанию составляет 2000 мс для каждого теста. Подробные спецификации типов и форматирования см. в справочнике API Mocha .

Например, следующий код запускает тестовую среду из командной строки с включенной опцией случайного UUID и тайм-аутом 1000 мс:

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

Чтобы настроить поведение теста в вашем проекте NodeJS, вы также можете передать те же переменные в объект config при создании BmTestFramework :

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