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