Перейти к содержанию

Быстрый старт c Botium

Введение

Автоматическое тестирование поможет сделать процесс разработки и тестирование ботов более эффективным и удобным. Конструктор ELMA Bot позволяет проводить автоматическое тестирование с использованем фреймворка Botium.

Чтобы начать автоматическое тестирование, необходимо выполнить следующие шаги: - Cоздать проект Botium - Настроить подключение к боту - Добавить сценарии тестирования - Запустить тесты

Проект Botium

Перед тем как приступить к работе необходимо установить Node.js.

Создайте директорию, в которой будет хранится проект с тестами и в выполните этой директории команды:

Bash
1
2
3
4
npm init -y
npm install --save-dev mocha botium-bindings botium-connector-directline3
npx botium-bindings init
npm install
После успешного запуска команд в директории будет сформирована структура проекта для запуска тестов.

Text Only
1
2
3
4
5
6
7
├── botium.json
├── package-lock.json
├── package.json
└── spec
    ├── botium.spec.js
    └── convo
        └── give_me_a_picture.convo.txt

Подключение

Чтобы настроить подключение в Botium проекте к целевому боту необходимо указать три параметра: - Идентификатор бота - Токен авторизации - Адрес сервера

Для этого отредактируем файл botium.json и заполним его настройками, используя следующий шаблон:

JSON
{
  "botium": {
    "Capabilities": {
      "PROJECTNAME": "bot",
      "CONTAINERMODE": "directline3",
      "DIRECTLINE3_SECRET": "x-token:{X_TOKEN}",
      "DIRECTLINE3_WEBSOCKET": false,
      "DIRECTLINE3_POLLINGINTERVAL": 1000,
      "DIRECTLINE3_GENERATE_USERNAME": true,
      "DIRECTLINE3_DOMAIN": "{DOMAIN}/api/v1/directline/{AGENT_STAGE_ID}",
      "WAITFORBOTTIMEOUT": 30000,
      "SCRIPTING_MATCHING_MODE": "includeIgnoreCase",
      "SCRIPTING_ENABLE_MEMORY": true
    },
    "Sources": {},
    "Envs": {}
  }
}

Необходимо обратить внимание на значения переменных DIRECTLINE3_SECRET и DIRECTLINE3_DOMAIN. Вместо шаблонных значений {X_TOKEN} и {AGENT_STAGE_ID} следует указать X-Token и Идентификатор бота соответственно. Для их получения на странице бота перейдите в Настройки бота > API. Вместо {DOMAIN} следует указать адрес сервера, в случае облачной версии ELMA Bot это будет https://client.elma-bot.ai/, а для On-Premise - имя сервера, на котором развернут ELMA Bot.

Пример для облачной версии:

JSON
"DIRECTLINE3_SECRET": "x-token:1f93c870-d8ed-4193-8100-66173128daeb",
"DIRECTLINE3_DOMAIN": "https://client.elma-bot.ai/api/v1/directline/651c000dd46851bc536d279d"

Сценарий

Директория spec/convo предназначена для хранения тест-кейсов сценариев бота, которые описаны с использованием синтаксиса BotiumScript. Чтобы описать простой тест-кейс создадим в директории spec/convo файл с названием Приветствие.convo.txt и заполним его следующим содержимым:

Text Only
Знакомство

#bot
Здравствуйте! Как вас зовут?

#me
Алексей

#bot
Рад знакомству, Алексей!

Используйте в редакторе кодировку UTF-8

Данный тест-кейс предназначен для тестирования бота (экспортировать), который имеет лишь один сценарий следующего содержания:

image

Для успешного прогона сценария рекомендуем импортировать данного бота.

На шаге 1 был создан сценарий по умолчанию spec/convo/give_me_a_picture.convo.txt, его следует удалить, так как он не актуален для нашего примера.

Запуск

В директории проекта тестов выполните команду

Bash
npm run mocha

В консоли можно будет увидеть результат успешного выполнения теста

Bash
1
2
3
4
5
  bot
     Знакомство (1114ms)


  1 passing (2s)

Дальнейшие шаги

Для более глубоко знакомства с возможностями автоматического тестирования рекомендуем ознакомиться с документацией Botium.