在开发网络钩子时,您可能需要使用真实的 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});