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

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

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

Тесты .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 в настройках своего браузера.