テストのスナップショット

mablのブランチのスナップショット (masterまたはその他のブランチ) は、スナップショットの作成時にワークスペース内に存在していたテストバージョンのコレクションです。スナップショットを使用すると、特定の時点でのテストの状態を保持することができます。

テストブランチでは、テストに個別の変更を加えることができますが、スナップショットでは、特定の時点でのテストの変更をmabl環境に対して固定することができます。スナップショットを使用するように環境が設定されている場合、mablはその環境でのプラン実行に対してスナップショットが作成された時点で最新だったバージョンのテストを実行します。

ユースケース

スナップショットの主なユースケースは、特定の環境 (開発など) にデプロイされたコードの変更を受けたテストを、コードの変更がまだデプロイされていない他の環境 (ステージング、本番など) で実行中のテストに影響を与えることなく、更新できるようにすることです。このため、CI/CDパイプラインまたは従来のデプロイメントワークフローの複数の環境間で、コードの変更に合わせてテストの変更をプロモートすることができます。

CI/CDパイプラインにmablを統合している場合は、スナップショットの利用を試してみてください。また、デプロイメントパイプライン内の最初の環境ではスナップショットを使用せず、下流のすべての環境でスナップショットを使用することをお勧めします。この構成では、mablのmasterブランチが最初の環境で実行されるため、スナップショットのバージョンの更新や下流の環境に与える影響を気にすることなく、masterを簡単に更新することができます。その後、下流の環境にコードがデプロイされたときに、masterから派生したそれぞれのスナップショットを更新できます。

16081608

デプロイメントパイプライン内でのコードの移動に伴うテストのブランチ/スナップショット作成のシナリオ例

シナリオ例

上の図は、次のシナリオ例を表しています。開発者がコードブランチuser_registration_updateでテスト対象アプリケーションのユーザー登録フローに変更を加えました。開発者はmablで影響を受けるエンドツーエンドテストを更新し、mablのブランチへの変更を保存します。開発者はmabl CLIまたはTrainerを使用して、ローカルアプリケーション環境でmablテストのブランチバージョンの実行と検証を行うことができます。その後、コードがmasterにマージされて開発 (Dev) 環境にデプロイされると、mablのブランチもmasterにマージされ、デプロイ直後に一晩に1回のスケジュールに基づいて、更新されたmasterテストバージョンが開発環境で実行されます。このとき、下流のQA環境と本番 (Prod) 環境では、コードの変更がまだデプロイされていないため、更新されたmasterよりも古いスナップショットバージョンのテストが実行されます。コードが開発 (Dev) 環境からQA環境にデプロイされると、QA環境のスナップショットは最新のmasterバージョンのテストに更新されますが、本番 (Prod) 環境では古いスナップショットバージョンが引き続き実行されます。

スナップショットの作成

スナップショットを作成するには、mabl CLIで、--snapshot-fromオプションを指定してmabl deployments createコマンドを実行します。

ターミナル

$ mabl deployments create -k [api-key] -p [app-id] -e [env-id] --snapshot-from [branch_name or environment_id]

特定の環境のスナップショットを作成または更新する場合は、環境IDとmablブランチ名 (例: new_feature、masterなど) または環境IDを指定する必要があります。環境IDからスナップショットを作成する主なユースケースは、スナップショットを使用する環境からスナップショットを使用する別の環境にテストの変更をプロモートし、masterなどのブランチの最新のテストバージョンを使用しない場合です。

上記のCLIコマンドを実行すると、mablにそれぞれのテストプランの実行をトリガーするデプロイイベントが作成され、下の画像に示すように、スナップショットでテスト実行が行われたことを示すブランチバッジが表示されます。

27062706

環境のスナップショットを使用したデプロイ時のテストの実行。

特定の環境の最新のテストバージョンのスナップショットを作成するために、ブランチをmasterにマージする必要はありません。

[Tests] > [BRANCHES] に移動すると、スナップショットが作成されたすべてのテストとフローを参照できます。スナップショットはブランチのリストに表示され、ステータスに "snapshot" と表示されます。スナップショット名はスナップショットが作成された環境IDに基づいて自動的に生成され、スナップショット名の末尾には、下に示すようにSNAPSHOTという単語が付加されます。

11881188

mablのテストブランチおよびスナップショットのリスト

また、テストの詳細ページに移動し、[CHANGE HISTORY] タブを参照すると、どのバージョンのテストでスナップショットが作成されているかを確認できます。

17821782

テストの変更履歴 (ブランチ内のバージョンと環境のスナップショットを反映)

スナップショットでのテストの実行

特定の環境でスナップショットが作成されると、mablはそれぞれのスナップショットバージョンのテストとフローを実行するようになります。このため、スケジュールに基づいてプランを実行する場合や、手動またはAPI経由でプランを実行する場合に、デフォルトでスナップショットバージョンが使用されるようになります。このことは、次の画像に示すように、プランおよびテスト実行の結果のブランチアイコンに示されます。

25742574

環境のスナップショットを使用した手動でのプランの実行

要約すると、スナップショットを利用することで、コードの変更がまだデプロイされていない下流の環境で実行中の同じテストに影響を与えることなく、ブランチでのテストの変更をmasterにマージすることができます。環境のスナップショットが更新されるまでの間、これらの下流の環境 (本番環境など) では、スナップショットバージョンのテストが実行されます。

🚧

アドホックテストの実行

現時点では、プラン外で個別のテストを実行する際に、特定のスナップショットを選択することはできません。アドホックテストの実行は、テストの詳細ページで選択されたテストブランチバージョンを使用して、選ばれた環境に対して実行されます。

スナップショットの削除

環境に関連付けられたスナップショットを削除するには、次の2つの手順を実行する必要があります。

最初に、それぞれの環境でCLIを使用してmablにデプロイイベントを作成します。これはスナップショットを作成する場合と同じですが、--snapshot-fromオプションは指定しません。

ターミナル

$ mabl deployments create -k [api-key] -p [app-id] -e [env-id]

スナップショットを使用せずに環境用に新しいデプロイメントを作成すると、mablはスナップショットバージョンのテストを使用しないように設定されます。その後、mablはオーバーライドを伴うプランの実行を行わない限り、プラン実行でテストのmasterブランチバージョンを使用するようになります。

mabl UIからスナップショットを完全に削除するには、実行しなければならない手順がもう1つあります。[Tests] > [BRANCHES] に移動し、mabl UIからスナップショットを削除します。これでスナップショットがリストに表示されなくなります。


Did this page help you?