如何自动测试QnA Maker机器人(机器人框架V4,C#)?

如何自动测试QnA Maker机器人(机器人框架V4,C#)?,c#,botframework,azure-pipelines,qnamaker,C#,Botframework,Azure Pipelines,Qnamaker,我正在基于QnA Maker和C#上的Microsoft Bot Framework V4构建机器人。我有几个知识库,我想验证机器人是否回答了我的问题。有没有办法自动测试这种类型的机器人 是否有可能在Azure管道中实现这种自动化测试过程?我无法帮助您使用C#特别是,但我正在使用我的nodejs机器人进行这种类型的测试,因此这可能会有所帮助。我回答了你们中的另一个问题,其中我给出了用于测试的特定nodejs代码。这个答案将更加关注自动化测试和使用Azure管道执行测试的方法 我使用mocha作为

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

是否有可能在Azure管道中实现这种自动化测试过程?

我无法帮助您使用C#特别是,但我正在使用我的nodejs机器人进行这种类型的测试,因此这可能会有所帮助。我回答了你们中的另一个问题,其中我给出了用于测试的特定nodejs代码。这个答案将更加关注自动化测试和使用Azure管道执行测试的方法

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

无论如何,我希望我在nodejs中的方法可以在C#中为您提供。我想提到的是,实际上有两种不同的方法可以用来实现测试

  • 创建一个测试机器人适配器并模拟整个机器人,专门测试识别出的话语,将其发送给QnA Maker,根据需要处理响应,并将响应发布给用户(并验证响应内容)
  • 直接向QnA maker进行REST调用并验证结果
  • 如果您担心bot正确处理活动、在正确的时间调用QnA Maker连接器、正确解析响应并获得正确的答案,请使用选项1。如果您只是想确保QnA服务正常运行并返回预期结果,可以使用方法2。就我个人而言,我使用方法1,但我模拟webservice响应(使用npm库中的nock),所以我根本不测试QnA Maker,只测试机器人。在您的管道中进行实时测试(如果您的测试确定是否创建了发布)可能会有问题

    如果你检查了你的答案,这应该给你选择1所需的方法。对于选项2,我建议使用Azure函数,只需编写您自己的测试,就可以对QnA Maker进行其余调用并验证结果


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

    我记得曾帮助解决过一个类似的问题,但我不记得是谁问的。这个被删除的问题是你的吗?你还在做这个吗?比尔·奥弗顿的回答可以接受吗?这很有帮助!谢谢你提供的所有信息和建议