如何在每个测试用例后向端点发送附加请求

How to send an additional request to endpoint after each test case

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

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

HTTP 方法:POST

我们还通过请求生成器中的 header 模板发送 cookie。像这样:

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

响应在 JSON 中返回。

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

https://MyChatBotsEndpoint.com/endsession

header 应该包括之前描述的 cookie。

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

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

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

botium.json:

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

我的停止-hook.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()
    })
  })
}