レポートの設定および表示

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

  • New Relic

  • PagerDuty

  • Slack

  • Sumo Logic

  • メール

カスタムレポートや、コンピューターの場所に送信されるレポートを設定することもできます。

New Relic

API 機能監視と一緒に New Relic を使用することで、New Relic でテストスイートからのメトリクスを参照できます。メトリクスには各テストの回数、検出されたパフォーマンス損失、アラートスケジュールが含まれます。

New Relic でのレポートの設定

  1. New Relic ライセンスキーを取得します。この方法の詳細は、 New Relic のドキュメント​を参照してください。

  2. bat.yaml​ ファイルで、​reporters​ セクションを作成します (まだファイルに存在していない場合)。空白行で、「​reporters:​」と入力します。

  3. bat.yaml​ ファイルで、次のインデントされた行を ​reporters​ セクションに追加して New Relic をレポーターとして追加します。

     - type: NewRelic
       options:
         NEW_RELIC_LICENSE_KEY: <new-relic-license-key>
         DISABLED_FOR_CONFIGS: dev,qa
    • new-relic-license-key​: New Relic ライセンスキーを二重引用符で囲んで指定します。

      ライセンスキーを安全に渡すようにシークレットを設定できます。これを行う場合、シークレットの別名を ​new-relic-license-key​ で使用します。別名はバッククォートで囲む必要があります。​Anypoint シークレットマネージャーでシークレットを設定する​ を参照してください。

    • DISABLED_FOR_CONFIGS​: 1 つ以上の設定のレポーターを無効にします。値は、1 つの設定の名前か、カンマで区切られた複数の名前になります。名前には、​.dwl​ ファイル拡張子は含まれません。

次のステップ

テスト実行の後に、[New Relic] に移動し、​[Metrics (メトリクス)]​ をクリックします。BAT テストのメトリクスが表示されます。

テストスイート名クリックして、テストの結果を表示します。

PagerDuty

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

PagerDuty でのレポートの設定

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

    1. [Configure (設定)]​ > ​[Services (サービス)]​ を選択します。

    2. インテグレーションを選択します。

  2. ルーティングキーをコピーします。

  3. bat.yaml​ ファイルで、​reporters​ セクションを作成します (まだファイルに存在していない場合)。空白行で、「​reporters:​」と入力します。

  4. bat.yaml​ ファイルで、次のインデントされた行を ​reporters​ セクションに追加して PagerDuty をレポーターとして追加します。

     - type: PagerDuty
       outFile: filename.json
       options:
        PAGER_DUTY_ROUTING_KEY: "service_key"
        DISABLED_FOR_CONFIGS: dev,qa
    • filename.json​: 作成する出力ファイルの名前を指定します。

    • service_key​: ルーティングキーを指定します。

      サービスキーを安全に渡すようにシークレットを設定できます。この場合、​bat grant​ コマンドの実行時にサービスキーのシークレットに使用した別名を使用します。別名はキャレットの間に配置する必要があります。​Anypoint シークレットマネージャーでシークレットを設定する​ を参照してください。

    • DISABLED_FOR_CONFIGS​: 1 つ以上の設定のレポーターを無効にします。値は、1 つの設定の名前か、カンマで区切られた複数の名前になります。名前には、.dwl ファイル拡張子は含まれません。

次のステップ

テストに失敗した場合、PagerDuty でレポートを確認します。

Slack

BAT と Slack を統合して、テストに失敗したときに Slack チャンネルに通知を送信できます。通知には、エラーが発生したスイートの名前が表示されます。

