テスト間での変数の共有

mablを使用すると、同じプラン内のテスト間で変数を共有できます。

ユースケース

  • ユーザーIDや電子メールなど、ランダムに生成された変数を使用してテストデータを作成し、プランの最後に行われる別のテストでそれらのテストデータを削除する。
  • あるテストで変数を生成し、それを同じプランの別のテストで検証する。たとえば、ユーザーを作成して、そのユーザーを別の役割に割り当てる。

テストのセットアップ

テスト間で変数を共有するには、通常、次の手順を実行します。

  1. 共有する変数を生成するテストを作成します。
  2. このテストに変数の共有を設定します。
  3. 共有変数を利用する他のテストを作成します。
  4. データ駆動型変数とデフォルト値を、それらのテストにプレースホルダとして追加します
  5. それらすべてのテストを同じプランに追加します。

プランを実行すると、変数の共有を設定しているテストの変数の値が、共有変数を利用する他のテストに渡されます。

変数の共有

テスト実行中に以下のソースから値を生成したすべての変数を共有できます。

  • 文字列テンプレート
  • エレメントプロパティ
  • mabl mailbox
  • JavaScriptステップ
  • APIステップ
ランダムな文字列テンプレートから変数を作成

ランダムな文字列テンプレートから変数を作成

これらの変数は「テスト生成変数」といいます。

変数の共有の設定

テストにこれらの変数の共有を設定するには、次の手順を実行します。

テストの詳細に移動し、テストの編集ボタンを編集します。

テストの詳細を編集

テストの詳細を編集

次に、以下に示すように、変数の共有を有効にします。

変数の共有を有効化

変数の共有を有効化

🚧

可変サイズの制限

テストで共有されるテスト生成変数の結合サイズは、1MBを超えてはなりません。

データ駆動型変数とプレースホルダの設定

次に、共有変数の受け取り先となるテストを作成します。テストは実行時にどの変数を受け取るかを把握していないため、データ駆動型変数を作成して使用する必要があります。デフォルト値はプレースホルダーにします。変数名は、テストで受け取る変数の名前と一致する必要があります。名前は、大文字と小文字が区別されます。

📘

変数名の一致

変数名は、テストで受け取る変数の名前と一致する必要があります。名前は、大文字と小文字が区別されます。

テストの実行中、受け取った変数の名前が完全に一致する限り、デフォルト値は受け取った変数の値で上書きされます。

プランのステージ

あるテスト実行から別のテスト実行に変数を渡すには、待ち受け側のテストが始まる前に、渡す側のテスト実行の成功を確認する必要があります。

そのための1つの方法は、すべてのテストを直列のステージに配置して、指定された順序でテストを実行することです。もう1つのプラン設定の方法は、変数を共有するすべてのテストを1つのステージに配置し、変数を待ち受けるテストを次のステージに配置することです。

変数名の競合の解決

複数のテスト実行が同じ変数を生成・共有するが値が異なる場合、以前のテストで生成された変数の値は、最後に完了したテスト実行の変数の値で上書きされます。これは。プランに複数のブラウザ、同時実行数が1以外に設定されている場合、複数のシナリオを持つDataTableがある場合にも当てはまります。

同じ変数に対して複数の値が渡された場合、次の順序で値が優先されます。
DataTable シナリオ > 共有変数 > 環境変数 > テストのデータ駆動型変数のデフォルト値 > Flow のデータ駆動型変数のデフォルト値
DataTableのシナリオの値は、他の値を上書きします。

👍

重要な考慮事項

プラン内のテスト間で変数を共有する場合、変数の共有が最も適切に機能するのは、プランを単一環境、単一ブラウザーで実行し、かつ、Run Multiplierを使用しない場合です。このようにすると、変数を共有するテストの実行回数がプラン内で1回に限定されるためです。