テストレポートの設定および表示方法

多数のレポートシステムと一緒に使用するために BAT を設定できます。次に例を示します。

  • New Relic

  • PagerDuty

  • Slack

  • SUMO

  • カスタム

  • ローカル

bat.yaml ファイルの reporters セクションでレポート生成を指定します。

New Relic

API 機能監視と一緒に New Relic を使用することで、各テストの回数を決定し、パフォーマンスの損失を検出し、アラートをスケジュールできます。

New Relic には、テストスイートからメトリクスをキャプチャできる BAT 用に設定されたプラグインがあります。プラグインを使用してメトリクスをキャプチャするには、次の情報を追加して bat.yaml ファイルを設定する必要があります。

  • 出力ディレクトリ

  • NEW_RELIC_LICENSE_KEY

New Relic レポートの表示方法

  1. New Relic ライセンスキーを取得します。

    • [New Relic Account Settings (New Relic アカウント設定)] に移動します。

    • [Account Summary (アカウント概要)] にある右側のサイドバーからライセンスキーをコピーします。

  2. ライセンスキーを bat.yaml ファイルに追加します。

    reporters:
      - type: NewRelic
        outFile: outputNewRelic.json
        options:
          NEW_RELIC_LICENSE_KEY: "xxxxxxxxxxxxxxx"
  3. テストをスケジュールして監視を作成します。

  4. [New Relic] に移動し、[Plugins (プラグイン)] をクリックします。

    BAT プラグイン情報が表示されます。

  5. テストスイート名をクリックします。

    bat plugin

    各テストを実行した後で新しいテスト結果データが [New Relic] に表示されます。

    bat new relic metrics

PagerDuty

BAT と PagerDuty のインテグレーションにより、テストに失敗して設定済みの PagerDuty アラートがトリガされるとインシデントが生成されます。監視が常に同じエラーで失敗する場合、BAT は新しい問題を生成せず、代わりにこれらのエラーを無視します。

PagerDuty レポートの設定方法

  1. PagerDuty で、インテグレーションを設定します。

    • [Configure (設定)] > [Services (サービス)]。

      bat pager duty
    • インテグレーションを選択します。たとえば、[bat-monitoring (bat-監視)] を選択します。

      bat integrations pagerduty
  2. インテグレーションキーをコピーし、bat.yaml ファイルに追加します。

    Bat.yaml の例

    reporters:
      - type: PagerDuty
        outFile: PagerDuty.json
        options:
          SERVICE_KEY: "xxxxxxxxxxxxxxxxxxx"

    失敗したテストに関するレポートが PagerDuty に表示されます。

bat pager duty report

Slack

BAT と Slack を統合して Slack でアラートを生成できます。Web フックを経由して特定のチャネルにメッセージを送信します。

  1. Web フックを作成します。

    • Slack で、yourorg.slack.com/apps にある組織のアプリケーションディレクトリページに移動します。

    • 受信 Web フックを検索し、設定を追加します。

      bat incoming webhooks
  2. 通知を投稿するチャネルを選択または作成します。

    bat post to channel
    • 新しい設定の Web フック URL をコピーします。

      bat webhook url
  3. bat.yaml ファイルで、Web フックの URL をパラメータとして追加します。

    metadata:
      slack_channel: bat-bot
    ...
    reporters:
      - type: Slack
        outFile: outputSlack.json
        options:
          SLACK_WEBHOOK: "yourwebhook-URL"

    失敗した場合にアラート通知が発生し、エラーが発生したスイートの名前が表示されます。

bat demo failed

Sumo Logic

Sumo Logic を使用するには、コレクションを作成して bat.yaml で指定します。コレクションは他のテストと共有することも、監視としてのみ使用することもできます。各実行の終了時に、BAT はテスト中に実行された要求と応答のトレードオフ情報を送信する SUMO に対する投稿を生成します。これにより、予測される結果およびテストの動作を確認できます。

コレクションのエンドポイントを指定する必要があります。

bat sumo report

BAT を使用して指定されたコレクションでログを投稿し、ダッシュボードを作成できます。

bat sumo collection

Sumo と BAT のインテグレーション方法

  1. Sumo Logic で、セットアップウィザードを使用してストリーミングデータをセットアップします。

    bat sumo setup
  2. [Your Custom App (カスタムアプリケーション)] > [HTTP Source or All Other Sources (HTTP ソースまたはその他のすべてのソース)] > [HTTP Source (HTTP ソース)] の順に選択して、ソースカテゴリを入力します。

  3. HTTP ソースをコピーして bat.yaml ファイルで Sumo Logic インテグレーションを実装します。

    reporters:
      - type: SumoLogic
        outfile: SumoLogic.json
        options:
          SUMO_ENDPOINT: <your endpoint URL>

    SUMO_ENDPOINT は、たとえば次のようになります。

    https://endpoint1.collection.us2.sumologic.com/...

    しばらく待つと、テスト結果が Sumo Logic の [Log Search (ログ検索)] に表示されます。

    bat sumo results

カスタム投稿レポート

BAT は bat.yaml ファイルで指定された URL への投稿で result.json をパブリッシュします。必要に応じてヘッダーを追加できます。

reporters:
  - type: Custom
    options:
      URL: "http://www.httpbin.org/post"
      HEADERS: "'Authorization':'Bearer token','Content-Type':'application/json'"

ローカルレポートについて

BAT は基本的な種別のレポートを JSON および HTML でローカルで生成します。テストを実行すると、レポートへのパスが出力に表示されます。

例:

Reporter: /var/folders/vz/56jp75d941592x_1d8mfy9f40000gn/T/bat_report_20180320121736.json
Reporter: /var/folders/vz/56jp75d941592x_1d8mfy9f40000gn/T/bat_report_20180320121736.html

ローカルレポート生成の設定方法

bat.yaml ファイルで、ローカルレポートを生成するための type 項目を指定します。次に例を示します。

reporters:
  - type: JSON
    outFile: JSON.json
  - type: HTML
    outFile: HTML.html
  - type: JUnit
    outFile: JUnit.xml

ローカルカスタムレポートの作成方法

file キーワードを使用して bat.yaml で指定された DataWeave 変換に基づいてカスタムレポートを生成できます。

reporters:
  - type: Local
    file: reporter/transform.dwl
    outFile: local.json

transform.dwl ファイルには次のコードが含まれています。

%dw 2.0
output application/json
var result = if (payload.result.pass[0]) " is ok" else " failed"
---
{
    result: "The suite <" ++ payload.name ++ "> with assertion <" ++ payload.result[0].name ++ ">" ++ result
}

結果は次のようになります。

{
  "result": "The suite <Hello world suite> with assertion <answer 200> is ok"
}

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub