Automated tests Botium-处理不同的响应集

Automated tests Botium-处理不同的响应集,automated-tests,chatbot,botium-box,Automated Tests,Chatbot,Botium Box,有了Botium,我能处理不同的反应吗?我是说不同的计数 有时我得到两个响应,有时我只得到一个相同输入文本的响应。聊天机器人将在成功时返回两个响应,在失败时返回一个响应 如果我总是得到一个响应,但只有响应值不同,我可以使用话语文件添加所有这些不同的响应 但是如果计数本身不同,我该如何处理呢 这是两个不同的测试用例,应该这样处理-两个不同的车队。从测试自动化的角度来看,当使用聊天机器人跟踪给定的记录时,不可能决定记录是应该继续还是应该等待其他响应 例如: #me hello bot #bot h

有了Botium,我能处理不同的反应吗?我是说不同的计数

有时我得到两个响应,有时我只得到一个相同输入文本的响应。聊天机器人将在成功时返回两个响应,在失败时返回一个响应

如果我总是得到一个响应,但只有响应值不同,我可以使用话语文件添加所有这些不同的响应


但是如果计数本身不同,我该如何处理呢

这是两个不同的测试用例,应该这样处理-两个不同的车队。从测试自动化的角度来看,当使用聊天机器人跟踪给定的记录时,不可能决定记录是应该继续还是应该等待其他响应

例如:

#me
hello bot

#bot
hello

#bot
how are you

#me
please tell me the weather
若机器人有时会发送“你好”信息,有时却不发送,那个么Botium如何知道何时应该继续发送“请告诉我天气情况”?要等两秒钟吗?你好吗?还是应该等待8秒钟,等待另一个响应,然后再继续对话

更新20.03.2020

使用Fluent接口无法实现所需的功能,但使用异步BotiumDriver API,turn函数可能只是发送文本并接收答案

const driver = new BotDriver()
const container = await driver.Build()
await container.Start()

let answer = await turn(container, "order number 1")
if (answer.startsWith("here are the details for order")) {
  await turn(container, "thank you")
} else {
  await turn(container, "thanks for nothing")
}

作为如何使用Botium Core处理此问题的展示,以下是一些示例代码:

场景-1 me发票10001 bot的状态是什么bot发票是bot更多详细信息场景-2-----me发票10001 bot的状态是什么发票状态不可用bot应提供该句柄,因此,我们可以根据初始响应动态地告诉Botium是否等待。在我的情况下,如果最初的响应是发票状态不可用,我知道不会有更多的响应。除非我能告诉Botium,至少Botium核心应该有一个规定。我们希望“waitForBot”中应该有一个“Fluent”的句柄,我们可以使用它来waitForBot或根据初始响应继续下一个语句。目前,如果我们必须使用肉毒杆菌,一切都应该事先决定。动态创建对话总是更好的,因为有外部因素决定聊天机器人的响应方式。聊天机器人正在发展。