mablでは、同じプラン内のテスト間で変数を共有できます。共有変数は、データ駆動型の変数をテスト実行間で渡すシナリオを設定するのに最適です。例えば、次のような場合です。
- 認証Cookieを変数に保存し、他の実行に渡す
- 1つのテストで動的なテストデータを作成し、それを別のテストに渡して検証する
- ユーザーIDや電子メールなど、ランダムに生成された変数を使用してテストデータを作成し、プランの最後に行われる別のテストでそれらのテストデータを削除する。
この記事では、プラン内でテスト間の変数共有を設定する方法を説明します。
テストを設定して変数を共有する
共有したい変数を生成するテストを作成し、変数共有を有効にします。
- テスト詳細ページで、編集ペンシルをクリックします。
- 共有変数をオンに切り替えます。
- 変更を保存してください。
変数共有の有効化
すべてのテスト生成変数に対して、以下のソースを含む変数の共有がサポートされています。
- 文字列テンプレート
- エレメントプロパティ
- mabl mailbox
- JavaScriptステップ
- データベースクエリ
- Cookie
- API応答
可変サイズの制限
テストで共有されるテスト生成変数の結合サイズは、1MBを超えてはなりません。
手動でプレースホルダー変数を作成する
次のステップは、共有された変数を受け取るテストを作成することです。テストは渡したい変数を認識していないため、デフォルト値を持つデータ駆動変数として手動で共有変数を追加する必要があります。これらのプレースホルダー変数は、トレーニングやアドホック実行のためのプレースホルダーとして機能します。
例えば、user_id
という名前の変数をこのテストに渡したい場合、user_id
という名前のデータ駆動型変数を追加し、トレーニングとアドホック実行で使用するプレースホルダー値を設定します。変数名はテストに渡される変数の名前と一致している必要があります。名前は大文字と小文字を区別します。
トレーナー内
mablトレーナーでプレースホルダー値を作成するには、データ駆動型の変数を追加します: {x} > 変数を管理 > データ駆動型変数。
トレーナーでプレースホルダー変数を追加する
APIテストエディター内
APIテストエディターで、変数パネルにプレースホルダー変数を追加します。これらがこの編集セッション後も持続するように、デフォルトセクションに値を追加してください。
APIテストエディターでプレースホルダー変数を追加する
テストをプランに追加する
最後のステップは、同じプランにテストを追加することです。プランを設定して、共有変数が有効になっているテストが、プレースホルダー変数を持つテストの前に実行を終了するようにします。これを設定する方法は2つあります。
- 変数名の競合の解決
- ステージを使用する: 変数を共有するテストを1つのステージに設定し、それらの変数を期待するテストを後続のステージに配置するようにプランを設定します。
クラウドでプランを実行する
クラウドでプランを実行するようにトリガーします。mablは、最初のテストから共有された変数を次のテストに渡し、トレーニングやアドホック実行のために作成されたプレースホルダー値を上書きします。
変数名の競合の解決
複数のテスト実行が同じ変数を生成して共有する場合でも、異なる値を持つ場合、最後に完了したテスト実行が、以前のテスト実行によって設定された変数の値を上書きします。一般的なルールとして、次のプラン構成を持つテストからの変数の共有は避けてください。
同じ変数に対して複数の値がテストに渡された場合、次の順序が優先されます。
- データテーブル・シナリオ
- 共有変数
- 環境変数
- テストデータ駆動型変数(デフォルト値)
- フローのデータ駆動型変数(デフォルト値)
データテーブルのシナリオの値は、他の値を上書きします。