mablを使用すると、同じプラン内のテスト間で変数を共有できます。
ユースケース
- ユーザーIDや電子メールなど、ランダムに生成された変数を使用してテストデータを作成し、プランの最後に行われる別のテストでそれらのテストデータを削除する。
- あるテストで変数を生成し、それを同じプランの別のテストで検証する。たとえば、ユーザーを作成して、そのユーザーを別の役割に割り当てる。
テストのセットアップ
テスト間で変数を共有するには、通常、次の手順を実行します。
- 共有する変数を生成するテストを作成します。
- このテストに変数の共有を設定します。
- 共有変数を利用する他のテストを作成します。
- データ駆動型変数とデフォルト値を、それらのテストにプレースホルダとして追加します
- それらすべてのテストを同じプランに追加します。
プランを実行すると、変数の共有を設定しているテストの変数の値が、共有変数を利用する他のテストに渡されます。
変数の共有
テスト実行中に以下のソースから値を生成したすべての変数を共有できます。
- 文字列テンプレート
- エレメントプロパティ
- mabl mailbox
- JavaScriptステップ
- APIステップ
ランダムな文字列テンプレートから変数を作成
テストの詳細を編集
次に、以下に示すように、変数の共有を有効にします。
変数の共有を有効化
テストで共有されるテスト生成変数の結合サイズは、1MBを超えてはなりません。
データ駆動型変数とプレースホルダの設定
次に、共有変数の受け取り先となるテストを作成します。テストは実行時にどの変数を受け取るかを把握していないため、データ駆動型変数を作成して使用する必要があります。デフォルト値はプレースホルダーにします。変数名は、テストで受け取る変数の名前と一致する必要があります。名前は、大文字と小文字が区別されます。
変数名は、テストで受け取る変数の名前と一致する必要があります。名前は、大文字と小文字が区別されます。
テストの実行中、受け取った変数の名前が完全に一致する限り、デフォルト値は受け取った変数の値で上書きされます。
プランのステージ
あるテスト実行から別のテスト実行に変数を渡すには、待ち受け側のテストが始まる前に、渡す側のテスト実行の成功を確認する必要があります。
そのための1つの方法は、すべてのテストを直列のステージに配置して、指定された順序でテストを実行することです。もう1つのプラン設定の方法は、変数を共有するすべてのテストを1つのステージに配置し、変数を待ち受けるテストを次のステージに配置することです。
変数名の競合の解決
複数のテスト実行が同じ変数を生成・共有するが値が異なる場合、以前のテストで生成された変数の値は、最後に完了したテスト実行の変数の値で上書きされます。これは。プランに複数のブラウザ、同時実行数が1以外に設定されている場合、複数のシナリオを持つDataTableがある場合にも当てはまります。
同じ変数に対して複数の値が渡された場合、次の順序で値が優先されます。
DataTable シナリオ > 共有変数 > 環境変数 > テストのデータ駆動型変数のデフォルト値 > Flow のデータ駆動型変数のデフォルト値
DataTableのシナリオの値は、他の値を上書きします。
プラン内のテスト間で変数を共有する場合、変数の共有が最も適切に機能するのは、プランを単一環境、単一ブラウザーで実行し、かつ、Run Multiplierを使用しない場合です。このようにすると、変数を共有するテストの実行回数がプラン内で1回に限定されるためです。