開發 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});