テストケース管理のインテグレーション

XRay、Zephyr、Practitest、Testrailなどの外部のテストケース管理 (TCM) ツールにmablのテスト結果を追加することで、テストの結果を1か所でまとめて確認することができます。TCMツールの結果は信頼できる唯一の情報源となり、チームは、監査目的でドキュメントを提供するなど、他の要件に対応しやすくなります。

このガイドでは、TCMツールとのカスタムインテグレーションの設定方法について概説します。

🚧

ネイティブインテグレーションはない

mablは、どのテストケース管理ツールとも、ネイティブインテグレーションをサポートしていません。以下の手順でインテグレーションを設定するには、カスタムスクリプトの作成と保守に精通している必要があります。

初期設定

TCMとのカスタムインテグレーションを作成する前に、次の手順でmablテストを該当するテストケースに関連付ける必要があります。

  1. TCMツールで該当するテストケースを見つけ、そのIDをコピーします。 
  2. mablで、このテストケースIDに関連付けるmablテストを見つけます。テストのメタデータを編集するために、テストの詳細ページの鉛筆アイコンをクリックします。 

  1. [Test case ID(s)] にテストケースIDを貼り付け、[Save] をクリックします。
テストケースIDの追加

テストケースIDの追加

mablテストを複数のテストケースIDに関連付けるには、各IDをコンマとスペースで区切ります。

📘

プランラベル

TCMツールに結果を追加するために特定のプロジェクトIDまたはテストサイクルが必要な場合、該当するmablプランにプランラベルを追加することをお勧めします。 プランラベルはテストの結果に含まれます。カスタムインテグレーションを修正して、mablで設定したプランラベルに基づいてプロジェクトIDまたはテストサイクルを設定することができます。

カスタムインテグレーション

mablテストをテストケースIDに関連付けた後で、mablのテスト結果をTCMツールに統合するワークフローを設定する必要があります。カスタムインテグレーションのワークフローは、大きく分けて、次の3ステップで構成されます。

  1. テスト結果の取得
  2. データの解析
  3. TCMツールへの結果の追加

テスト結果をTCMツールに統合するプロセスは、結果の「取得方法」によって異なります。結果は次の2つの形式で取得できます。

  • JSONペイロード
  • JUnitレポート (JenkinsとBambooのインテグレーションのみ)

これら2種類のテスト結果形式を統合する方法について詳しく説明します。

JSONペイロード

mablのテスト結果をJSONペイロード形式で取得するには、次のいずれかの方法を使用します。

  1. 実行後のWebhook: テスト実行終了後に該当するテストケースIDを持つmablのテスト結果を受け取るWebhook URLを設定します。
  2. デプロイイベントAPI: デプロイイベントを作成した後、結果を示すデプロイ結果サマリーエンドポイントをポーリングします。こちらのサンプルスクリプトを参照してください。

📘

Webhookは、デプロイイベント、プラン実行、アドホック実行など、mablのテスト実行の全タイプの結果を受け取ります。一方、デプロイ結果サマリーエンドポイントは、デプロイイベントによってトリガーされたテストの結果「のみ」を取得します。

JSONペイロードには、実行された具体的なプランとテストに関するステータス、結果、テストケースIDなどの詳細が含まれています。JSONペイロードでは、テストは "journeys" と呼ばれます。テストケースIDは、journey_executionsオブジェクト内にあります。 

