メインコンテンツまでスキップ
バージョン: DAI 25.2

Webhook 通知

Eggplant DAIは Webhook通知 をサポートしており、テスト構成の実行完了時に通知するためのオプションが拡充されます。DAI Webhookを使用すると、サードパーティ製アプリ(Slack、Microsoft Teams、PagerDuty、Jiraなど)でリアルタイム通知を設定できます。また、DevOpsワークフローで通知をトリガーするためにも使用できます。Webhook通知は、DAIが提供する他の通知オプションであるメールの代替手段です。メール通知の詳細については、メール通知の追加をご覧ください。

ヒント

What is a webhook in DAI? Webhookは通常、HTTPSリクエストを使用してメッセージやその他の情報をJSON形式で送信します。前述の通り、このJSON形式は JSONペイロード と呼ばれます。

DAIでは、webhook という用語を webhook notification または webhook profile のいずれかを指すために広く使用しています。具体的には、 webhook profile という用語は、プロファイル、リクエストメソッド、リクエストヘッダー、メッセージコンテンツ、アプリURLの一意の名前を指定した保存済み構成を指します。Webhookプロファイルを作成したら、テスト構成で通知に使用する名前を指定できます。 webhook notification という用語を具体的に使用するのは、通知オプションとしてWebhookプロファイルが指定された際にトリガーされる通知を指します。

Webhook通知はメール通知とは別のものであることにご注意ください。テスト設定内でWebhookをどのように設定するかによって、テスト実行の終了時に常にWebhook通知を送信できます。

Webhook プロファイルを定義すると、テスト構成の操作 ページの Webhook 通知の追加 で説明されているように、コントローラー内のテスト構成 (test config) の通知をトリガーするために使用できます。

DAI で Webhooks ページを表示する

DAI の Webhooks ページでは、Webhook プロファイルを管理できます。このページを表示するには、左側の DAI メニューから System > Webhooks を選択してください。Webhooks ページには、既存の Webhook プロファイルの一覧が表示されます。プロファイルが定義されていない場合は、ページは空になり、プロファイルを作成するオプションが表示されます。

注記

DAI管理者権限を持つユーザーのみが、既存のWebhook通知を作成、編集、削除、複製できます。その他のユーザーは通知の表示のみ可能です。

Webhook プロファイルの作成

Webhook プロファイルを作成するには、DAI 管理者権限を持つユーザーで DAI にログインし、以下の手順に従う必要があります。

  1. System > Webhooks に移動すると、既存の Webhook プロファイルが一覧表示されるか、Webhook プロファイルを追加するオプションが表示されます。

    Webhook profile list

  2. New Webhook profile をクリックします。New webhook profile ページが開きます。

    New webhook profile page

  3. 以下の説明に従って、Webhook profile settings フィールドに入力します。

    • Name: Webhook プロファイルを識別するための一意の名前を入力します。

    • Description: Webhook プロファイルの説明を入力します。

    • Request Method: 利用可能な HTTPS リクエストメソッド (POST、PUT、GET) から選択します。(デフォルト: POST)。

    • URL: 通知を送信するアプリの URL を入力します。

    • Request Headers: Webhookプロファイルに該当するリクエストヘッダー(認証トークンやコンテンツタイプなど)を入力します。リクエストヘッダーが複数ある場合は、それぞれを別々の行に指定してください。

    • Body Payload: Webhookプロファイルは、リクエストペイロードで送信される動的な値を表すためにペイロードパラメータを使用します。ボディペイロードを作成するには、ドロップダウンメニューから以下のパラメータのいずれかを選択します。 - Test-configurations: テスト構成の実行で使用されるテスト構成の名前を指定します。 - Result-status: テスト構成実行のテスト結果を指定します。 - Result-url: テスト構成実行のテスト結果 URL を指定します。 - Test-run-completed: テスト構成実行の一部として、再実行を含む完了したテスト実行の数を提供します。(再実行がない場合は 1、再実行が 1 回のみの場合は 2 になります。) - 実行開始時刻: テスト構成実行の開始時刻を提供します。 - 合計実行期間: テスト構成実行のエンドツーエンドの合計実行期間を提供します。これは、テスト構成実行の開始から終了までを意味し、SUT または環境の取得などの起動時間も含まれます。

      • 日付形式: Webhook連携に一致するタイムスタンプ形式の文字列表現を指定してください。特に指定がない限り、デフォルトのタイムスタンプ形式が使用されます。以下のタイムスタンプ形式の例をご参照ください。
      タイムスタンプの形式例:
      %d %b %Y, %H:%M:%S (default)06 Dec 2024, 14:35:56
      %A, %d %B %Y at %m:%M %pWednesday, 02 October 2024 at 2:04 PM
      %d-%m-%Y %H:%M:%S28-02-2025 09:54:00
      %Y.%m.%d %H:%M2025.02.28 17:32
      %A, %d-%m-%Y %H:%MFriday, 28-02-2025 09:54
      %d %B %Y, %H:%M28 February 2025, 09:54
      注記

      Webhookプロファイルを保存する前に、有効なタイムスタンプ形式を入力する必要があります。タイムスタンプ形式の文字列が無効な場合、検証エラーメッセージが表示されます。書式コードを使用して日付と時刻の書式文字列を作成する方法の詳細については、datetime — 基本的な日付と時刻の型 — Pythonドキュメントをご覧ください。

  4. Enable this webhook profileスライダーを使用して、WebhookプロファイルのStateを有効または無効に設定します。このWebhookをテスト構成に割り当て始めると、プロファイルを無効にすると、それを使用しているすべてのテスト構成でWebhook通知が無効になることに注意してください。

  5. 必要な情報を入力したら、Test webhook をクリックして、Webhook プロファイルの構成を検証します。

    • すべてが正しく設定されている場合は、以下のサンプル応答に示すように、Webhook テスト成功 というメッセージが表示され、作成した Webhook プロファイルが有効であることが確認されます。

      Webhook test success

    • _Webhook テストが失敗しました_というメッセージが表示された場合は、応答で提供された情報を使用して、Webhook プロファイル構成の問題を調査して解決できます。

      webhook test failure

  6. Close をクリックして、Webhook test ウィンドウを閉じます。

  7. Webhook テストが成功したら、Createをクリックして Webhook プロファイルを保存します。新しいプロファイルはWebhooksページに追加され、その後はここで管理できるようになります。

