测试网络钩子

在开发网络钩子时,您可能需要使用真实的 Business 消息载荷。您无需手动创建测试,只需使用 消息测试框架,用于测试使用各种 JSON 载荷类型的 webhook 您的网络钩子在生产环境中可能收到的动态。

首先,您只需提供一个指向 网络钩子的运行实例测试框架易于安装, 只需一个命令即可测试网络钩子

使用入门

安装框架

安装该框架的最简单方法是使用 NPM 软件包管理器。 该框架已在 NPM 软件包注册表中发布,因此您可以安装它 使用 npm

npm install -g bm-test-framework

运行测试

安装软件包后,您可以提供网络钩子网址作为环境 变量,并使用以下命令运行所有测试:

BMTF_ENDPOINT_URL=<Your webhook URL> bm-test-framework

测试框架的结果如下所示:

  Sending payloads to <Your webhook URL>
      ✔ authentication-request.json should return 200
      ✔ event-receive.json should return 200
      ✔ image-message.json should return 200 (862ms)
      ✔ read-receipt.json should return 200
      ✔ suggestion-message.json should return 200
      ✔ text-message.json should return 200 (134ms)
      ✔ text-with-dialogflow-response.json should return 200 (128ms)
      ✔ user-receipt.json should return 200

在此示例测试运行中,所有测试用例均已通过。

如果您的 webhook 在一个测试用例中失败,则意味着您的 webhook 使用 200 OK 响应该测试用例的 JSON 载荷。在这种情况下, 框架会输出错误信息以帮助您进行调试。请参阅 测试框架 README 详细了解具体的测试用例

在 NodeJS 项目中使用框架

如需在 NodeJS 项目中您自己的代码内使用该框架,或者从 先在 Mocha 测试套件中安装该软件包, 依赖项:

npm install --save-dev bm-test-framework

安装后,您可以创建一个 BmTestFramework 对象来管理测试:

const BmTestFramework = require('bm-test-framework');
const bmTestFramework = new BmTestFramework({endpointURL: <Your webhook URL>});

payloads 成员数组包含所有测试用例。您可以使用 sendPayload 方法用于运行特定测试。例如,以下代码 运行框架中的第一个测试:

bmTestFramework.sendPayload(bmTestFramework.payloads[0])

配置测试

除了必需的 BMTF_ENDPOINT_URL 环境变量外,您还可以 还可以设置可选的环境变量来自定义测试行为:

环境变量 配置字段名称 类型 说明
BMTF_RANDOM_UUID randomUuid 布尔值 如果为 true,则将对话 ID 设置为格式有效的随机 UUID。如果为 false,则将所有对话 ID 设置为“CONVERSATION-ID”。
BMTF_TIMEOUT 超时 数字或格式化的时间字符串 为每个测试用例设置超时时间(以毫秒为单位)。每个测试用例的默认超时时间为 2000 毫秒。如需详细了解类型和格式设置规范,请参阅 Mocha API 参考文档

例如,以下代码从命令行运行测试框架 启用随机 UUID 选项且超时设置为 1000 毫秒:

BMTF_ENDPOINT_URL=<Your webhook URL> BMTF_TIMEOUT=1000 BMTF_RANDOM_UUID=true bm-test-framework

如需在 NodeJS 项目中自定义测试行为,您还可以将 将相同的变量复制到 config 对象中,BmTestFramework

const bmTestFramework = new BmTestFramework({endpointURL: <Your webhook URL>, randomUuid: true, timeout: 1000});