是否可以根据测试用例中的值将URL参数附加到端点?

时间:2019-12-18 14:45:16

标签: testing chatbot

是否可以在有用户输入和没有用户输入的情况下从测试用例向聊天机器人发送输入参数?我想到的是,我应该能够在测试用例中做到这一点:

Test case 1 

#me
Hello
INPUT_PARAMETER sttConfidence : 0.58
INPUT_PARAMETER callerCountry : GB

#bot
Hi human! I see that you sent some input parameters. Thank you!
...
...

需要将输入参数附加到端点,因此URL如下所示:

https://MyChatBotsEndpoint.com/?userinput= {{msg.messageText}}&sttConfidence = 0.58&callerCountry = GB

我们发送的值必须是字符串类型。

在Botium中能否实现?如果是,那么Botium中是否有任何本机工具可以实现这一目标,还是我们需要开发自己的功能?

编辑: 这是我添加代码段时发生的情况: Example of how input parameter merges with input message

理想情况下,我希望它看起来像这样:

This is what it looks like if I manually send &countryCaller=GB to our endpoint

1 个答案:

答案 0 :(得分:0)

其中不包含任何类似内容,但是通过逻辑钩子和HTTP / JSON请求钩子的正确组合就可以实现。

UPDATE_CUSTOM逻辑钩会将参数从convo文件复制到内部Botium消息对象:

Test case 1 

#me
Hello
UPDATE_CUSTOM QUERY_PARAM|sttConfidence|0.58
UPDATE_CUSTOM QUERY_PARAM|callerCountry|GB

#bot
Hi human! I see that you sent some input parameters. Thank you!
...

然后,SIMPLEREST_REQUEST_HOOK功能将使用一些Javascript代码使用参数来相应地调整请求网址:

...
"SIMPLEREST_REQUEST_HOOK": "if (msg.QUERY_PARAM) requestOptions.uri = requestOptions.uri + '&' + Object.keys(msg.QUERY_PARAM).map(key => key + '=' + msg.QUERY_PARAM[key]).join('&')",
...

替代方法

如果您不喜欢SIMPLEREST_REQUEST_HOOK Javascript代码,则还可以使用Mustache模板将查询参数添加到URL:

...
"SIMPLEREST_URL": "https://MyChatBotsEndpoint.com/?userinput={{msg.messageText}}&sttConfidence={{msg.QUERY_PARAM.sttConfidence}}&callerCountry={{msg.QUERY_PARAM.callerCountry}}"
...

(您将具有空参数,但是您可以根据需要排除此空参数来调整此胡子模板)。