Javascript Botium Botkit 4.0:指定用户ID
如何在Botkit 4.0的Botium连接器中指定Javascript Botium Botkit 4.0:指定用户ID,javascript,botkit,botium-box,Javascript,Botkit,Botium Box,如何在Botkit 4.0的Botium连接器中指定userId 在0.7中,我能够在.spec.js文件中指定BOTKIT\u USERID 测试不同用户组的响应非常有用。基于,因此可以完全自定义有效负载,包括用户id 默认情况下,消息有效负载由消息文本和唯一生成的用户id组成: { "text": "{{msg.messageText}}", "user": "{{botium.conversationId}}", "type": "message"} 您可以在botium.json中更改
userId
在0.7中,我能够在.spec.js
文件中指定BOTKIT\u USERID
测试不同用户组的响应非常有用。基于,因此可以完全自定义有效负载,包括用户id
默认情况下,消息有效负载由消息文本和唯一生成的用户id组成:
{ "text": "{{msg.messageText}}", "user": "{{botium.conversationId}}", "type": "message"}
您可以在botium.json中更改此选项:
...
"BOTKIT_4_0_BODY_TEMPLATE": "{ \"text\": \"{{msg.messageText}}\", \"user\": \"my-user-id\", \"type\": \"message\"}",
...
...
"BOTKIT_4_0_BODY_TEMPLATE": "{ \"text\": \"{{msg.messageText}}\", \"user\": \"{{msg.BOTKIT_USER_ID}}{{^msg.BOTKIT_USER_ID}}my-default-user-id{{/msg.BOTKIT_USER_ID}}\", \"type\": \"message\"}",
...
或者,您也可以使用UPDATE_自定义逻辑钩子为每个测试用例使用不同的用户id—mytestcase.conva.txt:
my test case
#begin
UPDATE_CUSTOM BOTKIT_USER_ID|1234567
#me
hallo ...
...
在您的botium.json中:
...
"BOTKIT_4_0_BODY_TEMPLATE": "{ \"text\": \"{{msg.messageText}}\", \"user\": \"my-user-id\", \"type\": \"message\"}",
...
...
"BOTKIT_4_0_BODY_TEMPLATE": "{ \"text\": \"{{msg.messageText}}\", \"user\": \"{{msg.BOTKIT_USER_ID}}{{^msg.BOTKIT_USER_ID}}my-default-user-id{{/msg.BOTKIT_USER_ID}}\", \"type\": \"message\"}",
...
更新
除了包含所有转义字符的文本字符串,还可以在botium.JSON中使用文本JSON来指定正文模板:
...
"BOTKIT_4_0_BODY_TEMPLATE": {
"text": "{{msg.messageText}}",
"user": "my-user-id",
"type": "message"
},
...
更容易阅读。取决于您的设置
更新2
要使用#begin部分中的UPDATE_自定义逻辑挂钩,有一个突出的问题。目前,您只能在#me部分使用UPDATE#u自定义,要使用用户id,您必须在每个#me部分重复此操作:
my test case
#me
hallo
UPDATE_CUSTOM BOTKIT_USER_ID|1234567
...
说真的,JSON的模板?使用JSON.stringify有什么错?JSON.stringify没有错。但不知何故,必须将会话数据合并到json数据中,使用mustache模板是最好的选择之一。有其他选择吗?太好了。但是
UPDATE\u CUSTOM
不适合我。它只返回“我的默认用户id”。抱歉,这太早了。本请购单的一部分是,可在#开始部分使用更新#自定义。你现在只能在#me部分使用它-更新我的回复。