如何在测试用例上构建问题可能在 Botium-box 中有多个答案?

How to build a question on test cases may have multiple answers in Botium-box?

我创建了一个 HTTP(S)/JSON 连接器来连接我的 NLP 聊天机器人。 但是我在写测试用例的时候遇到了一个问题。 因为用户说一个问题可能有多个不同的回答。 比如我对机器人说“Hi”,机器人可能会说“Hello~guy”或者“Hello”。 因此,测试结果将失败。 This is a test result picture.

我想也许我们可以用intent来判断这个问题,或者让Botium-box加上“or”来判断。

我的聊天机器人也可以响应表单,看起来像 this,我可以点击按钮。

那么,我有两个问题想请教

  1. 如何确定意图是否使用 http(s)/json 连接器?
  2. 如何在Botium盒子上显示表单并判断聊天机器人按钮是否有效?

我看过wiki,但是我做的不好,非常感谢。

问题一

在 Botium 中有几个选项可以满足在断言聊天机器人响应时更加灵活的要求。

首先,您可以将 匹配模式 切换为不同的模式(参见 Botium Wiki)- Botium 可以在多个选项之间切换文本断言的完成方式,您甚至可以在那里使用正则表达式。默认情况下,这是 wildcardIgnoreCase,这意味着您可以使用星号进行通配符匹配:

#me
Hi

#bot
Hello*

如果答案大致相同,但有一些细微的偏差,则此方法有效。在 Botium 中推荐的方法是使用 utterance lists:不是有一个 convo 文件,而是分成一个 convo 文件和一个单独的 utterances 文件。 hello.convo.txt之前:

#me
Hi

#bot
Hello*

之后hello.convo.txt:

#me
Hi

#bot
UTT_HELLO

UTT_HELLO.utterances.txt:

UTT_HELLO
Hello
Hello guy
hi dude

现在 Botium 允许在引用此话语列表的任何地方提供这三个答案中的任何一个。您可以在 Botium in a nutshell 系列中阅读更多相关信息。

问题二

Botium 可以处理按钮、选项列表、轮播卡片等(参见 Botium Wiki), but the connector has to be prepared for this kind of content. It depends on the chatbot technology if this is supported or not - see the list of official Botium connectors

在您的情况下,由于您使用的是通用 HTTP/JSON 连接器,因此您可以尝试 SIMPLEREST_BUTTONS_JSONPATH 功能,也可以添加自己的功能request/response 钩子作为 Javascript 代码 - 参见 Botium Wiki