Webhook の開発中に、実際の Business API でテストすることをおすすめします メッセージ ペイロード。テストを手動で作成する代わりに、Business API を使用して さまざまな JSON ペイロード タイプで Webhook をテストするためのメッセージ テスト フレームワーク 受け取る場合があります
必要なのは、 Webhook のインスタンスを 自動的に作成しますテスト フレームワークは簡単にインストールでき、 コマンド 1 つで Webhook をテストできます。
スタートガイド
フレームワークをインストールする
フレームワークをインストールする最も簡単な方法は、NPM パッケージ マネージャーを使用することです。
フレームワークは NPM パッケージ レジストリで公開されているため、インストールできます
npm
の場合:
npm install -g bm-test-framework
テストを実施する
パッケージをインストールすると、環境として Webhook URL を指定できます。 次のコマンドを使用してすべてのテストを実行します。
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 がいずれかのテストケースで失敗した場合、それは
そのテストケースの JSON ペイロードに 200 OK
で応答します。その場合、テストは
デバッグに役立つエラー情報が出力されます。詳しくは、
テスト フレームワークの 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 | timeout | 数値またはフォーマットされた時刻文字列 | 各テストケースのタイムアウトをミリ秒単位で設定します。テストケースごとのデフォルトのタイムアウトは 2,000 ミリ秒です。型とフォーマットの仕様の詳細については、Mocha API リファレンスをご覧ください。 |
たとえば、次のコードは、コマンドラインからテスト フレームワークを実行します。 ランダム UUID オプションを有効にし、タイムアウトを 1,000 ミリ秒に設定すると、次のようになります。
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});