콤보 재생 사용 가이드

문서 버전: 20260729

본 문서가 지원하는 앱 버전:

  • iOS: >= 3.13
  • Android: >= 1.2.0

콤보 재생(Combo Replay)은 여러 HTTP/HTTPS 요청을 하나의 「워크플로」로 편성하여, 의존 관계에 따라 자동으로 순차 또는 병렬 실행합니다. API 연동 테스트, 회귀 테스트, 동일 API의 서로 다른 입력값 일괄 검증 등에 적합합니다.

ApiCatcher | 콤보 재생 사용 시나리오

1. 기능 개요

기능설명
다중 요청 편성캡처 기록에서 요청을 선택하여 캔버스에 조합
동일 API 다중 노드동일 엔드포인트를 여러 번 추가하고, 각 노드마다 독립적인 사전 설정 매개변수 지정
의존 관계실행 순서 제어(예: 로그인 후 비즈니스 API 호출)
의존성 주입상류 응답의 token 등을 하류 요청에 자동 입력
표현식 주입타임스탬프, UUID 동적 생성 또는 전역 변수 사용
수동 실행원터치 재생, 각 노드의 요청/응답 상세 확인
예약 작업Cron 또는 사용자 지정 간격으로 자동 실행

2. 빠른 시작

1단계: 먼저 캡처

콤보 재생의 요청은 캡처 기록에서 가져옵니다. 먼저 앱에서 HTTP/HTTPS 요청을 정상적으로 캡처하세요(WebSocket 요청은 추가할 수 없습니다).

2단계: 규칙 생성

  1. 콤보 재생 목록으로 이동
  2. + 를 탭하여 콤보 재생 규칙 추가
  3. 규칙 이름 입력(필수, 기본값은 Combo Replay 260729 형식)
  4. 오른쪽 하단 + 를 탭하여 캔버스에 요청 추가
  5. 목록에서 필요한 요청 선택

ApiCatcher | 콤보 재생 규칙 생성 단계

3단계: 실행

  1. 규칙 저장(편집 화면 오른쪽 상단 ✓)
  2. 목록에서 규칙 이름을 탭 하여 실행 화면 진입
  3. 재생 실행

실행 완료 후 노드에 성공/실패 상태가 표시됩니다. 노드를 탭하면 상세 내용을 확인할 수 있습니다.

ApiCatcher | 콤보 재생 규칙 실행

3. 규칙 관리

3.1 목록 정보

각 규칙 카드에 표시되는 항목:

  • 규칙 이름
  • 노드 수
  • 경로 미리보기(최대 3개)
  • 의존 관계 수, 매개변수 매핑 수
  • 최근 업데이트 시간

3.2 생성 / 편집 / 삭제

작업방법
생성목록 화면 내비게이션 바 +
편집왼쪽 스와이프 → 편집
삭제왼쪽 스와이프 → 삭제
저장편집 화면 오른쪽 상단

규칙은 로컬에 저장됩니다. 앱 삭제 또는 데이터 삭제 시 손실됩니다.

ApiCatcher | 콤보 재생 규칙 목록

4. 콤보 규칙 편집

4.1 요청 추가

  • 화면 오른쪽 하단 + 플로팅 버튼 탭
  • URL / Method 검색 지원
  • Session, Host, 유형, 상태 코드로 필터

동일 API를 여러 번 추가 가능: 예를 들어 /api/order 노드 3개를 추가하여 정상 주문, 경계값, 잘못된 매개변수를 각각 테스트.

4.2 노드 메뉴

노드를 탭하면 메뉴가 표시됩니다:

메뉴기능
의존 관계 설정연결 모드 진입 후 대상 노드를 탭하여 의존 관계 생성
사전 설정 매개변수요청의 Query / Header / Body 수정(실행 화면에서도 수정 가능하나, 실행 화면 수정은 임시)
의존성 주입상류 응답 → 하류 요청 매개변수 매핑 설정
삭제노드 및 관련 의존 관계, 매핑 삭제

노드 드래그 로 위치 조정; 빈 공간 탭 으로 선택 해제 또는 연결 모드 종료.

ApiCatcher | 의존 관계 생성 및 의존성 주입 설정

5. 사전 설정 매개변수

규칙 편집 단계 에서 각 노드의 테스트 데이터를 고정하는 데 사용. 특히 「동일 API, 다른 입력값」 시나리오에 적합합니다.

5.1 작업 단계

  1. 노드 탭 → 사전 설정 매개변수
  2. 쿼리 매개변수 / 요청 헤더 / 요청 본문 각각 편집
  3. 모두 편집 후 사전 설정 매개변수 시트 오른쪽 상단 를 탭하여 규칙에 저장

5.2 실행 화면 「요청 수정」과의 차이