Slack での失敗通知の設定

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

    1. Slack で、組織のアプリケーションディレクトリページに移動します。

    2. 「受信 Web フック」を検索し、設定を追加します。

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

  3. 新しい設定の Web フック URL をコピーします。

  4. bat.yaml​ ファイルで、​metadata​ および ​reporters​ セクションを作成します (まだファイルに存在していない場合)。空白行で、​「metadata:」​と入力します。その後のいくつかの空白行で、​「reporters:」​と入力します。

  5. bat.yaml​ ファイルで、次のインデントされた行を追加して Slack チャンネルを ​metadata​ セクションに追加します。

      slack_channel: slack_channel
    • slack_channel​: 通知を送信する Slack チャンネルの名前を指定します。

  6. bat.yaml​ ファイルで、次のインデントされた行を ​reporters​ セクションに追加して Slack をレポーターとして追加します。

      - type: Slack
        outFile: filename.json
        options:
          SLACK_WEBHOOK: "webhook_URL"
          SEND_NOTIFICATION_IF_PASSED: true
          AT_HERE_ENABLED: true
          DISABLED_FOR_CONFIGS: dev,qa.
    • filename.json​: 作成する出力ファイルの名前を指定します。

    • webhook_URL​: Web フックの URL を指定します。

      Web フック URL を安全に渡すようにシークレットを設定できます。この場合、​bat grant​ コマンドの実行時に Web フック URL のシークレットに使用した別名を使用します。別名はキャレットの間に配置する必要があります。​Anypoint シークレットマネージャーでシークレットを設定する​ を参照してください。

    • SEND_NOTIFICATION_IF_PASSED​: このオプションを ​true​ に設定すると、テストに成功した場合に通知が送信されます。

    • AT_HERE_ENABLED​: このオプションを ​true​ に設定すると、テストに失敗した場合に ​@here​ が通知に追加されます。

    • DISABLED_FOR_CONFIGS​: 1 つ以上の設定のレポーターを無効にします。値は、1 つの設定の名前か、カンマで区切られた複数の名前になります。名前には、​.dwl​ ファイル拡張子は含まれません。

Sumo Logic

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

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

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

Sumo Logic でのレポートの設定

  1. Sumo Logic のセットアップウィザードで、[Set Up Streaming Data (ストリーミングデータをセットアップ)] を選択します。

  2. [Your Custom App (カスタムアプリケーション)]​ > ​[HTTP Source (HTTP 配信元)]​ または ​[All Other Sources (その他のすべての配信元)]​ > ​[HTTP Source (HTTP 配信元)]​ の順に選択して、配信元のカテゴリを指定します。

  3. エンドポイント URL をコピーします。

  4. bat.yaml​ ファイルで、​reporters​ セクションを作成します (まだファイルに存在していない場合)。空白行で、「​reporters:​」と入力します。

      - type: SumoLogic
        outfile: filename.json
        options:
          SUMO_ENDPOINT: endpoint-URL
          DISABLED_FOR_CONFIGS: dev,qa.
    • filename.json​: 作成する出力ファイルの名前を指定します。

    • endpoint-URL​: コレクションのエンドポイントの URL。

      エンドポイント URL キーを安全に渡すようにシークレットを設定できます。この場合、​bat grant​ コマンドの実行時にエンドポイント URL キーのシークレットに使用した別名を指定します。別名はキャレットの間に配置する必要があります。​Anypoint シークレットマネージャーでシークレットを設定する​ を参照してください。

    • DISABLED_FOR_CONFIGS​: 1 つ以上の設定のレポーターを無効にします。値は、1 つの設定の名前か、カンマで区切られた複数の名前になります。名前には、.dwl ファイル拡張子は含まれません。

メール

失敗を通知するテストレポートをメールで送信するには、レポートの送信先とするメールアドレスを指定します。各レポートには、エラーが発生したスイートの名前と、ステートメントのリストが記載されます。

