콤보 재생 사용 가이드
문서 버전: 20260729
본 문서가 지원하는 앱 버전:
- iOS: >= 3.13
- Android: >= 1.2.0
콤보 재생(Combo Replay)은 여러 HTTP/HTTPS 요청을 하나의 「워크플로」로 편성하여, 의존 관계에 따라 자동으로 순차 또는 병렬 실행합니다. API 연동 테스트, 회귀 테스트, 동일 API의 서로 다른 입력값 일괄 검증 등에 적합합니다.

1. 기능 개요
| 기능 | 설명 |
|---|---|
| 다중 요청 편성 | 캡처 기록에서 요청을 선택하여 캔버스에 조합 |
| 동일 API 다중 노드 | 동일 엔드포인트를 여러 번 추가하고, 각 노드마다 독립적인 사전 설정 매개변수 지정 |
| 의존 관계 | 실행 순서 제어(예: 로그인 후 비즈니스 API 호출) |
| 의존성 주입 | 상류 응답의 token 등을 하류 요청에 자동 입력 |
| 표현식 주입 | 타임스탬프, UUID 동적 생성 또는 전역 변수 사용 |
| 수동 실행 | 원터치 재생, 각 노드의 요청/응답 상세 확인 |
| 예약 작업 | Cron 또는 사용자 지정 간격으로 자동 실행 |
2. 빠른 시작
1단계: 먼저 캡처
콤보 재생의 요청은 캡처 기록에서 가져옵니다. 먼저 앱에서 HTTP/HTTPS 요청을 정상적으로 캡처하세요(WebSocket 요청은 추가할 수 없습니다).
2단계: 규칙 생성
- 콤보 재생 목록으로 이동
- + 를 탭하여 콤보 재생 규칙 추가
- 규칙 이름 입력(필수, 기본값은
Combo Replay 260729형식) - 오른쪽 하단 + 를 탭하여 캔버스에 요청 추가
- 목록에서 필요한 요청 선택

3단계: 실행
- 규칙 저장(편집 화면 오른쪽 상단 ✓)
- 목록에서 규칙 이름을 탭 하여 실행 화면 진입
- 재생 실행 탭
실행 완료 후 노드에 성공/실패 상태가 표시됩니다. 노드를 탭하면 상세 내용을 확인할 수 있습니다.

3. 규칙 관리
3.1 목록 정보
각 규칙 카드에 표시되는 항목:
- 규칙 이름
- 노드 수
- 경로 미리보기(최대 3개)
- 의존 관계 수, 매개변수 매핑 수
- 최근 업데이트 시간
3.2 생성 / 편집 / 삭제
| 작업 | 방법 |
|---|---|
| 생성 | 목록 화면 내비게이션 바 + |
| 편집 | 왼쪽 스와이프 → 편집 |
| 삭제 | 왼쪽 스와이프 → 삭제 |
| 저장 | 편집 화면 오른쪽 상단 ✓ |
규칙은 로컬에 저장됩니다. 앱 삭제 또는 데이터 삭제 시 손실됩니다.

4. 콤보 규칙 편집
4.1 요청 추가
- 화면 오른쪽 하단 + 플로팅 버튼 탭
- URL / Method 검색 지원
- Session, Host, 유형, 상태 코드로 필터
동일 API를 여러 번 추가 가능: 예를 들어 /api/order 노드 3개를 추가하여 정상 주문, 경계값, 잘못된 매개변수를 각각 테스트.
4.2 노드 메뉴
노드를 탭하면 메뉴가 표시됩니다:
| 메뉴 | 기능 |
|---|---|
| 의존 관계 설정 | 연결 모드 진입 후 대상 노드를 탭하여 의존 관계 생성 |
| 사전 설정 매개변수 | 요청의 Query / Header / Body 수정(실행 화면에서도 수정 가능하나, 실행 화면 수정은 임시) |
| 의존성 주입 | 상류 응답 → 하류 요청 매개변수 매핑 설정 |
| 삭제 | 노드 및 관련 의존 관계, 매핑 삭제 |
노드 드래그 로 위치 조정; 빈 공간 탭 으로 선택 해제 또는 연결 모드 종료.