사전 설정 매개변수(편집 화면)요청 수정(실행 화면)
진입노드 메뉴 → 사전 설정 매개변수실행 화면에서 노드 탭
영속성규칙에 저장, 다음에도 유지이번 실행만, 규칙에 쓰지 않음
용도고정 테스트 케이스임시 조정 후 재실행

5.3 일반적인 사용: 동일 API 다중 시나리오

노드 A: POST /api/login     → body: 정상 계정
노드 B: POST /api/login     → body: 잘못된 비밀번호
노드 C: POST /api/login     → body: 빈 비밀번호
(3개 노드 의존 관계 없음 → 병렬 실행)

5.4 표현식 주입 지원

참조: 【8. 표현식 주입】

ApiCatcher | 사전 설정 매개변수

6. 의존 관계

6.1 의미

연결 A → B 는: A가 B에 의존, B가 먼저 실행되고 A가 나중에 실행됨을 의미합니다.

화살표는 하류(A) 에서 상류(B) 로 향합니다.

6.2 의존 관계 생성

  1. 하류 노드 탭 → 의존 관계 설정
  2. 상단에 파란색 안내 표시: 「대상 노드를 탭하여 의존 관계 생성」
  3. 상류 노드
  4. 연결선 표시

6.3 제한

  • 동일한 의존 관계 중복 생성 불가
  • 순환 형성 불가
  • 연결선 삭제 시 관련 매개변수 매핑 도 함께 삭제

6.4 실행 순서 예시

        ┌─ 노드 B ─┐
노드 A ─┤          ├─ 병렬(동일 계층)
        └─ 노드 C ─┘
              ↓
           노드 D(A, C 모두 성공 후 실행)
  • 동일 계층(상호 의존 없음): 병렬 실행
  • 다른 계층(의존 관계 있음): 순차 실행, 이전 계층이 모두 성공한 후 다음 계층 실행
  • 어느 계층이든 실패: 이후 모든 노드 건너뜀 표시

7. 의존성 주입(매개변수 매핑)

상류 응답의 token, userId 등을 하류 요청에 자동으로 입력하는 데 사용합니다.

7.1 전제 조건

대상 노드에 최소 하나의 상류 의존 관계 가 있어야 합니다. 없으면 「상류 노드 없음, 먼저 의존 관계를 생성하세요」가 표시됩니다.

7.2 설정 단계

  1. 하류 노드 탭 → 의존성 주입
  2. 매핑 추가 탭 후 설정:
설정 항목설명예시
소스 노드어느 상류에서 응답을 가져올지로그인 노드
상류 응답에서 추출응답 헤더 / 응답 본문 JSON 경로data.token
요청에 주입요청 헤더 / 쿼리 매개변수 / 요청 본문헤더 Authorization
선택적 접두사주입 값 앞에 붙일 문자열Bearer
  1. 매핑 저장

ApiCatcher | 의존성 주입

7.3 일반적인 시나리오: 로그인 + Token 포함 요청

[로그인 POST /login] ──→ [사용자 정보 GET /user/profile]
         │                        ↑
    응답: data.token      Authorization = Bearer ${주입된 token}
  1. 두 요청 추가
  2. GET /user/profile 에서 → 의존 관계 설정POST /login
  3. GET /user/profile 에서 → 의존성 주입:
    • 소스: 로그인 노드, 응답 본문 data.token
    • 대상: 헤더 Authorization
    • 접두사: Bearer

7.4 실행 시 처리 순서

사전 설정 매개변수 / 요청 수정
        ↓
   표현식 주입(${method.timestamp()} 등)
        ↓
   의존성 주입(매개변수 매핑)
        ↓
     HTTP 요청 전송

8. 표현식 주입

요청 헤더, 쿼리 매개변수, 요청 본문${...} 표현식을 작성하면 실행 시 자동 치환됩니다.

8.1 내장 메서드

표현식치환 결과
${method.timestamp()}현재 타임스탬프(밀리초)
${method.uuid()}UUID(소문자)
${method.date()}날짜, 예: 2026-07-29
${method.time()}시간, 예: 14:30:00
${method.datetime()}날짜시간, 예: 2026-07-29 14:30:00

예시:

{
  "requestId": "${method.uuid()}",
  "timestamp": "${method.timestamp()}",
  "date": "${method.date()}"
}

8.2 전역 변수

${token}, ${appId}method. 로 시작하지 않는 표현식은 전역 변수입니다.

설정 방법(실행 화면):

  1. 규칙의 임의 노드에서 ${variableName} 표현식 사용
  2. 실행 화면 상태 표시줄 오른쪽에 🌐 버튼 표시
  3. 탭하여 각 변수 값 입력
  4. 저장 후 규칙과 함께 영속화(규칙 삭제 시 함께 제거)

