目次
概要
「繰り返し」のコマンドを使うと、特定の条件が満たされるまで処理を繰り返すことができます。たとえば、特定のメッセージが表示されるまであるボタンをクリックし続けたいという場合には「UI要素の値が一致するまで繰り返す」というコマンドが使えます。下の図のように、「〜するまで繰り返す」コマンドと「繰り返し終わり」コマンドの間に挟まれたコマンドが繰り返し実行されます。
コマンド一覧の「繰り返し」カテゴリの中で、他にどのようなコマンドがあるか確認できます。条件分岐コマンド同様、繰り返しコマンドを入れ子にすることもできます。
一定回数の繰り返しを実現するには
「ある条件が整うまで」というよりも決まった回数だけ処理を繰り返したい場合は、四則演算のコマンドを組み合わせることで実現できます。下の図のように、まず変数に初期値を入れ、繰り返しの条件をその変数が一定の値になるまでとし、繰り返し処理の中で変数の値に1を足します。この例では、処理が10回繰り返されるように設定しています。Xの値が10になると3行目に進まずに繰り返し終了となるので、Xの値を1からではなく0から始めていることに注意してください。
この方法をとる場合、他にもいくつかの注意点があります。
- MagicPodの仕様上、「変数〜〜」と書いてある箇所以外で変数名を参照するときは${}で囲む必要があります。今回の使い方では、四則演算コマンドの2つめの引数だけが「${X}」となりますので注意してください。また、「$X」という記法は使えません。
- 繰り返しが終わっても変数の値は元には戻りません。1つのテストケースで複数の繰り返しコマンドを用いる場合は、異なる変数名を使うか、同じ変数名を使うのであれば各繰り返しの前に値を0・1などに戻す必要があります。また、繰り返しを入れ子にする場合は必ず異なる変数名を使ってください。
テスト結果の表示
テスト結果詳細画面の「画面キャプチャ」のタブでは、繰り返されたステップのスクリーンショットが時系列順に並んで表示されます。基本的には繰り返された回数分のスクリーンショットが表示されますが、回数が多い場合は一部が省略されることもあります。詳細は保存されるスクリーンショットの上限の項目を確認してください。
「実行ログ」のタブでは、左右のエリアで表示方法が異なります。左側のエリアでは繰り返しの中身は一回分だけ表示されますが、プルダウンで番号を切り替えることで任意の回数時点の結果を確認できます。一方、右側のエリアでは「画面キャプチャ」タブのようにすべての結果が表示されます。
いずれのタブでも、繰り返しの何回目かという情報はステップ番号の後の()内に表示されます。たとえば、「3(4)」であれば3行目を4回目に実行した結果となります。
入れ子の繰り返しコマンドの場合、「6(1.2)」のように表される結果は、外側の繰り返しが1回目、内側の繰り返しが2回目に実行した6行目の結果を表します。
タイムアウトと時間間隔の調整
繰り返しコマンドの末尾にある下矢印アイコンを押下すると、タイムアウトと繰り返し間隔を設定するエリアが表示されます。タイムアウトは繰り返し処理全体の最大実行時間、繰り返し間隔はN回目が終わってからN+1回目を始めるまでの間隔となります。
実行したい内容によって、必要に応じて値を調整してください。現状の初期値や最大・最小値は下記の通りです。
初期値 | 最小値 | 最大値 | |
タイムアウト | 600 | 1 | 3600 |
繰り返し間隔 | 5 | 1 | 制限なし |
制限事項
保存されるスクリーンショットの上限
テスト結果に不要な大きすぎるデータを保持するのを避けるため、繰り返しの回数が多い場合は開始から10回目まで・終了直前の10回分のスクリーンショットだけが保存されます。つまり、50回実行された場合は間の30回分が省略されることになります。この基準は繰り返しの中のステップ数に依らず一定です。
また、繰り返し構造が入れ子になっている場合でも、内側の繰り返しは外側の繰り返しの回数に依らず開始・終了時10回分ずつのみが保存されます。たとえば外側の処理が20回繰り返され、その各々の中で内側の処理が2回ずつ繰り返された場合は、
- 外側の繰り返しの直下にあるステップ:20回分すべてのスクリーンショットが保存される
- 内側の繰り返しの中のステップ:全部で40回実行されるが、そのうち最初の10回と最後の10回(外側の繰り返しでは最初の5回と最後の5回に相当)が保存される
となります。
画像差分の承認
繰り返しの内部でも「画像差分がないか確認」コマンドを使うことができますが、差分が出た場合は繰り返した回数分の差分が表示され、そのうち1つを承認すると他のものは承認できなくなります。こちらはデータパターンや共有ステップを用いたテストでも起きているのと同様の結果で、現状の制限事項となります。