【问题标题】:How to automatically test a QnA Maker Bot (Bot Framework V4, C#)?如何自动测试 QnA Maker Bot (Bot Framework V4, C#)?
【发布时间】:2021-03-20 00:13:25
【问题描述】:

我正在基于 C# 上的 QnA Maker 和 Microsoft Bot Framework V4 构建机器人。我有几个知识库,我想验证机器人是否对我的问题做出了正确的回答。有没有办法自动测试这种类型的机器人?

是否有可能在 Azure Pipelines 中实现这一自动化测试流程?

【问题讨论】:

  • 我记得帮助过一个类似的问题,但我不记得是谁问的。这个被删除的问题是你的吗? stackoverflow.com/questions/66538570/…
  • 你还在做这个吗? Bill Overton 的回答可以接受吗?

标签: c# botframework azure-pipelines qnamaker


【解决方案1】:

我无法专门为您提供 C# 方面的帮助,但我正在使用我的 nodejs 机器人进行此类测试,因此这可能会有所帮助。我回答了你们中的另一个问题here,在那里我给出了我的特定 nodejs 代码进行测试。这个答案将更多地关注自动化测试和使用 Azure Pipelines 执行它的方法。

我使用 mocha 作为我的测试框架,但是如果 C# 中有类似的东西,这个方法应该可以工作。这是我的知识不完整的地方;我不知道 npm test 的 C# 等价物是什么。

无论如何,我希望我在 nodejs 中的方法可以在 C# 中为您移植。我想提一下,实际上您可以采用两种不同的方法来实施您的测试。

  1. 创建一个测试机器人适配器并模拟您的整个机器人,测试专门识别话语,将其发送到 QnA Maker,根据需要处理响应,并将响应发布给用户(并验证响应内容)。
  2. 直接对 QnA maker 进行 REST 调用并验证结果

如果您担心机器人正确处理活动、在正确的时间调用 QnA Maker 连接器、正确解析响应并获得正确答案,请使用选项 1。如果您只是想确保您的 QnA服务正在运行并返回预期结果,您可以使用方法 2。我个人使用方法 1,但我模拟了 web 服务响应(使用 npm 库中的 nock)所以我根本不测试 QnA Maker,只有机器人.在您的管道中进行实时测试(如果您的测试确定是否创建了版本)可能会出现问题。

如果您检查 other question 上的答案,那应该会为您提供选项 1 所需的方法。对于选项 2,我建议使用 Azure 函数并编写您自己的测试以对 QnA Maker 进行 REST 调用并验证结果。

这些测试中的任何一个都可以在 Azure Pipelines 中完成。对于 nodejs/option 1,我只运行 npm test 命令,该命令配置为执行我的所有测试文件。如果任何测试失败,管道就会失败,并且(根据我的配置)不会创建任何版本。我不确定 C# 的等价物是什么。对于选项 2,老实说,我什至不担心将其放入管道中,因为它独立于您的机器人代码。只需在 Azure Functions(如果您使用该功能)或您想要的任何执行触发器中设置您的测试计划,并获得一些可操作的输出。例如。我在 Azure Functions 中有一个实时集成测试器,这是一个类似的概念,它会根据结果和状态变化发送服务关闭和服务恢复消息。

【讨论】:

  • 这很有帮助!感谢您提供所有信息和建议
猜你喜欢
  • 2022-12-21
  • 2017-11-01
  • 2017-08-28
  • 1970-01-01
  • 1970-01-01
  • 2019-06-04
  • 2019-07-27
  • 2020-06-04
  • 1970-01-01
相关资源
最近更新 更多