Протестировать свой сценарий можно следующими способами:
- Онлайн * с помощью приложения Салют или собственного устройства;
- Офлайн * в виде локального тестирования.
Тестирование онлайн
Протестировать сценарий можно через приложение Салют или собственное устройство. Для этого:
-
Локально запустите смартап с помощью команды:
python3 manage.py run_app -
Передайте в интернет порт сервера. Значение по умолчанию * 8000. При отсутствии внешнего IP-адреса можно использовать специальные сервисы. Ниже представлен пример получения IP через Ngrok :
-
Зарегистрируйте аккаунт на ngrok для получения токена.
-
Скачайте и распакуйте бинарный файл для своей системы — ngrok.
-
Запустите ngrok:
./ngrok http 8000
-
-
Перейдите в свой смартап через Studio и укажите в поле "Настройки вебхука" https адрес, который был получен в результате выполнения предыдущего пункта. Сохраните изменения.

-
Убедитесь, что вы заходите в Studio по тому же Сбер ID, что и на устройстве, с которого хотите протестировать свой сценарий.
-
Скажите ассистенту: «Запусти
<имя вашего смартапа>».
Если все шаги выполнены верно, то после голосовой команды запустится сценарий run_app.
Тестирование офлайн
Смартап можно протестировать локально с помощью встроенного нормализатора. Для этого запустите смартап для локального тестирования с помощью команды:
python3 manage.py local_testing
В запущенной консоли можно:
- просматривать логи и ответы вашего приложения;
- вводить сообщения от имени пользователя, которые будут передаваться в текущий сценарий.
По умолчанию всегда выбирается первый сценарий. Чтобы поменять сценарий, нужно воспользоваться специальной командой, которая вводится в консоли вместо сообщения от пользователя:
show_scenarios* показывает все доступные в вашем приложении сценарии;show_envs* показывает все доступные переменные и настройки, которые можно менять с помощью следующей команды;set* выставляет указанной переменной или настройке выбранное значение.
Например, команда ниже поменяет значение переменной intent на run_app, и вместо выбранного по умолчанию сценария сообщения будут попадать в сценарий run_app.
set intent run_app
Функциональные тесты
Вы можете автоматизировать тестирование смартапа с помощью функциональных тестов. Такие тесты описываются в json-файлах по определенному шаблону. Чтобы создать папку со сгенерированными шаблонами тестовых файлов, выполните команду:
python3 manage.py tests --gen <имя новой папки с тестами>
Каждый тестовый файл содержит хотя бы один тест-кейс, в котором есть список сообщений и может быть задано начальное состояние пользователя. Список сообщений — это последовательность объектов с полями request и response. На основе значения поля request формируется запрос в смартап, а полученный ответ сравнивается со значением поля response. Для выполнения всех тестов выполните команду:
python3 manage.py tests --run <имя папки с тестами>