Поля набора диалогов
Файл с набором диалогов должен иметь все следующие поля:
Другие поля в файле игнорируются.
testCase
Имя тест-кейса, к которому относится шаг.
Тест-кейс может иметь несколько шагов.
В этом случае указывайте у шагов одинаковое значение в поле testCase
.
Шаги тест-кейса выполняются в том порядке, в котором они указаны в файле. Если один из шагов неуспешный, то следующие шаги тоже считаются неуспешными и не выполняются.
Пример: тест-кейс из нескольких шагов
- Таблица
- CSV
testCase | comment | request | expectedResponse | expectedState | skip | preActions |
---|---|---|---|---|---|---|
weather | /start | /Start | ||||
weather | привет | Привет, привет! | /Hello | |||
weather | Какая погода? | /Hello/Weather |
testCase ,comment ,request ,expectedResponse ,expectedState ,skip ,preActions
weather , ,/start , ,/Start , ,
weather , ,привет ,"Привет, привет!" ,/Hello , ,
weather , ,Какая погода? , ,/Hello/Weather , ,
Тест-кейс weather
состоит из трех шагов:
- Пользователь пишет «/start».
Ожидаемая реакция: бот перейдет в стейт
/Start
. - Пользователь пишет «привет».
Ожидаемая реакция: бот перейдет в стейт
/Hello
и ответит «Привет, привет!». - Пользователь пишет «Какая погода?».
Ожидаемая реакция: бот перейдет в стейт
/Hello/Weather
.
Если поле не заполнено, то используется случайный идентификатор.
comment
Комментарий к шагу. Поле заполнять необязательно.
request
Запрос пользователя, на который должен реагировать бот.
expectedResponse и expectedState
Реакция бота:
-
expectedResponse
— ожидаемый текст ответа бота.Бот может давать несколько ответов подряд:
-
В одном стейте:
state: Hello
a: Привет!
a: Как дела? -
При переходе по стейтам:
state: Hello
a: Привет!
go!: /Question
state: Question
a: Как дела?
В этих случаях указывайте в поле
expectedResponse
ответы через пробел:Привет! Как дела?
-
-
expectedState
— первый стейт, в который должен перейти бот. Указывайте полный путь. Путь должен начинаться с/
.
У шага обязательно должно быть заполнено хотя бы одно из этих полей.
Во время тестирования проверяются только заполненные поля. Если ожидаемые значения совпали с полученными, то шаг считается успешным.
skip
Пропуск шага.
Возможные значения: TRUE
, FALSE
(значение по умолчанию). Регистр не учитывается.
Если указано TRUE
, то шаг не выполняется и не учитывается при оценке.
preActions
Имя тест-кейса, шаги которого будут выполнены перед текущим шагом.
Шаги из preActions
:
- не проверяются и не влияют на оценку;
- всегда выполняются, даже если у них в поле
skip
указаноTRUE
.
Пример использования preActions
- Таблица
- CSV
testCase | comment | request | expectedResponse | expectedState | skip | preActions |
---|---|---|---|---|---|---|
hello | /start | /Start | ||||
hello | привет | Привет, привет! | /Hello | |||
weather | Какая погода? | /Hello/Weather | hello | |||
alarm | Поставь будильник | /Hello/Alarm | hello |
testCase ,comment ,request ,expectedResponse ,expectedState ,skip ,preActions
hello , ,/start , ,/Start , ,
hello , ,привет ,"Привет, привет!" ,/Hello , ,
weather , ,Какая погода? , ,/Hello/Weather , ,hello
alarm , ,Поставь будильник , ,/Hello/Alarm , ,hello
Чтобы узнать погоду или поставить будильник, пользователь сначала должен написать «/start» и «привет». Чтобы не добавлять эти шаги в тест-кейсы weather
и alarm
, укажите их в тест-кейсе hello
:
- Пользователь пишет «/start».
Ожидаемая реакция: бот перейдет в стейт
/Start
. - Пользователь пишет «привет».
Ожидаемая реакция: бот перейдет в стейт
/Hello
и ответит «Привет, привет!».
Теперь вы можете использовать эти шаги перед тест-кейсами weather
и alarm
с помощью поля preActions
.
Тест-кейс weather
:
- Выполняются шаги
preActions
:- Пользователь пишет «/start».
- Пользователь пишет «привет».
- Пользователь пишет «Какая погода?».
Ожидаемая реакция: бот перейдет в стейт
/Hello/Weather
.
Тест-кейс alarm
:
- Выполняются шаги
preActions
:- Пользователь пишет «/start».
- Пользователь пишет «привет».
- Пользователь пишет «Поставь будильник».
Ожидаемая реакция: бот перейдет в стейт
/Hello/Alarm
.
Поле заполнять необязательно.