{ "name": "팝업 관리 플로우", "description": "팝업 등록 → 목록 조회 → 활성 팝업 조회 → 수정 → 삭제 플로우 테스트", "version": "1.0", "config": { "baseUrl": "", "timeout": 30000, "stopOnFailure": true }, "variables": { "user_id": "{{$env.FLOW_TESTER_USER_ID}}", "user_pwd": "{{$env.FLOW_TESTER_USER_PWD}}" }, "steps": [ { "id": "login", "name": "로그인", "method": "POST", "endpoint": "/api/v1/login", "body": { "user_id": "{{user_id}}", "user_pwd": "{{user_pwd}}" }, "expect": { "status": [200], "jsonPath": { "$.access_token": "@isString" } }, "extract": { "token": "$.access_token" } }, { "id": "list_popups", "name": "팝업 목록 조회", "method": "GET", "endpoint": "/api/v1/popups", "headers": { "Authorization": "Bearer {{login.token}}" }, "queryParams": { "page": 1, "per_page": 10 }, "expect": { "status": [200], "jsonPath": { "$.success": true } } }, { "id": "create_popup", "name": "팝업 등록", "method": "POST", "endpoint": "/api/v1/popups", "headers": { "Authorization": "Bearer {{login.token}}" }, "body": { "title": "Flow 테스트 팝업", "content": "

테스트용 팝업 콘텐츠입니다.

", "popup_type": "notice", "position": "center", "width": 500, "height": 400, "start_at": "2025-01-01T00:00:00Z", "end_at": "2025-12-31T23:59:59Z", "is_active": true, "show_today_close": true, "target_pages": ["dashboard", "main"] }, "expect": { "status": [200, 201], "jsonPath": { "$.success": true } }, "extract": { "popup_id": "$.data.id" }, "continueOnFailure": true }, { "id": "get_popup_detail", "name": "팝업 상세 조회", "method": "GET", "endpoint": "/api/v1/popups/{{create_popup.popup_id}}", "headers": { "Authorization": "Bearer {{login.token}}" }, "expect": { "status": [200], "jsonPath": { "$.success": true, "$.data.id": "@isNumber" } }, "continueOnFailure": true }, { "id": "get_active_popups", "name": "활성 팝업 목록 조회", "description": "현재 표시 중인 팝업 목록", "method": "GET", "endpoint": "/api/v1/popups/active", "headers": { "Authorization": "Bearer {{login.token}}" }, "queryParams": { "page": "dashboard" }, "expect": { "status": [200], "jsonPath": { "$.success": true } } }, { "id": "update_popup", "name": "팝업 수정", "method": "PUT", "endpoint": "/api/v1/popups/{{create_popup.popup_id}}", "headers": { "Authorization": "Bearer {{login.token}}" }, "body": { "title": "Flow 테스트 팝업 (수정됨)", "is_active": false }, "expect": { "status": [200], "jsonPath": { "$.success": true } }, "continueOnFailure": true }, { "id": "verify_inactive", "name": "비활성 상태 확인", "method": "GET", "endpoint": "/api/v1/popups/{{create_popup.popup_id}}", "headers": { "Authorization": "Bearer {{login.token}}" }, "expect": { "status": [200], "jsonPath": { "$.success": true, "$.data.is_active": false } }, "continueOnFailure": true }, { "id": "delete_popup", "name": "팝업 삭제", "method": "DELETE", "endpoint": "/api/v1/popups/{{create_popup.popup_id}}", "headers": { "Authorization": "Bearer {{login.token}}" }, "expect": { "status": [200], "jsonPath": { "$.success": true } }, "continueOnFailure": true }, { "id": "verify_deleted", "name": "삭제 확인", "method": "GET", "endpoint": "/api/v1/popups/{{create_popup.popup_id}}", "headers": { "Authorization": "Bearer {{login.token}}" }, "expect": { "status": [404] }, "continueOnFailure": true } ] }