Webhook をテストする

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