2

如何userId为 Botkit 4.0 在 Botium 连接器中指定?

在 0.7 中,我可以BOTKIT_USERID在我的.spec.js文件中指定。

测试不同用户组的响应很有用。

4

1 回答 1

3

Botium Botkit 4.x 连接器基于Botium 通用 HTTP/JSON 连接器,因此可以完全自定义有效负载,包括用户 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\"}",
...

或者您也可以使用 UPDATE_CUSTOM 逻辑挂钩为每个测试用例设置不同的用户 ID - mytestcase.convo.txt:

my test case

#begin
UPDATE_CUSTOM BOTKIT_USER_ID|1234567

#me
hallo ...
...

在你的 botium.json 中:

...
"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_CUSTOM 逻辑挂钩,有一个未完成的拉取请求。目前,您只能在#me 部分中使用 UPDATE_CUSTOM,并且要使用用户 ID,您必须对每个 #me 部分重复此操作:

my test case

#me
hallo
UPDATE_CUSTOM BOTKIT_USER_ID|1234567
...
于 2020-01-06T12:12:31.670 回答