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

При разработке веб-перехватчика вы можете протестировать его с помощью реальных полезных данных 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 случайныйUuid логическое значение Если это правда, устанавливает идентификатор диалога в случайный UUID в допустимом формате. Если значение равно false, для всех идентификаторов разговоров устанавливается значение «CONVERSATION-ID».
БМТФ_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});