{
  "status": "succeeded",
  "status_cause": null,
  "success": true,
  "plan": {
    "id": "4ba4550d-df2b-4df2-8799-46c44dbb4b9e",
    "name": "Print click and assert Plan",
    "labels": [ "apple", "zebra"],
    "href": "https://api.mabl.com/v1/schedule/runPolicy/4ba4550d-df2b-4df2-8799-46c44dbb4b9e",
    "tags": []
  },
  "plan_execution": {
    "status": "succeeded",
    "status_cause": null,
    "id": "d5b96d02-c45d-4d08-8684-de55411bcede",
    "href": "https://api.mabl.com/v1/execution/runPolicyExecution/d5b96d02-c45d-4d08-8684-de55411bcede"
  },
  "journeys": [
    {
      "id": "c221c1f8-aa52-4fdb-a1bd-5ee5b408ac9f:0",
      "name": "Print, then assert",
      "labels": [ "apple", "zebra"],
      "href": "https://api.mabl.com/v1/test/journey/c221c1f8-aa52-4fdb-a1bd-5ee5b408ac9f:0",
      "tags": [
        "training"
      ]
    }
  ],
  "journey_executions": [
    {
      "status": "completed",
      "status_cause": null,
      "success": true,
      "name": "Print, then assert",
      "journey_id": "c221c1f8-aa52-4fdb-a1bd-5ee5b408ac9f:0",
      "journey_execution_id": "c221c1f8-aa52-4fdb-a1bd-5ee5b408ac9f:0",
      "start_time": 1517612117504,
      "stop_time": 1517612146280,
      "href": "https://api.mabl.com/v1/execution/runPolicyExecution/4ba4550d-df2b-4df2-8799-46c44dbb4b9e/testScriptExecution/c221c1f8-aa52-4fdb-a1bd-5ee5b408ac9f:0",
      "results_href": "https://app.mabl.com/workspaces/3627972b-a762-4a87-a3fb-97cde3e9c414/test/plan-executions/d5b96d02-c45d-4d08-8684-de55411bcede/journeys/c221c1f8-aa52-4fdb-a1bd-5ee5b408ac9f:0",
      "test_cases": [
        {
          "id": "MABL-1234"
        },
        {
          "id": "MABL-999"
        }
      ]
    }
  ],
  "start_time": 1517612110113,
  "stop_time": 1517612146368,
  "tags": [],
  "results": [
    {
      "success": true,
      "name": "Print, then assert",
      "results_href": "https://app.mabl.com/workspaces/3627972b-a762-4a87-a3fb-97cde3e9c414/test/plan-executions/d5b96d02-c45d-4d08-8684-de55411bcede/journeys/c221c1f8-aa52-4fdb-a1bd-5ee5b408ac9f:0"
    }
  ],
  "message_version": "1.0.0"
}

大半のTCMツールはJSONペイロード全体を処理することはできないため、該当する詳細を抽出する解析スクリプトを作成する必要があります。TCMツールがそれぞれ異なる場合も、結果を追加する前に、次に示すようないくつかの共通のメタデータを抽出する必要があります。

  • プロジェクトID 
  • テストケースID
  • ステータス - テスト結果
  • コメント

使用すべきエンドポイントと送信すべき情報の詳細については、TCMツールのAPIドキュメントを参照してください。

👍

レポートAPI

バッチ結果エンドポイントを使用して、テスト結果に関する継続的なデータを取得できます。TCMツールとのインテグレーションを設定する前に実行されたmablテストに関するデータを追加する場合は、このエンドポイントが役立ちます。

JUnitレポート

チームがJenkinsまたはBambooインテグレーションを使用してmablテストをトリガーする場合、テスト結果および関連するテストケースIDはJUnit xmlレポートから取得できます。

TestSuite要素内のProperties要素セクションには、以下のプロパティ名/値ペアのいずれかが含まれている可能性があります。

プロパティ名プロパティ値
completed-test-casesmablで成功したテストに関連付けられているテストケースIDのコンマ区切りのリスト。
failed-test-casesmablで失敗したテストに関連付けられているテストケースIDのコンマ区切りのリスト。
skipped-test-casesmablでスキップされたテストに関連付けられているテストケースIDのコンマ区切りのリスト。依存するテストが失敗した場合、テストはスキップされる場合があります。

TestCase要素には、requirementキーを持つ非標準のProperties要素が含まれています。このキーの値は、テストケースIDのコンマ区切りのリストです。 

JUnit xmlレポート形式は大半のテストケース管理ツールで受け入れられますが、mablのテスト結果とテストケースIDを正しくマッピングするために、このレポートの注入方法の設定が必要になる場合があります。詳細については、JUnitの結果のインポートに関するTCMツールのドキュメントを参照してください。