Webhook プロファイルの編集

Webhook プロファイルを変更するには、DAI 管理者権限を持つユーザーで DAI にログインし、以下の手順に従う必要があります。

  1. System > Webhooks に移動すると、既存のすべての Webhook プロファイルのリストが表示されます。
  2. 編集する Webhook プロファイルを見つけて選択し、アクション メニュー アイコン Actions メニューから Edit を選択します。
  3. Webhook プロファイルに必要な更新を行い、変更を保存します。
注記

Webhook を無効化すると(Webhook profile settingsStateEnable this webhook profile を無効にする、または Webhooks ページの State スライダーを使用して無効にすることで)、DAI はその webhook を使用しているすべてのテストコンフィグにおいて webhook 通知を無効にします。

Webhook プロファイルの複製

Webhook を複製するには、DAI 管理者権限を持つユーザーで DAI にログインし、以下の手順に従う必要があります。

  1. System > Webhooks に移動すると、既存のすべての Webhook プロファイルのリストが表示されます。
  2. 複製する Webhook プロファイルを見つけて選択し、アクション メニュー アイコン Actions メニューから Duplicate を選択します。
  3. 重複した Webhook プロファイルを識別するための一意の名前を指定して、新しいプロファイルを作成します。

Webhook プロファイルの削除

Webhook プロファイルを削除するには、DAI 管理者権限を持つユーザーで DAI にログインし、以下の手順に従う必要があります。

  1. System > Webhooks に移動すると、既存のすべての Webhook プロファイルのリストが表示されます。
  2. 削除したいWebhookを見つけて選択し、アクションメニュー Actions メニューからDeleteを選択します。確認ダイアログボックスが開きます。
  3. 削除を続行するには、Confirm をクリックします。
注記

Webhook プロファイルを削除すると、それを使用しているすべてのテスト構成内の Webhook 通知も削除され、このアクションは元に戻せません。

サードパーティ アプリとの Webhook 統合のサンプル

以下は、サードパーティ アプリケーションを使用した Webhook のサンプル構成です。

Slack 統合

Slack に着信 Webhook を統合するには、次の手順に従います。

  1. https://<your workspaces.slack.com/account/settings をクリックして、Slack インスタンスから Configure apps セクションに移動します。

  2. Slack の Apps ディレクトリで着信 Webhook を検索してください。着信 Webhook が見つからない場合は、Slack 着信 Webhook ドキュメント に従って Slack アプリ用の Webhook を作成してください。Slack ワークスペースの設定によっては、IT 管理者に Webhook アプリの承認を依頼する必要がある場合があります(詳しくは Slack ドキュメント をご覧ください)。

  3. アプリを作成したら、Slack Account > Configure app セクションに戻り、新しく作成した受信 Webhook アプリを検索します。

  4. アプリを選択し、チャンネルまたは個人にメッセージを投稿するための incoming-webhook を有効にしてください。これにより、Incoming Webhook URL が生成されます。このプロセスの承認を得るには、IT 管理者への問い合わせが必要になる場合があります。Slack の Incoming Webhook URL の例を以下に示します。

    https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
  5. Slack Profile を使用して新しい Slack Payload を作成します。

Slack ペイロード

{
"text": "Notification from Eggplant Digital Automation Intelligence: \n>>>Test Configuration: {{test-configurations}}\nResult: {{result-status}}\nTest runs completed: {{test-run-completed}}\nExecution start time: {{execution-start-time}}\nTotal Run Duration : {{total-run-duration}}\nLink to Digital Automation Intelligence Report: To check the status of this test run and view further information, <{{result-url}}|click on this link>!\n"
}

