При разработке веб-перехватчика вы можете протестировать его с реальными полезными нагрузками 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});