2016-12-27 68 views
6

我現在正在使用Microsoft Bot Framework與ASP.NET一起工作。Microsoft Bot Framework的自動測試

使用bot模擬器進行手動測試後,我正在尋找爲bot創建自動測試的最佳方法。

考慮兩個問題:

  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是Web瀏覽器自動化軟件,允許您編寫以編程方式讀取和寫入網頁DOM的測試。隨着硒腳本,您可以:

  • 登錄上提供Web客戶端的任何通道(其中大多數做的事:網上聊天,電報,Skype和Facebook的,例如)
  • 開始對話與你的機器人
  • 執行諸如向聊天發佈消息並等待回覆等操作
  • 測試回覆是否符合您的預期。
1

對於在Node.js中自動測試機器人,使用ConsoleConnector的方式與在GitHub上的BotBuilder中的測試工作正常一樣。看看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'); 
}); 

...等...

相關問題