Webhook の開発中に、実際のビジネス メッセージのペイロードを使用してテストすることをおすすめします。テストを手動で作成する代わりに、ビジネス メッセージ テスト フレームワークを使用して、本番環境で Webhook が受け取る可能性のあるさまざまな JSON ペイロード タイプで Webhook をテストできます。
必要なのは、Webhook の実行中のインスタンスの URL だけです。テスト フレームワークは簡単にインストールでき、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 が失敗した場合、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 | boolean | true の場合、会話 ID を有効な形式でランダム化された UUID に設定します。false の場合、すべての会話 ID を &CONtERSATION-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});