デプロイメントイベントを使用すると、アプリケーション、環境、プランのラベルなどの条件を指定して、それらを満たす有効なプランをすべて並列で実行したり、IDで指定した特定のプランを実行したりできます。このタイプのテスト実行は、自動化されたエンドツーエンドテストをチームのCI/CD ワークフローに統合するのに最適です。利点は次のとおりです:
- フィードバックサイクルの高速化 - プランは並行して実行されるため、結果をより早く得られます
- 堅牢な検証 - プランは mabl クラウドで実行されるため、出力には詳細な実行アーティファクトが含まれます。
この記事では、mabl のデプロイメントイベントを設定、実行、レビューする方法を説明します。
デプロイメントイベント用のプランを設定する
デプロイメントイベントは、プランレベルでテストをトリガーします。デプロイメントイベントで実行するには、プランは次の条件を満たす必要があります。
- プランの構成は、デプロイメントイベントのアプリケーションおよび/または環境のパラメータに一致し、さらにプランのラベルが追加されている場合はそれも含みます。
- プランがアクティブである。
- このプランはデプロイトリガーを受け付けるように設定されています。デプロイトリガーは、トリガー セクションで、プラン設定 ページから設定できます。
- プラン内のテストのうち、少なくとも1つがオンになっています。
無効化されたプランとテスト
- デプロイメントイベントで実行中からプランを除外したい場合は、プランページでトグルをオフにして無効化できます。
- アクティブなプランで無効化されたテストは、デプロイメントイベントでは実行されません。
- プランが有効でも、プラン内のすべてのテストがオフになっている場合、プランは実行されません。
プランのラベルでテストスイートを定義する
少なくとも、デプロイメントイベントにはアプリケーションまたは環境の指定が必要です。たとえば、「dev」環境でデプロイメントイベントをトリガーすると、その環境に関連付けられているアクティブなプランがすべて実行されます。
プランのラベルを使うと、「回帰」「対象回帰」「スモーク」などの特定のテストスイートや、特定の機能・機能領域を定義できます。たとえば、「dev」環境向けに「スモーク」ラベル付きのデプロイメントイベントをトリガーすると、「スモーク」ラベルが付いたアクティブな「dev」プランだけが実行されます。
IDで特定のプランを実行する
ラベルを追加せずに特定のプランを実行するには、mabl API の plan_ids または mabl CLI の --plan-ids で、プランIDを指定します。たとえば、「dev」環境向けのデプロイメントイベントで cLhFR8Fz0Kpsh70zP6EQ3Q-p を指定すると、「dev」に関連付けられた他のアクティブなプランがあっても、そのプランだけが実行されます。
- プランラベルを指定しない場合は、指定したプランだけが実行されます。
- プランラベルを指定した場合は、指定したプランがラベルに一致するプランと一緒に実行されます。IDで指定され、かつラベルにも一致するプランは1回だけ実行されます。
- 指定する各プランは、デプロイメントイベントに一致するアプリケーションまたは環境を含め、デプロイメントイベント用のプランを設定するの条件を満たす必要があります。指定したプランのいずれかが実行できない場合、mablはデプロイメントイベント全体を拒否し、どのプランも実行されません。
プランIDの末尾は -p です。プランIDの確認方法については、mablリソースIDを参照してください。
テスト影響分析が選択したテストを実行する
CIパイプラインにテスト影響分析を追加すると、デプロイメントイベントで、一致するプランの代わりに、分析が返したテストを実行できます。影響を受けるテストを実行するを参照してください。
デプロイメントイベントのトリガー
デプロイメントイベントをトリガーする方法はいくつかあります。
mabl のデプロイメントイベントの基本的な概念とパラメータは、どの方法でも同じです。簡潔にするために、この記事では mabl アプリから手動でデプロイメントイベントをトリガーする方法を説明します。
指定する引数によっては、デプロイメントイベントは多くのプラン実行をトリガーし、あなたの割り当てクレジットのクオータにカウントされます。初めてデプロイメントイベントを試す際にクレジットの過剰消費を避けるため、実行したい特定のプラン、または複数のプランに「deployment-demo」というラベルを追加することをおすすめします。
- mabl のホームページで、右上の新規作成ボタンをクリックします。
- [デプロイメント] を選択して、[New deployment] ページを開きます。
- ドロップダウンから、環境またはアプリケーション、あるいは環境とアプリケーションの両方を選択します。
- 特定のプランを対象にするには、1つ以上のプランのラベルを選びます。たとえば、プランに「deployment-demo」のラベルを追加した場合は、デプロイメントイベントの設定に必ず含めてください。
- 必要に応じて、次の追加設定を構成できます。
- Trigger Deploy ボタンをクリックして、デプロイメントイベントを作成します。
アプリはデプロイメントイベントの出力ページにリダイレクトします。そこでステータスを監視し、結果を確認できます。
デプロイメントイベントのプレビュー
デプロイメントイベントでいくつのプランが実行されるか確信が持てない場合は、実際にデプロイメントイベントをトリガーする前に、次のステップに従って実行されるプラン数をプレビューできます。
- APIページ(ワークスペース > API)に移動し、デプロイ時にテストを実行までスクロールします。
- コマンドの種類としてcURLを選択し、Authenticate withでAPIキーを選択します。
- 対象の環境またはアプリケーションを選択します。
- 必要に応じて、プランラベル、URLオーバーライド、クレデンシャルなどのオプション設定を追加します。
- 生成されたcurlコマンドをコピーします。
- マシンでターミナルウィンドウを開きます。
- ターミナルにcurlコマンドを貼り付けます。
- URLを
https://api.mabl.com/events/deployment?preview=trueに置き換えます。 - Enterキーを押すと、プレビューが表示されます。
JSON レスポンスの「triggered_plan_run_summaries」セクションには、このデプロイメントイベントをトリガーした場合に実行されるプランが表示されます。次のレスポンスを確認してください。
{
"id":"RAV64K2nQJ0GslNVfmtPuQ-v",
"environment_id":"Ojc0fnJOoTBgSEZSHUCrhQ-e",
"workspace_id":"RS2yqNMP9nK9qobpJiZ74Q-w",
"received_time":1658414608812,
"triggered_plan_run_summaries":[
{"plan_id":"cLhFR8Fz0Kpsh70zP6EQ3Q-p"},
{"plan_id":"GASWQXKMiGBXOReVCms2HQ-p"},
{"plan_id":"AiqbHQaNT0O47lWAYDYWSA-p"},
{"plan_id":"oqE3sw3QxQhniftVBm7NXw-p"},
{"plan_id":"RBaecKUQHHAKkfXjTt1g3g-p"},
{"plan_id":"XH7ww6JQM8zy8bZGLB7Z1g-p"},
{"plan_id":"w3YwxgVepvEBjWnRkzl10g-p"}
]
}
このレスポンス例には7個のプランIDがリストされています。これは、このデプロイメントイベントの結果として7個のプランが実行されることを意味します。
結果を確認する
ワークスペースからトリガーされたすべてのデプロイメントイベントは、デプロイメント結果ページで確認できます:テスト結果 > デプロイメント別。特定の実行の出力を表示するには、デプロイメントイベントの時刻をクリックしてください。
デプロイメントIDで結果を取得する
固有のデプロイメント ID(末尾が-vで終わります)を使用して、デプロイメントイベントの結果を取得することもできます。例:RAV64K2nQJ0GslNVfmtPuQ-v。
-
mabl CLI:
mabl deployments describe {deployment-id}を実行 - mabl API: デプロイ結果のサマリーを取得するエンドポイントを使用します。
詳細情報
デプロイメントイベントを理解することは、大規模なカバレッジを実現するための重要なステップとなります。さらに知識を深めるには、テストワークフローへのデプロイメントイベントの実装に関する以下のガイドを確認してください。