複数の要素を含む配列(特定のコンテンツのリスト、または前のステップから取得したリスト)があり、そのリスト内の各項目に対して同じ操作を実行する必要がある場合(例:最初に商品リストを取得し、その後リスト内の各商品をショッピングカートに追加する場合)、ForEach ループを使用する必要があります。ForEach ループでは、ループ内の操作が配列内の各要素に対して実行されます。For ループとの違いは、反復回数を気にする必要がなく、ループ対象の配列の内容だけに集中すればよい点です。ループ配列の設定:ForEach ループでは、配列をループ対象として設定する必要があります。変数を使用することも、["a","b","c"] のように配列を手動で入力することもできます。
リクエストの追加:ForEach ループ内では、1 つ以上のリクエストを追加したり、他のループや条件分岐などを追加したりできます。
Break If 条件と On Error 処理:ForEach ループには、上記の for ループと同様に、Break if と On error を追加できます。
ForEach ループの詳細設定では、Break If と On Error の例外処理オプションもカスタマイズできます。詳細については、判定ルールを参照してください。
ForEach の使用例#
ペット情報のリストを取得するエンドポイントと、単一のペットの詳細を取得するエンドポイントの 2 つを考えます。リストに最近追加されたペットの詳細を取得する必要がある場合、自動テストで ForEach ループを使用してこのシナリオを設定できます。1.
ForEach ループの外側の最初のステップでは、ペット情報リストのエンドポイントにリクエストして、実際のリストデータを取得します。通常、このインターフェースのレスポンスには、ペット ID や名前など、複数のペットに関する基本情報を含む配列が含まれます。
2.
前のステップのレスポンスに含まれるペット配列のサブセットをソース配列として、ForEach ループを設定します。
3.
ループ内で、「ペット情報を取得」エンドポイントへのリクエストを設定し、ForEach ループの要素値を使用して、このリクエストの ID パラメータに入力します。
リクエスト内でループ要素を使用する#
ループの現在の要素/インデックスは、リクエスト内のローカル変数として使用でき、パラメータやリクエストボディを動的に調整できます。これを利用するには、次の手順を実行します。1
ForEach ループを追加し、ループ内にリクエストを含めます。
2
リクエストパラメータ内の
魔法の杖 アイコンをクリックし、「前のステップのデータを取得」を選択します。
3
通常「
{{array}} の各要素をループ」と表示されるループオプションを選択します。
4
「現在のループ要素」を選択します。JSONPath を使用して要素のプロパティを抽出できます。
5
{{$.17.element}} のような動的変数を取得できます。「挿入」をクリックすると、実行時に現在のループの要素、つまりループ配列の要素に置き換えられます。
現在のループ要素:システムは、ForEach ループで指定された配列から要素を自動的に抽出し、指定された変数に保存します。各反復の開始時に、この変数は配列内の現在の要素の値で更新されます。要素がオブジェクトの場合、JSONPath を使用して、{{$.1.element.data.name}} のように特定のサブフィールドを抽出できます。現在のループインデックス:現在のループのインデックスは、この変数に保存されます。0 から開始し、後続の各反復の開始時に 1 ずつ増加して、現在のインデックスを反映します。