【问题标题】:Auto testing for Microsoft Bot Framework [closed]Microsoft Bot Framework 的自动测试 [关闭]
【发布时间】:2016-12-27 16:34:13
【问题描述】:

我现在正在使用 Microsoft Bot Framework 和 ASP.NET 开发我的第一个机器人。

在使用机器人模拟器手动测试后,我正在寻找为机器人创建自动测试的最佳方法。

考虑两个问题:

  1. 自动化此类测试的最佳工具是什么?
  2. 测试可以对同一输入返回不同答案的对话框的最佳方法是什么?

【问题讨论】:

    标签: c# azure testing automated-tests botframework


    【解决方案1】:

    另一种方法是使用 DirectLine 进行功能测试。需要注意的是,该机器人需要托管,但它很强大。查看AzureBot tests project 了解其工作原理。

    另一种选择是做 BotFramework 团队正在为他们的一些单元测试做的事情。

    如果您使用对话框,可以查看EchoBot unit tests,因为它们很容易理解。

    如果你使用的是 Chain,那么看看他们是如何使用 AssertScriptAsync 方法的。

    如果您正在寻找模拟 Luis 服务的方法,请参阅 this。

    【讨论】:

    【解决方案2】:

    您可能需要考虑Selenium。 Selenium 是 Web 浏览器自动化软件,允许您编写以编程方式读取和写入网页 DOM 的测试。使用 Selenium 脚本,您可以:

    • 在任何提供网络客户端的渠道上登录(大多数都这样做:例如,WebChat、Telegram、Skype、Facebook)
    • 开始与您的机器人对话
    • 执行操作,例如在聊天中发布消息并等待回复
    • 测试回复是否符合您的预期。

    【讨论】:

      【解决方案3】:

      对于 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');
      });
      

      ...等等...

      【讨论】:

        猜你喜欢
        • 2019-05-08
        • 1970-01-01
        • 1970-01-01
        • 2017-02-26
        • 2023-03-11
        • 2018-12-29
        • 1970-01-01
        • 2019-02-04
        • 2016-09-05
        相关资源
        最近更新 更多