0

我目前正在查看 Botium Box,我想知道是否可以在每个测试用例之后向我们的端点发送额外的请求?让我给你一些关于我们如何在 Botium Box 中设置 HTTP(S)/JSON 连接器以及我们如何向我们的机器人发送信息的背景信息:

HTTP(S) 端点: https ://MyChatBotsEndpoint.com/?userinput= {{msg.messageText}}

HTTP 方法:POST

我们还通过请求构建器中的标头模板发送 cookie。像这样:

{
    "Cookie": "JSESSIONID={{context.sessionId}}"
}

响应以 JSON 形式返回。

当测试结束时(当它成功时,当它失败时),我们需要向我们的端点发送一个额外的请求。该请求的端点 URL 应如下所示:

https://MyChatBotsEndpoint.com/endsession

如前所述,标头应包含 cookie。

有没有办法在 Botium 中实现这一目标?

4

1 回答 1

0

Botium 有许多扩展点可以插入您的自定义功能。在这种情况下,我猜SIMPLEREST_STOP_HOOK是最好的选择。

编写一个小的 javascript 文件调用您的端点,并使用 botium.json 中的SIMPLEREST_STOP_HOOK功能进行注册。上下文(来自 HTTP/JSON 连接器的会话上下文)是钩子参数的一部分。

botium.json中:

...
"SIMPLEREST_STOP_HOOK": "my-stop-hook.js"
...

我的停止钩子.js:

const request = require('request')

module.exports = ({ context }) => {
  return new Promise((resolve, reject) => { 
    request({
      method: 'GET',
      uri: 'https://MyChatBotsEndpoint.com/endsession',
      headers: {
        Cookie: "JSESSIONID=" + context.sessionId
      }
    }, (err) => {
      if (err) reject(err)
      else resolve()
    })
  })
}
于 2019-12-18T16:24:56.197 回答