この記事の情報は2024/02/26時点、下記バージョンのmablについてのものです。
mablアプリ:2.5.40
mablトレーナー:2.2.12.21
前置き
mablで変数を共有する機能を使ってテストを作る機会があったのですが、使い方で少し詰まったので公式ドキュメントの補足を兼ねてメモ。
公式ドキュメントはこちら。
どんな機能?
テスト内で作成した変数をテストプラン内の後続のテストに受け渡すことができます。
プラン単位でのクラウド実行でのみ有効な機能です。
ユースケース
テスト間に依存関係がある構成のテストプランを作りたいとき。
具体的には、乱数入りのアカウント名でアカウントを作成するテストの後、別のテストでそのアカウント情報を使った操作を行いたい場合など。
テスト側の設定
共有元と共有先のテストで必要な設定内容が異なります。
共有元のテスト
手順
- 変数を作成するステップを含むテストを作成
- テスト詳細画面のテスト編集画面から「変数を共有する」トグルをonにして保存
共有する変数名は後で使うのでメモっておくのが良いでしょう。
この部分に関しては公式ドキュメントの「変数の共有の設定」の項目の方が画像付きで詳しいです。
共有先のテスト
トレーナーの「データ駆動型変数」の設定画面に、共有元と同じ名前の変数を追加するだけです。
手順
- トレーナー下部の変数ボタンから「このテストの変数を管理する」をクリック
- 「データ駆動型変数」をクリック
- 「新規変数」をクリック
- 受け取りたい変数名を入力し(大文字小文字含め共有元と完全一致させる)、デフォルト値を設定する
- 「適用する」「OK」の順にクリックして変数の設定を保存
あとは設定した変数を使用してテストを作成すればOKです。
テストプラン側の設定
共有元→共有先の順でテストが必ず完了するようにステージを編集する。
公式ドキュメントでも紹介されている通り、関連するテストを直列で実行させるのがよいでしょう。
ローカル実行時の注意
この機能はクラウドでのプラン実行向けの機能であるため、ローカル実行では変数を共有することができません。
例えばmabl-cliなどで--from-plan-id
オプションを用いてプランのローカル実行を行った場合、変数が共有されず、デフォルト値を使用するようになります。
そのため対策無しだと共有先のテストが一斉に落ちる可能性があります。
対策は色々考えられますが、素直にクラウド実行した方がいいですし、いい方法が思いつかないので今回は省略します。。。