여러 요소가 포함된 배열(특정 콘텐츠 목록 또는 이전 단계에서 얻은 목록)이 있고, 목록의 각 항목에 대해 동일한 작업을 수행해야 하는 경우(예: 먼저 제품 목록을 가져온 다음 목록의 각 제품을 장바구니에 추가하는 경우) ForEach 루프를 사용해야 합니다.ForEach 루프에서는 루프 내부의 작업이 배열의 각 요소에 대해 실행됩니다.For 루프와의 차이점은 반복 횟수를 신경 쓰지 않아도 된다는 점입니다. 루프 배열의 콘텐츠에만 집중하시면 됩니다.루프 배열 설정: ForEach 루프에서는 배열을 루프 객체로 설정해야 합니다. 변수를 사용하거나 ["a","b","c"]와 같은 배열을 수동으로 입력할 수 있습니다.
요청 추가: ForEach 루프 내에서 하나 이상의 요청을 추가하거나, 다른 루프 또는 조건 분기 등을 추가할 수 있습니다.
Break If 조건 및 On Error 처리: 위에서 언급한 for 루프와 동일하게 ForEach 루프에 Break if 및 On error를 추가할 수 있습니다.
ForEach 루프의 고급 설정에서는 Break If 및 On Error에 대한 예외 처리 옵션도 사용자 지정할 수 있습니다. 자세한 내용은 판단 규칙을 참조하십시오.
ForEach 사용 예시#
두 개의 엔드포인트를 고려해 보겠습니다. 하나는 반려동물 정보 목록을 조회하는 엔드포인트이고, 다른 하나는 단일 반려동물의 세부 정보를 가져오는 엔드포인트입니다. 목록에 최근 추가된 반려동물의 세부 정보를 가져와야 하는 경우, 자동화 테스트에서 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씩 증가하여 현재 인덱스를 나타냅니다.