mabl のテスト結果を外部のテストケース管理(TCM)ツールに追加すると、テストの集計結果を一元的に確認できます。TCM ツールの結果が唯一の信頼できる情報源となり、監査用のドキュメント提供など、ほかの要件もスムーズに満たせます。
現在、mabl は Xray プロジェクトとの結果同期をネイティブにサポートしています。詳しくは、Xray 結果レポートに関する記事をご覧ください。Zephyr や Testrail など、その他の TCM ツールについては、スクリプトを使用してカスタム連携を設定できます。この記事では、カスタム TCM 連携の設定方法を説明します。
開始する前に
以下のステップでカスタム TCM 連携を設定するには、あなた、またはチームの誰かがカスタムスクリプトの作成と保守に慣れている必要があります。
初期設定
TCMとのカスタムインテグレーションを作成する前に、次の手順でmablテストを該当するテストケースに関連付ける必要があります。
- TCMツールで該当するテストケースを見つけ、そのIDをコピーします。
- mablで、このテストケースIDに関連付けるmablテストを見つけます。テストのメタデータを編集するために、テストの詳細ページの鉛筆アイコンをクリックします。
- [テストケースID] にテストケースIDを貼り付け、[保存] をクリックします。
テストケースIDの追加
mablテストを複数のテストケースIDに関連付けるには、各IDをコンマとスペースで区切ります。
プランラベル
TCMツールに結果を追加するために特定のプロジェクトIDまたはテストサイクルが必要な場合、該当するmablプランにプランラベルを追加することをお勧めします。 プランラベルはテストの結果に含まれます。カスタムインテグレーションを修正して、mablで設定したプランラベルに基づいてプロジェクトIDまたはテストサイクルを設定することができます。
カスタムインテグレーション
mablテストをテストケースIDに関連付けた後で、mablのテスト結果をTCMツールに統合するワークフローを設定する必要があります。カスタムインテグレーションのワークフローは、大きく分けて、次の3ステップで構成されます。
- テスト結果の取得
- データの解析
- TCMツールへの結果の追加
テスト結果をTCMツールに統合するプロセスは、結果の「取得方法」によって異なります。結果は次の2つの形式で取得できます。
- JSONペイロード
- JUnitレポート (JenkinsとBambooのインテグレーションのみ)
これら2種類のテスト結果形式を統合する方法について詳しく説明します。
JSONペイロード
mablのテスト結果をJSONペイロード形式で取得するには、次のいずれかの方法を使用します。
- 実行後のWebhook: テスト実行終了後に該当するテストケースIDを持つmablのテスト結果を受け取るWebhook URLを設定します。
- デプロイイベントAPI: デプロイイベントを作成した後、結果を示すデプロイ結果サマリーエンドポイントをポーリングします。こちらのサンプルスクリプトを参照してください。
注
実行後のWebhookは、デプロイメントエベント、プラン実行、アドホック実行を含む、すべての種類のmablテスト実行の結果を受け取ります。一方、デプロイメント結果サマリーのエンドポイントは、デプロイメントエベントによってトリガーされたテストの結果のみを取得します。
JSONペイロードには、実行済みの特定のプランとテストに関するステータス、結果、テストケースIDなどの情報が含まれます。JSONペイロード内では、テストは "journeys" として表記されます。
テストケースIDは、journey_executions.test_cases 内のオブジェクトの配列として表示されます。
サンプルのWebhookペイロード
{
"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 のテストをトリガーしている場合、JUnit の XML レポートからテスト結果と関連するテストケース ID を取得できます。
各 TestSuite 要素内の Properties 要素セクションには、次のいずれかのプロパティ名と値のペアを含めることができます:
| プロパティ名 | プロパティ値 |
|---|---|
| completed-test-cases | mabl で成功したテストに関連付けられている、テストケース ID のカンマ区切りリスト。 |
| failed-test-cases | mabl で失敗したテストに関連付けられているテストケース ID の、カンマ区切りの一覧。 |
| skipped-test-cases | mabl でスキップされたテストに関連付けられているテストケース ID の、カンマ区切りの一覧。依存しているテストが失敗した場合、テストはスキップされることがあります。 |
各TestCase要素には、要件キーを含む非標準のProperties要素も含まれます。このキーの値は、テストケースIDのカンマ区切りリストです。
JUnit XML レポート形式は、ほとんどのテストケース管理ツールで受け付けられます。ただし、mabl のテスト結果をテストケース ID に正しく対応付けるには、レポートの取り込み方法を設定する必要がある場合があります。詳しくは、使用している TCM ツールのドキュメントで JUnit 結果のインポート方法を確認してください。