ループを使用すると、固定数や変数を使用して繰り返す一連のテストステップを設定できます。この記事では、mablトレーナーでループを操作するさまざまな方法について説明します。
制限事項
フローのAPIテストではループ処理はサポートされていません。
ループを作成する
mablトレーナーで、次の手順を実行してループを作成します。
- [+ (ステップを追加)] > [ループ処理] をクリックします。
- ループは mabl では フロー として保存されます。フローに名前を付けてください。必要に応じて、パラメータを追加することもできます。
- [ループ処理] タブをクリックします。
- [指定回数ループ処理] を選択するか、動的に数値を設定するには [変数を使ったループ処理]を選択します。値は、2~500の有効な数値である必要があります。フローパラメータを使用してループするようにフローを設定することはできません。
- OK をクリックします。
- [Start flow] ステップと [End flow] ステップの内側にTrainerのカーソルがある状態で、ループ内で繰り返すテストステップを記録します。
または、既存のテストステップのセットをループに変換することもできます。ループを作成し、[Start flow] ステップと [End flow] ステップをドラッグアンドドロップして、ループ内で繰り返すテストステップを囲みます。
ループの命名規則
フローでループ値を設定しても、その設定はフローの他のインスタンスには適用されません。ループとして機能させることが目的のフローを識別するために、ワークスペースでは命名規則を使用することをお勧めします。
ループの設定
ループインデックスにアクセスする
ループ内では、run.loop_indexという名前の、1から始まる特別な読み取り専用の変数が追加されます。ループインデックスにアクセスするには、mablの変数構文{{@run.loop_index}}を使用します。
スニペットでは、次のいずれかの方法でループインデックスにアクセスできます。
-
{{@run.loop_index}}をスニペットのパラメータとして追加します。 -
mablInputsオブジェクトからループインデックスにアクセスする:mablInputs.variables.web.runtime.flow_run_ordinal_index
Trainerでループを再生する
mablトレーナーでループを再生する際、ループを途中で停止したとしても、mablは現在のインデックスからループ再生を再開しようとします。Trainerでの再生用に特定の反復にループを設定するには、ループドロップダウンをクリックしてください。
ループを早期に終了させる
特定の条件が満たされたときにループを終了させる事実上のwhileループを作成するには、次の手順を実行します。
- 変数を作成し、値として数値を代入します。
- 作成した変数を使ってループするフローを作成します。
- フロー内で、ループが終了する条件をアサートするIFステップを追加します。
- IFステップで、ループ変数と同じ名前で新しい変数を作成する変数ステップを追加し、その値を0に設定します。
- ELSEステップを追加します。
- ELSEステップで、ブレーク条件が満たされなかった場合にループが実行するステップを記録します。
次の例では、変数totalを500に初期化しています。ループ内で、チェックされたチェックボックスの数が5に達するとすぐに、totalの値が0に変わります。ループ変数の値を更新すると、ループが早期に終了します。
ループを早期に終了させる
テスト実行でループ出力を確認する
クラウドでループを含むテストを実行すると、テストの出力には各イテレーションごとに次のタグが表示されます:Loop: {current index}/{total loop count}。
{total loop count}は、テスト実行中にループが何回実行されたかを示します。この数値は、テストで設定したループ回数と必ずしも同じとは限りません。たとえば、ループを5回実行するように設定していても、テストがループの3回目で失敗した場合、テスト実行時の合計ループ回数は5ではなく3になります:Loop: {current index}/3。