- LoginToken 모델 수정 - items-bom/crud/search 플로우 데이터 업데이트 - API_FLOW_TESTER_DESIGN 문서 업데이트 - example-flows 뷰 업데이트
144 lines
3.4 KiB
JSON
144 lines
3.4 KiB
JSON
{
|
|
"version": "1.0",
|
|
"meta": {
|
|
"name": "Items BOM Test",
|
|
"description": "BOM management test",
|
|
"tags": ["items", "bom"]
|
|
},
|
|
"config": {
|
|
"baseUrl": "https://api.sam.kr/api/v1",
|
|
"timeout": 30000,
|
|
"stopOnFailure": false
|
|
},
|
|
"variables": {},
|
|
"steps": [
|
|
{
|
|
"id": "create_parent",
|
|
"name": "Create Parent Item",
|
|
"method": "POST",
|
|
"endpoint": "/items",
|
|
"body": {
|
|
"code": "{{$faker.itemCode:PROD}}",
|
|
"name": "{{$faker.productName}}",
|
|
"item_type": "PRODUCT",
|
|
"unit": "EA",
|
|
"unit_price": "{{$faker.price:100000:500000}}"
|
|
},
|
|
"expect": {
|
|
"status": [200, 201]
|
|
},
|
|
"extract": {
|
|
"parentCode": "$.data.code",
|
|
"parentId": "$.data.id"
|
|
}
|
|
},
|
|
{
|
|
"id": "create_child1",
|
|
"name": "Create Material 1",
|
|
"dependsOn": ["create_parent"],
|
|
"method": "POST",
|
|
"endpoint": "/items",
|
|
"body": {
|
|
"code": "{{$faker.itemCode:MAT}}",
|
|
"name": "Material A",
|
|
"item_type": "MATERIAL",
|
|
"unit": "{{$faker.unit}}",
|
|
"unit_price": "{{$faker.price:1000:10000}}"
|
|
},
|
|
"expect": {
|
|
"status": [200, 201]
|
|
},
|
|
"extract": {
|
|
"child1Code": "$.data.code"
|
|
}
|
|
},
|
|
{
|
|
"id": "create_child2",
|
|
"name": "Create Material 2",
|
|
"dependsOn": ["create_child1"],
|
|
"method": "POST",
|
|
"endpoint": "/items",
|
|
"body": {
|
|
"code": "{{$faker.itemCode:PART}}",
|
|
"name": "Part B",
|
|
"item_type": "MATERIAL",
|
|
"unit": "EA",
|
|
"unit_price": "{{$faker.price:5000:20000}}"
|
|
},
|
|
"expect": {
|
|
"status": [200, 201]
|
|
},
|
|
"extract": {
|
|
"child2Code": "$.data.code"
|
|
}
|
|
},
|
|
{
|
|
"id": "add_bom1",
|
|
"name": "Add BOM Material 1",
|
|
"dependsOn": ["create_child2"],
|
|
"method": "POST",
|
|
"endpoint": "/items/{{create_parent.parentCode}}/bom",
|
|
"body": {
|
|
"child_code": "{{create_child1.child1Code}}",
|
|
"quantity": "{{$faker.number:1:10}}",
|
|
"unit": "{{$faker.unit}}"
|
|
},
|
|
"expect": {
|
|
"status": [200, 201]
|
|
}
|
|
},
|
|
{
|
|
"id": "add_bom2",
|
|
"name": "Add BOM Material 2",
|
|
"dependsOn": ["add_bom1"],
|
|
"method": "POST",
|
|
"endpoint": "/items/{{create_parent.parentCode}}/bom",
|
|
"body": {
|
|
"child_code": "{{create_child2.child2Code}}",
|
|
"quantity": "{{$faker.number:1:5}}",
|
|
"unit": "EA"
|
|
},
|
|
"expect": {
|
|
"status": [200, 201]
|
|
}
|
|
},
|
|
{
|
|
"id": "get_bom",
|
|
"name": "Get BOM List",
|
|
"dependsOn": ["add_bom2"],
|
|
"method": "GET",
|
|
"endpoint": "/items/{{create_parent.parentCode}}/bom",
|
|
"expect": {
|
|
"status": [200],
|
|
"jsonPath": {
|
|
"$.success": true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "cleanup_parent",
|
|
"name": "Delete Parent",
|
|
"dependsOn": ["get_bom"],
|
|
"method": "DELETE",
|
|
"endpoint": "/items/{{create_parent.parentCode}}",
|
|
"expect": {
|
|
"status": [200, 204]
|
|
},
|
|
"continueOnFailure": true
|
|
},
|
|
{
|
|
"id": "cleanup_children",
|
|
"name": "Delete Materials",
|
|
"dependsOn": ["cleanup_parent"],
|
|
"method": "DELETE",
|
|
"endpoint": "/items/batch",
|
|
"body": {
|
|
"codes": ["{{create_child1.child1Code}}", "{{create_child2.child2Code}}"]
|
|
},
|
|
"expect": {
|
|
"status": [200, 204]
|
|
},
|
|
"continueOnFailure": true
|
|
}
|
|
]
|
|
} |