ym88659208ym87991671
Тестирование голосового робота в Code | Документация для разработчиков

Тестирование голосового робота в Code

Обновлено 5 декабря 2023

Отладка голосового робота в редактора сценариев

В Code для SaluteBot Voice вы можете отлаживать работу голосового робота в редакторе сценариев.

Для этого используйте тестовый виджет, который позволяет отладить диалог, без тестирования в канале распространения.

Чтобы запустить голосовой робот в тестовом виджете:

  1. На панели слева откройте вкладку Разработка > Сценарии.
  2. Нажмите кнопку Запустить или используйте сочетание клавиш ALT+W.

Code соберет робот и запустит его в тестовом виджете.

При работе в тестовом виджете обращайте внимание на логи сервера. Они содержат полезную информацию о события и ошибках в голосовом роботе.

Автоматическое тестирование

Тесты .xml — файлы автоматических тестов, пишутся на языке XML. Тест представляет собой пошаговое описание взаимодействия пользователя с голосовым роботом и ожидаемых ответных реакций.

Тесты должны находиться в папке test: папка_проекта/test/ваши_тесты.xml.

Структура

Тесты имеют следующую структуру:

<test>
<test-case>
<q>Запрос пользователя</q>
<a>Ответ робота</a>
</test-case>

<test-case>
<q>Запрос пользователя</q>
<a>Ответ робота</a>
</test-case>
</test>

Вместо текста в ответе <a> можно указать стейт, в который переходит система. Для этого используется два атрибута: class и state.

Атрибут class указывает на стейт, в который запрос пользователя был классифицирован. Атрибут state — на стейт, из которого был получен ответ. Например:

<test>
<test-case>
<q>Как дела?</q>
<a state="/Offtopic/HowAreYou"/>
</test-case>
</test>

Если нужно проверить, что сначала система попадет в один стейт, а потом при помощи go! переходит в другой, то можно использовать class как атрибут, указывающий на стейт, в который система попала первым. Далее используйте state как атрибут, указывающий на стейт, в который система попадает далее.

Если после первого стейта идет последовательность переходов, они также должны быть описаны при помощи атрибута state. Например:

<test>
<test-case>
<q>Как дела?</q>
<a class="/Offtopic/HowAreYou"/>
<a state="/Offtopic/Fallback"/>
<a state="/Offtopic/HowCanIHelpYou"/>
</test-case>
</test>

class и state могут совпадать. Если проверяется один переход в стейт, целесообразнее использовать один из этих атрибутов при тестировании. Полная запись:

<test-case>
<q>Как дела?</q>
<a class="/Offtopic/HowAreYou" state="/Offtopic/HowAreYou"/>
</test-case>

Переопределение

Тесты выполняются автоматически при деплое робота, если присутствуют в папке проекта test. Это поведение можно переопределить в файле chatbot.yaml в секции tests.

Секция tests может содержать две подсекции include и exclude, каждая представляет собой список ant-шаблонов с именами файлов.

  • include — будут выполнены тесты только из тех файлов, которые попадают под шаблоны, перечисленные в этой подсекции.
  • exclude — из выполнения будут исключены все файлы, которые попадают под шаблоны, перечисленные в этой подсекции.

Например:

tests:
include:
- tests.xml
- delivery.xml
- order.xml
- cart.xml
- otherCities.xml
- sauces.xml
exclude:
- time.xml
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.