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