2016-12-27 2 views
6

Я работаю над своим первым ботом с Microsoft Bot Framework с ASP.NET.Автотест для Microsoft Bot Framework

После ручного тестирования с помощью эмулятора бота, я ищу лучший способ создания автоматического тестирования для бота.

Учитывая две проблемы:

  1. Что является лучшим инструментом для автоматизации таких испытаний?
  2. Каков наилучший метод для проверки диалога, который может возвращать разные ответы на один и тот же вход?

ответ

7

Один из вариантов выполняет функциональные тесты с использованием DirectLine. Предостережение заключается в том, что бот должен быть размещен, но он мощный. Посмотрите, как это работает. AzureBot tests project.

Другая альтернатива - это то, что делает команда BotFramework для некоторых своих модульных тестов.

Если вы используете диалоговые окна, вы можете взглянуть на EchoBot unit tests, поскольку они просты в обращении.

Если вы используете Chain, а затем посмотрите, как они используют метод AssertScriptAsync.

Если вы ищете способ макете Луис службы, см this.

+0

Действительно, эта ссылка https://github.com/Microsoft/BotBuilder/tree/master/CSharp/Tests/Microsoft.Bot. Sample.Tests лучше показать модульное тестирование, поскольку оно содержит некоторые реальные примеры. – OmG

3

Возможно, вы захотите рассмотреть Selenium. Selenium - это программное обеспечение для автоматизации веб-браузера, позволяющее вам писать тесты, которые программно читать и записывать в DOM на веб-странице. С Селеном скриптом вы можете:

  • Войти на любом канале, который предоставляет веб-клиент (и большинство из них делает: WebChat, телеграммы, Skype, Facebook, к примеру)
  • начать разговор с ботом
  • выполните такие операции, как сообщение в чате и дождитесь ответа
  • проверить, отвечает ли ответ тем, что вы ожидали.
1

Для автоматического тестирования ботов в Node.js с использованием ConsoleConnector так же, как тесты в BotBuilder на GitHub хорошо работают, например, посмотрите на https://github.com/Microsoft/BotBuilder/blob/master/Node/core/tests/localization.js:

var assert = require('assert'); 
var builder = require('../'); 

describe('localization', function() { 
this.timeout(5000); 
it('should return localized prompt when found', function (done) { 
    var connector = new builder.ConsoleConnector();  
    var bot = new builder.UniversalBot(connector); 
    bot.dialog('/', function (session, args) { 
     session.send('id1'); 
    }); 
    bot.on('send', function (message) { 
     assert(message.text === 'index-en1'); 
     done(); 
    }); 
    connector.processMessage('test'); 
}); 

... и т.д. ...

Смежные вопросы