開發 Webhook 時,建議您先使用實際的 Business 訊息酬載來進行測試。您可以使用 Business Messages 測試架構,透過 Webhook 在實際工作環境中收到的各種 JSON 酬載類型測試 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 | 隨機 Uuid | 布林值 | 如為 true,則以有效格式將對話 ID 設為隨機 UUID。設為 false 時,請將所有對話 ID 設為「Conversation-ID」。 |
BMTF_TIMEOUT | timeout | 數字或格式化的時間字串 | 設定每個測試案例的逾時時間 (以毫秒為單位)。每個測試案例的預設逾時設定為 2000 毫秒。如需詳細類型和格式規格,請參閱 Mocha API 參考資料。 |
例如,以下程式碼會在啟用隨機 UUID 選項且逾時為 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});