我正在构建基于QnA制造商和C#上的V4的机器人。我有几个知识库,我想验证机器人对我的问题做出了正确的回答。有办法自动测试这种类型的机器人吗?
是否有可能在Azure管道中实现这一自动化测试过程?
发布于 2021-03-19 16:13:25
我不能专门帮助您使用C#,但是我正在使用nodejs进行这种类型的测试,所以这可能会有所帮助。我回答了你们中的另一个问题here,在这里我给出了我的特定nodejs测试代码。这个答案将更多地关注自动化测试和使用Azure管道来执行它的方法。
我使用mocha作为我的测试框架,但是如果C#中有类似的东西,这个方法应该可以工作。这就是我的知识不完整的地方;我不知道C#等同于npm test是什么。
无论如何,我希望我在nodejs中的方法可以在C#中转换。我想提一下,实际上有两种不同的方法可以用来实现您的测试。
如果您关心的是bot正确地处理活动、在正确的时间调用QnA Maker连接器、正确解析响应和获得正确的答案,请使用选项1。如果您只想确保您的QnA服务正常运行并返回预期的结果,您可以使用方法2。我个人使用方法1,但我模拟all服务响应(使用npm库中的nock ),所以我根本不测试QnA Maker,只测试bot。在管道中进行活动测试(如果测试确定是否创建了版本)可能会有问题。
如果您检查您的other question上的答案,这将为您提供选项1所需的方法。对于选项2,我建议使用Azure函数,只需编写您自己的测试,向QnA Maker发出REST调用并验证结果。
这两种测试都可以在Azure管道中进行。对于nodejs/Option1,我只运行npm test命令,该命令被配置为执行我的所有测试文件。如果任何测试失败,管道就会失败,并且(根据我的配置)不会创建任何版本。我不知道C#的等价物是什么。对于选项2,老实说,我甚至不会担心将它放到管道中,因为它独立于您的bot代码。只需在Azure函数中设置测试计划(如果使用的话)或任意执行触发器,并具有一些可操作的输出即可。例如,我在Azure函数中有一个实时集成测试器,这是一个类似的概念,它根据结果和状态的变化发送服务下行和服务恢复消息。
https://stackoverflow.com/questions/66701297
复制相似问题