Slack 通知の例

たとえば、Slack での着信 Webhook 通知は次のように表示されます。

Slack sample webhook notification

Microsoft Teams 統合

Microsoft Teams 内で Webhook 通知を統合するには、次の手順に従います。

  1. Microsoft Teams の Webhook およびコネクタ ガイド に従って、Webhook コネクタを作成します。
  2. URLをコピーし、サンプルのMicrosoft Teamsペイロードを含むURLを使用してWebhookプロファイルを作成します。以下の手順に従って、Microsoft Teamsペイロードを使用してサービスの統合を追加します。

Microsoft Teams ペイロード


"@type": "MessageCard",
"@context": "https://schema.org/extensions",
"themeColor": "994444",
"summary": "Notification from Eggplant Digital Automation Intelligence: {{result-status}} for {{test-configurations}}",
"sections": [
{
"facts": [
{
"name": "Test Configuration:",
"value": "{{test-configurations}}"
},
{
"name": "Result:",
"value": "{{result-status}}"
},
{
"name": "Test runs completed:",
"value": "{{test-run-completed}}"
},
{
"name": "Execution start time:",
"value": "{{execution-start-time}}"
},
{
"name": "Total Run Duration:",
"value": "{{total-run-duration}}"
},
{
"name": "Link to Digital Automation Intelligence Report:",
"value": "To check the status of this test run and view further information, [click on this link]({{result-url}})"
}
]
}
]
}

Microsoft Teams の通知例

Microsoft Teams での受信 Webhook 通知のサンプル。

Microsoft Teams sample webhook notification

PagerDuty 統合

PagerDuty に Webhook 通知を統合するには、次の手順に従います。

  1. 次の手順に従って、サービスの Pagerduty 統合を設定します。
  2. 監視しているサービスの PagerDuty 統合キーをコピーします。これは、PagerDuty ペイロードで routing_key として使用されます。
  3. Event API V2 をご利用の場合は、URL https://events.pagerduty.com/v2/enqueue を使用してWebhookプロファイルを作成してください。Event API V2の詳細については、PagerDuty開発者ガイドをご覧ください。
  4. Webhook プロファイルを作成するときは、PagerDuty ペイロードの routing_key と同じ PagerDuty 統合キー を使用します。

PagerDuty ペイロード

{
"payload": {
"summary": "Notification from Eggplant Digital Automation Intelligence: The Test Configuration {{test-configurations}} run has {{result-status}}",
"timestamp": "2015-07-17T08:42:58.315+0000",
"severity": "critical",
"source": "Eggplant Digital Automation Intelligence Test Configuration: {{test-configurations}}",
"component": "DAI Test Webhook App",
"custom_details": {
"Test Configuration": "{{test-configurations}}",
"Result": "{{result-status}}",
"Number of Test runs completed:": "{{test-run-completed}}",
"Execution start time:": "{{execution-start-time}}",
"Total Run Duration": "{{total-run-duration}}",
"Link to Digital Automation Intelligence Report:": "To check the status of this test run and view further information, [click on this link]({{result-url}})"
}
},
"routing_key": "6aaf98607a9c4104c1c20e2809198492",
"dedup_key": "Test Configuration {{test-configurations}}",
"event_action": "trigger",
"client": "Eggplant Digital Automation Intelligence",
"client_url": "{{result-url}}",
"links": [
{
"href": "https://exampledomain.com/",
"text": "Eggplant Digital Automation Intelligence"
}
],
"images": [
{
"src": "https://exampledomain.com/logo.png",
"href": "https://exampledomain.com/",
"alt": "Eggplant Digital Automation Intelligence"
}
]
}

PagerDuty 通知の例

テスト構成で障害が検出されると、Webhook は PagerDuty で新しいインシデントをトリガーします。

PagerDuty sample webhook notification

Jira 統合

  1. Jira 統合ガイド を使用して、Jira API 基本トークンを作成します。

  2. Jira API URL を使用して Webhook を作成します。

  3. Webhook 構成でトークンをリクエスト ヘッダーとして使用します。

    Authorization: Basic <<mysecuretoken>>
    Content-Type: application/json
  4. Jira API に Webhook 通知を送信するには、サンプル Jira ペイロードを使用します。

    {
    "fields": {
    "issuetype": {
    "id": "15"
    },
    "project": {
    "key": "MON"
    },
    "description": "Test Configuration: {{test-configurations}}\n\nLink to Digital Automation Intelligence Report: To check the status of this test run and view further information, click on this link {{result-url}}\n\nResult: {{result-status}}\n\nNumber of Test runs completed:{{test-run-completed}}\n\nExecution start time:{{execution-start-time}}\n\nTotal Run Duration:{{total-run-duration}}\n\n",
    "summary": "Test Configuration: {{test-configurations}} Result: {{result-status}}"
    }
    }

Jira ストーリーの例

Jira sample webhook notification