使用 Botium,我将能够处理不同的响应集吗?我的意思是不同的计数。
有时我得到两个响应,有时我对相同的输入文本只得到一个响应。聊天机器人将在成功时返回两个响应,在失败时返回一个响应。
如果我总是得到一个响应,但只有响应值不同,我可以使用 utterances 文件添加所有这些不同的响应。
但是如果计数本身会有所不同,我该如何处理呢?
使用 Botium,我将能够处理不同的响应集吗?我的意思是不同的计数。
有时我得到两个响应,有时我对相同的输入文本只得到一个响应。聊天机器人将在成功时返回两个响应,在失败时返回一个响应。
如果我总是得到一个响应,但只有响应值不同,我可以使用 utterances 文件添加所有这些不同的响应。
但是如果计数本身会有所不同,我该如何处理呢?
这是两个不同的测试用例,应该这样处理 - 两个不同的 convos。从测试自动化的角度来看,当使用聊天机器人跟踪给定的脚本时,无法决定脚本是应该继续还是应该等待额外的响应。
例如:
#me
hello bot
#bot
hello
#bot
how are you
#me
please tell me the weather
如果机器人有时发送“你好吗”,有时不发送,Botium 应该如何知道何时应该继续发送“请告诉我天气”?它应该等待两秒钟“你好吗”?还是应该在对话继续之前等待八秒钟以等待另一个响应?
更新 20.03.2020
你不能用 Fluent 接口做你想做的事,但使用异步 BotiumDriver API 是可能的(转函数只是发送文本并接收答案)。
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 处理此问题,这里有一些示例代码: https ://repl.it/@FlorianTreml/replit-botium-bindings-albie-1