"extract": {
"pageId": "$.data.id", // 이후 @{{step1.pageId}}로 사용
"pageName": "$.data.page_name", // 이후 @{{step1.pageName}}로 사용
"sections": "$.data.sections" // 배열도 추출 가능
}
{{-- AI로 만들기 탭 --}}
AI에게 플로우 JSON 요청하기
아래 프롬프트를 AI에게 전달하면 3단계로 최적의 플로우 JSON을 생성합니다.
AI 생성 프로세스
Step 1: 시나리오 설명 → AI가 스텝 목록 제안 → 확정
Step 2: AI가 규칙 제안 (분기, 검증, 변수 등) → 선택
Step 3: 최종 JSON 생성 → 복사하여 사용
프롬프트 템플릿
SAM API Flow Tester용 JSON을 만들어줘. 3단계로 진행해.
## 테스트 시나리오
[여기에 테스트하려는 시나리오를 자연어로 설명]
---
# Step 1: 스텝 목록 확정
위 시나리오를 분석해서 필요한 API 스텝 목록을 테이블로 제안해줘:
| # | 스텝 ID | 이름 | Method | Endpoint | 설명 |
**확정 후 다음 단계 진행**
---
# Step 2: 규칙 제안
확정된 스텝에 적용할 규칙들을 제안해줘:
## 분기(Branching) 규칙
- 어떤 스텝에서 조건 분기가 필요한가?
- 성공/실패에 따른 다른 경로가 있는가?
## 의존성(DependsOn) 규칙
- 스텝 간 실행 순서와 의존 관계
- 조건부 의존성이 필요한 경우 (onlyIf: success|failure|any|executed|skipped)
## 검증(Expect) 규칙
- 각 스텝별 예상 상태 코드
- jsonPath 검증이 필요한 필드
## 추출(Extract) 규칙
- 다음 스텝에서 사용할 값 추출
**확정 후 다음 단계 진행**
---
# Step 3: 최종 JSON 생성
## 필수 형식 규칙
```json
{
"name": "플로우 이름",
"description": "상세 설명",
"version": "1.0",
"config": {
"baseUrl": "",
"timeout": 30000,
"stopOnFailure": false
},
"variables": {
"user_id": "@{{$env.FLOW_TESTER_USER_ID}}",
"user_pwd": "@{{$env.FLOW_TESTER_USER_PWD}}"
},
"steps": [...]
}
```
## Step 속성 레퍼런스
- **id**: 고유 ID (영문, snake_case)
- **name**: 표시 이름 (한글 가능)
- **method**: GET|POST|PUT|PATCH|DELETE
- **endpoint**: /api/v1/... (prefix 필수)
- **headers**: { "Authorization": "Bearer @{{login.token}}" }
- **body**: 요청 본문
- **expect**: { "status": [200, 201], "jsonPath": { "$.success": true } }
- **extract**: { "token": "$.access_token" }
- **dependsOn**: ["step_id"] 또는 [{"step": "step_id", "onlyIf": "success|failure|any|executed|skipped"}]
- **condition**: 분기 조건 (아래 참조)
- **continueOnFailure**: true (실패해도 계속 진행)
## 분기(Condition) 문법
```json
// 1. 스텝 결과 기반
"condition": {"stepResult": "login", "is": "success"}
"condition": {"stepResult": "login", "is": "failure"}
// 2. 값 비교
"condition": "@{{login.role}} == 'admin'"
"condition": {"left": "@{{login.role}}", "op": "==", "right": "admin"}
// 3. 논리 연산
"condition": {"and": [조건1, 조건2]}
"condition": {"or": [조건1, 조건2]}
"condition": {"not": 조건}
// 4. 복합 조건
"condition": {
"and": [
{"stepResult": "login", "is": "success"},
{"left": "@{{login.permissions}}", "op": "contains", "right": "premium"}
]
}
```
## 조건부 의존성 (DependsOn)
```json
// 기본: 성공 시에만 실행
"dependsOn": ["login"]
// 조건부: 실패해도 실행 (정리 작업 등)
"dependsOn": [{"step": "login", "onlyIf": "any"}]
// 조건부: 실패했을 때만 실행
"dependsOn": [{"step": "login", "onlyIf": "failure"}]
```
## 변수 참조
- 환경변수: @{{$env.XXX}}
- 전역변수: @{{variables.xxx}}
- 이전 스텝 추출값: @{{stepId.extractKey}}
- 빌트인: @{{$timestamp}}, @{{$uuid}}, @{{$date}}, @{{$random:6}}
- Faker: @{{$faker.name}}, @{{$faker.email}}, @{{$faker.itemCode:PREFIX}}
---
위 형식에 맞춰 최종 JSON을 생성해줘. config.apiKey는 포함하지 마.
실제 예시: 권한별 분기 테스트
SAM API Flow Tester용 JSON을 만들어줘. 3단계로 진행해.
## 테스트 시나리오
로그인 후 사용자 권한(role)에 따라 다른 API를 호출하는 테스트:
- 로그인 시도 (성공/실패 분기)
- 로그인 성공 시: 프로필 조회 후 권한 확인
- 관리자(admin): 관리자 대시보드 조회 → 리포트 생성
- 일반 사용자(user): 사용자 대시보드 조회
- 로그인 실패 시: 비밀번호 재설정 요청
- 마지막에 항상 로그아웃 (성공/실패 무관)
## API 정보
- POST /api/v1/login - 로그인
- GET /api/v1/users/me - 프로필 (role 포함)
- GET /api/v1/admin/dashboard - 관리자 대시보드
- GET /api/v1/user/dashboard - 사용자 대시보드
- POST /api/v1/admin/reports - 리포트 생성
- POST /api/v1/auth/password-reset - 비밀번호 재설정
- POST /api/v1/logout - 로그아웃
Step 1부터 시작해줘.
Tip: AI가 각 단계에서 제안을 하면 "확인" 또는 수정 요청을 하고, 최종 JSON이 생성되면 복사하여 "새 플로우" 페이지에 붙여넣으세요.