5. 사전 설정 매개변수
규칙 편집 단계 에서 각 노드의 테스트 데이터를 고정하는 데 사용. 특히 「동일 API, 다른 입력값」 시나리오에 적합합니다.
5.1 작업 단계
- 노드 탭 → 사전 설정 매개변수
- 쿼리 매개변수 / 요청 헤더 / 요청 본문 각각 편집
- 모두 편집 후 사전 설정 매개변수 시트 오른쪽 상단 ✓ 를 탭하여 규칙에 저장
5.2 실행 화면 「요청 수정」과의 차이
| 사전 설정 매개변수(편집 화면) | 요청 수정(실행 화면) | |
|---|---|---|
| 진입 | 노드 메뉴 → 사전 설정 매개변수 | 실행 화면에서 노드 탭 |
| 영속성 | 규칙에 저장, 다음에도 유지 | 이번 실행만, 규칙에 쓰지 않음 |
| 용도 | 고정 테스트 케이스 | 임시 조정 후 재실행 |
5.3 일반적인 사용: 동일 API 다중 시나리오
노드 A: POST /api/login → body: 정상 계정
노드 B: POST /api/login → body: 잘못된 비밀번호
노드 C: POST /api/login → body: 빈 비밀번호
(3개 노드 의존 관계 없음 → 병렬 실행)
5.4 표현식 주입 지원
참조: 【8. 표현식 주입】

6. 의존 관계
6.1 의미
연결 A → B 는: A가 B에 의존, B가 먼저 실행되고 A가 나중에 실행됨을 의미합니다.
화살표는 하류(A) 에서 상류(B) 로 향합니다.
6.2 의존 관계 생성
- 하류 노드 탭 → 의존 관계 설정
- 상단에 파란색 안내 표시: 「대상 노드를 탭하여 의존 관계 생성」
- 상류 노드 탭
- 연결선 표시
6.3 제한
- 동일한 의존 관계 중복 생성 불가
- 순환 형성 불가
- 연결선 삭제 시 관련 매개변수 매핑 도 함께 삭제
6.4 실행 순서 예시
┌─ 노드 B ─┐
노드 A ─┤ ├─ 병렬(동일 계층)
└─ 노드 C ─┘
↓
노드 D(A, C 모두 성공 후 실행)
- 동일 계층(상호 의존 없음): 병렬 실행
- 다른 계층(의존 관계 있음): 순차 실행, 이전 계층이 모두 성공한 후 다음 계층 실행
- 어느 계층이든 실패: 이후 모든 노드 건너뜀 표시
7. 의존성 주입(매개변수 매핑)
상류 응답의 token, userId 등을 하류 요청에 자동으로 입력하는 데 사용합니다.
7.1 전제 조건
대상 노드에 최소 하나의 상류 의존 관계 가 있어야 합니다. 없으면 「상류 노드 없음, 먼저 의존 관계를 생성하세요」가 표시됩니다.
7.2 설정 단계
- 하류 노드 탭 → 의존성 주입
- 매핑 추가 탭 후 설정:
| 설정 항목 | 설명 | 예시 |
|---|---|---|
| 소스 노드 | 어느 상류에서 응답을 가져올지 | 로그인 노드 |
| 상류 응답에서 추출 | 응답 헤더 / 응답 본문 JSON 경로 | data.token |
| 요청에 주입 | 요청 헤더 / 쿼리 매개변수 / 요청 본문 | 헤더 Authorization |
| 선택적 접두사 | 주입 값 앞에 붙일 문자열 | Bearer |
- 매핑 저장

7.3 일반적인 시나리오: 로그인 + Token 포함 요청
[로그인 POST /login] ──→ [사용자 정보 GET /user/profile]
│ ↑
응답: data.token Authorization = Bearer ${주입된 token}
- 두 요청 추가
GET /user/profile에서 → 의존 관계 설정 →POST /login탭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. 로 시작하지 않는 표현식은 전역 변수입니다.
설정 방법(실행 화면):
- 규칙의 임의 노드에서
${variableName}표현식 사용 - 실행 화면 상태 표시줄 오른쪽에 🌐 버튼 표시
- 탭하여 각 변수 값 입력
- 저장 후 규칙과 함께 영속화(규칙 삭제 시 함께 제거)
사전 설정 매개변수, 실행 화면 「요청 수정」 모두 표현식 구문 지원; 실제 치환은 「재생 실행」 탭 시 발생.
8.3 조합 예시
Header: X-Request-Id: ${method.uuid()}
Query: ts=${method.timestamp()}
Body: {"token": "${token}", "userId": "123"}
실행 전 🌐 에서 token 실제 값을 입력하세요.

9. 실행 화면
9.1 화면 구성

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 /user는POST /login에 의존,POST /order는GET /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} 작성 → 실행 화면 🌐 입력 |
| 임시 매개변수 변경 후 재실행 | 실행 화면 노드 탭 → 요청 수정 |
| 요청 상세 확인 | 실행 후 노드 탭 |
| 다시 실행 | 초기화 → 재생 실행 |