レポートは、Anypoint Platform の API 機能監視で作成されたテストまたは Anypoint Platform の API 機能監視にアップロードされたテストについてのみメールで送信されるため、BAT CLI でレポーターをテストに追加した後に、テストをアップロードしてください。または、テストをアップロードした後に監視の ​[Notifications (通知)]​ タブでメールレポートツールを追加することもできます。

  1. bat.yaml​ ファイルで、​reporters​ セクションを作成します (まだファイルに存在していない場合)。空白行で、「​reporters:​」と入力します。

    EMAILS: <alias_1>;<alias_2>;<alias_3>
  2. メールアドレスを秘密にしておかない場合、次の行を ​bat.yaml​ ファイルの ​reporters​ セクションに追加します。

      - type: Email
        options:
          EMAILS: email_address
          DISABLED_FOR_CONFIGS: dev,qa
    • email_address​: 通知を送信するメールアドレスを指定します。複数のメールアドレスを使用する場合、セミコロンで区切ります。

      EMAILS: email_address1;email_address2;email_address3

      メールアドレスを安全に渡すようにシークレットを設定できます。この場合、​bat grant​ コマンドの実行時に各メールアドレスのシークレットに使用した別名を使用します。別名はキャレットの間に配置する必要があります。 メールアドレスの別名を複数指定するには、各別名をキャレット間に配置して、セミコロンで別名を区切ります。​Anypoint シークレットマネージャーでシークレットを設定する​ を参照してください。

    • DISABLED_FOR_CONFIGS​: 1 つ以上の設定のレポーターを無効にします。値は、1 つの設定の名前か、カンマで区切られた複数の名前になります。名前には、.dwl ファイル拡張子は含まれません。

カスタムレポート

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

テストスイートのカスタムレポートをパブリッシュするには、次のインデントされた行を ​bat.yaml​ ファイルの ​reporters​ セクションに追加します。​URL​ の値は独自の URL に置き換えます。

reporters:
  - type: Custom
    options:
      URL: "http://www.httpbin.org/post"
      HEADERS: "'Authorization':'Bearer token','Content-Type':'application/json'"
      DISABLED_FOR_CONFIGS: dev,qa
  • DISABLED_FOR_CONFIGS​: 1 つ以上の設定のレポーターを無効にします。値は、1 つの設定の名前か、カンマで区切られた複数の名前になります。名前には、.dwl ファイル拡張子は含まれません。

ローカルレポート

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"
}

Anypoint シークレットマネージャーでシークレットを設定する

非公開の場所から実行するテストで機密情報を秘密にしておくには、シークレットマネージャーで共有シークレットを作成します。

共有シークレットを設定する手順は、次のとおりです。

  1. シークレットグループを開くか、新規作成します。BAT CLI を使用している環境にグループを作成します。

    BAT CLI を現在使用している環境を確認するには、次の操作を行います。

    1. コマンド ​bat whoami​ を実行します。

      出力には環境の ID があります。

    2. アクセス権のある環境をリストするには、コマンド ​bat environment ls​ を実行します。

    3. bat whoami​ コマンドの ID とリストされた環境の ID を照合します。

    4. シークレットグループが含まれる環境に切り替える必要がある場合、コマンド ​bat environment switch name​ を実行します。​name​ は環境の名前です。

  2. [Shared Secret (共有シークレット)]​ を選択します。

  3. [Type (種別)]​ 項目で ​[Symmetric Key (対称キー)]​ を選択します。

  4. [Key (キー)]​ 項目に、Base64 文字列としてエンコードされた機密情報を貼り付けます。

  5. Base64 文字列を ​[Confirm Key (キーを確認)]​ 項目に貼り付けます。

シークレットへのアクセス権を監視に付与する

監視を変更してシークレット情報を追加したら、シークレットへのアクセス権を監視に付与します。BAT CLI は、実行時に別名を使用して共有シークレットを参照します。

シークレットへのアクセス権を監視に付与します。

  1. Anypoint シークレットマネージャーでシークレットを設定する​ で取得した新しい共有シークレットの名前をコピーします。

  2. コマンドプロンプトで、共有シークレットの別名を指定して ​bat grant​ コマンドを実行します。このコマンドを実行すると、BAT CLI はテストスイートの ​bat.yaml​ ファイルに ​secrets​ という名前のセクションを作成します (セクションがまだ存在していない場合)。そのセクションで、BAT CLI は次のインデントされた行を追加します。

    alias:
     secretId: "secret-ID"
    • alias​: bat grant​ コマンドで指定した別名。

    • secret-ID​: Anypoint シークレットマネージャー内のシークレットの ID。この ID は ASM には表示されません。そのため、​bat.yaml​ ファイルを確認して ID から特定のシークレットを連想することはできません。BAT CLI は、この ID を使用して別名に関連付けたシークレットを参照します。