사전 설정 매개변수, 실행 화면 「요청 수정」 모두 표현식 구문 지원; 실제 치환은 「재생 실행」 탭 시 발생.

8.3 조합 예시

Header:  X-Request-Id: ${method.uuid()}
Query:   ts=${method.timestamp()}
Body:    {"token": "${token}", "userId": "123"}

실행 전 🌐 에서 token 실제 값을 입력하세요.

ApiCatcher | 표현식 주입

9. 실행 화면

9.1 화면 구성

ApiCatcher | 실행 화면

9.2 실행 전

  • 노드 탭요청 수정(이번 실행만, 규칙에 쓰지 않음)
  • 전역 변수 표현식 있음 → 🌐 탭하여 변수 값 입력

9.3 실행 후

  • 노드 탭실행 상세(실제 전송된 요청, 응답, 소요 시간, 오류 정보)
  • 내비게이션 바 초기화(빨간색): 모든 결과 삭제 후 재편집 및 재실행 가능

9.4 노드 상태

상태의미
회색 원실행 대기
파란색 진행실행 중
녹색 ✓성공(HTTP 2xx)
빨간색 ✗실패
주황색 −건너뜀(상류 실패)

9.5 성공 판정

HTTP 상태 코드 200–299 는 성공, 그 외는 실패로 간주합니다.

10. 일반적인 시나리오 모음

시나리오 1: 동일 API 다중 입력값 병렬 테스트

POST /api/order  노드1  body: {"type":"normal"}
POST /api/order  노드2  body: {"type":"edge"}
POST /api/order  노드3  body: {"type":"invalid"}
  • 의존 관계 없음 → 3개 노드 병렬 실행
  • 각 노드에서 사전 설정 매개변수 로 다른 body 설정
  • 실행 후 각 노드 결과 비교

시나리오 2: 로그인 체인 호출

POST /login  →  GET /user  →  POST /order
     │              ↑              ↑
     └──── token을 Authorization에 주입 ─┘
  • 의존 관계 설정: GET /userPOST /login 에 의존, POST /orderGET /user 에 의존
  • GET /user, POST /order 에서 token 매핑 설정
  • 순차 실행: 로그인 → 사용자 정보 조회 → 주문

시나리오 3: 동적 매개변수 + 고정 Token

  • Body: {"ts":"${method.timestamp()}","id":"${method.uuid()}"}
  • Header: Authorization: Bearer ${token}
  • 실행 전 🌐 에서 token 입력
  • 실행할 때마다 타임스탬프, UUID 자동 갱신

11. 자주 묻는 질문

Q: 요청을 추가했는데 실행 화면이 비어 있나요?
A: 편집 화면에서 로 규칙을 저장한 후 목록에서 실행 화면으로 진입하세요.

Q: 사전 설정 매개변수를 변경했는데 실행 화면에 반영되지 않나요?
A: 편집 화면에서 규칙이 저장되었는지 확인하세요. 실행 화면 「요청 수정」은 해당 실행에만 영향을 주며 사전 설정 매개변수를 덮어쓰지 않습니다.

Q: 의존성 주입이 작동하지 않나요?
A: 확인: ① 의존 관계가 생성되었는지; ② JSON 경로가 샘플 응답과 일치하는지; ③ 상류 노드가 성공했는지; ④ 표현식 주입이 의존성 주입보다 먼저 실행되므로 순서 주의.

Q: 전역 변수가 빈 값으로 치환되나요?
A: 실행 화면에서 🌐 을 탭하여 변수 값을 입력하고 저장해야 합니다. 미입력 시 빈 문자열로 치환됩니다.

Q: 일부 노드가 건너뛰어지는 이유는?
A: 동일 계층 또는 상류 노드 실행 실패 시 후속 계층의 모든 노드가 「건너뜀」으로 표시됩니다.

Q: WebSocket 요청을 추가할 수 있나요?
A: 아니요. 일반 HTTP/HTTPS 요청만 지원합니다.

12. 작업 빠른 참조

하고 싶은 것방법
새 규칙 생성목록 + → 이름 입력 → 요청 추가 →
동일 API 다중 매개변수 테스트동일 요청 여러 번 추가 → 각 노드 사전 설정 매개변수
실행 순서 제어의존 관계 설정 → 상류 노드 탭
token 자동 포함의존성 주입 매핑 설정
동적 타임스탬프/UUID매개변수에 ${method.timestamp()} 등 작성
token 등 공유 설정${token} 작성 → 실행 화면 🌐 입력
임시 매개변수 변경 후 재실행실행 화면 노드 탭 → 요청 수정
요청 상세 확인실행 후 노드 탭
다시 실행초기화재생 실행