{ "name": "Pricing API Validation Test", "description": "단가 API validation 테스트 - item_type_code common_codes 검증, margin_rate 100% 초과 허용 확인", "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": [ { "id": "login", "name": "1. 로그인", "method": "POST", "endpoint": "/login", "body": { "user_id": "{{user_id}}", "user_pwd": "{{user_pwd}}" }, "expect": { "status": [200], "jsonPath": { "$.access_token": "@isString" } }, "extract": { "token": "$.access_token" } }, { "id": "test_valid_item_type", "name": "2. 유효한 item_type_code 테스트 (PT)", "description": "common_codes에 있는 PT 코드로 단가 등록", "method": "POST", "endpoint": "/pricing", "headers": { "Authorization": "Bearer {{login.token}}" }, "body": { "item_type_code": "PT", "item_id": 1, "purchase_price": 10000, "margin_rate": 150, "sales_price": 25000, "effective_from": "2025-01-01" }, "expect": { "status": [200, 201], "jsonPath": { "$.success": true } }, "extract": { "priceId": "$.data.id" }, "continueOnFailure": true }, { "id": "test_invalid_item_type", "name": "3. 잘못된 item_type_code 테스트", "description": "common_codes에 없는 코드로 422 에러 확인", "method": "POST", "endpoint": "/pricing", "headers": { "Authorization": "Bearer {{login.token}}" }, "body": { "item_type_code": "INVALID_CODE", "item_id": 1, "effective_from": "2025-01-01" }, "expect": { "status": [422], "jsonPath": { "$.success": false } }, "continueOnFailure": true }, { "id": "test_high_margin_rate", "name": "4. 100% 초과 마진율 테스트 (900%)", "description": "margin_rate 900% 허용 확인", "method": "POST", "endpoint": "/pricing", "headers": { "Authorization": "Bearer {{login.token}}" }, "body": { "item_type_code": "FG", "item_id": 2, "purchase_price": 5000, "margin_rate": 900, "effective_from": "2025-01-01" }, "expect": { "status": [200, 201], "jsonPath": { "$.success": true } }, "extract": { "priceId2": "$.data.id" }, "continueOnFailure": true }, { "id": "cleanup1", "name": "5. 테스트 데이터 정리 (1)", "method": "DELETE", "endpoint": "/pricing/{{test_valid_item_type.priceId}}", "headers": { "Authorization": "Bearer {{login.token}}" }, "expect": { "status": [200, 204, 404] }, "continueOnFailure": true }, { "id": "cleanup2", "name": "6. 테스트 데이터 정리 (2)", "method": "DELETE", "endpoint": "/pricing/{{test_high_margin_rate.priceId2}}", "headers": { "Authorization": "Bearer {{login.token}}" }, "expect": { "status": [200, 204, 404] }, "continueOnFailure": true } ] }