測試 Webhook

開發 Webhook 時,您可能會想透過商家實際執行測試 訊息酬載。除了手動建立測試 使用訊息測試架構,使用各種 JSON 酬載類型測試 Webhook 您的 Webhook 可能會在正式環境中接收

首先,您只需備妥 看看是 Webhook 的運作中執行個體測試架構易於安裝 您可以使用單一指令測試 Webhook

開始使用

安裝架構

如要安裝架構,最簡單的方法是使用 NPM 套件管理工具。 此架構已發布至 NPM 套件註冊資料庫,因此您可以安裝 搭配 npm

npm install -g bm-test-framework

執行測試

安裝套件之後,您就能提供 Webhook 網址做為環境 變數,並使用下列指令執行所有測試:

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 參考資料

舉例來說,以下程式碼會從指令列執行測試架構 且逾時設定為 1000 毫秒:

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

如要自訂 NodeJS 專案中的測試行為,您也可以傳送 建立 BmTestFramework 時,將相同變數放入 config 物件:

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