237 lines
6.1 KiB
JSON
237 lines
6.1 KiB
JSON
|
|
{
|
||
|
|
"id": "inspection-management",
|
||
|
|
"name": "제품검사관리 CRUD 테스트",
|
||
|
|
"screenshotPolicy": {
|
||
|
|
"onErrorOnly": true,
|
||
|
|
"captureOn": ["error", "fail", "timeout", "404", "500", "blocked"]
|
||
|
|
},
|
||
|
|
"description": "품질관리 > 제품검사관리 페이지의 검사 등록/조회/수정/삭제 기능을 테스트하는 E2E 테스트",
|
||
|
|
"baseUrl": "https://dev.codebridge-x.com",
|
||
|
|
"menuNavigation": {
|
||
|
|
"level1": "품질관리",
|
||
|
|
"level2": "제품검사관리",
|
||
|
|
"expectedUrl": "/quality/inspections",
|
||
|
|
"searchWithinParent": true,
|
||
|
|
"closeOtherMenus": true
|
||
|
|
},
|
||
|
|
"auth": {
|
||
|
|
"username": "TestUser5",
|
||
|
|
"password": "password123!"
|
||
|
|
},
|
||
|
|
"timeout": 90000,
|
||
|
|
"tags": ["quality", "inspection", "crud"],
|
||
|
|
"testData": {
|
||
|
|
"inspection": {
|
||
|
|
"quantity": "100",
|
||
|
|
"worker": "홍킬동",
|
||
|
|
"note": "E2E 테스트 특이사항",
|
||
|
|
"height": "50.5",
|
||
|
|
"length": "120.3"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"steps": [
|
||
|
|
{
|
||
|
|
"id": 1,
|
||
|
|
"name": "메뉴 진입: 품질관리 > 제품검사관리",
|
||
|
|
"action": "menu_navigate",
|
||
|
|
"level1": "품질관리",
|
||
|
|
"level2": "제품검사관리",
|
||
|
|
"expected": { "url_contains": "/quality/inspections" }
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 2,
|
||
|
|
"name": "페이지 로드 대기",
|
||
|
|
"action": "wait",
|
||
|
|
"timeout": 3000
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 3,
|
||
|
|
"name": "URL 검증",
|
||
|
|
"action": "verify_url",
|
||
|
|
"expected": { "url_contains": "/quality/inspections" }
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 4,
|
||
|
|
"name": "목업 감지",
|
||
|
|
"action": "verify_not_mockup",
|
||
|
|
"checks": ["검사 목록 표시", "등록 버튼 존재"]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 5,
|
||
|
|
"name": "테이블 로드 대기",
|
||
|
|
"action": "wait_for_table",
|
||
|
|
"timeout": 5000
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 6,
|
||
|
|
"name": "페이지 구조 확인",
|
||
|
|
"action": "verify_element",
|
||
|
|
"target": "table"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 7,
|
||
|
|
"name": "탭 필터 - 전체",
|
||
|
|
"action": "click",
|
||
|
|
"target": "전체",
|
||
|
|
"role": "tab"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 8,
|
||
|
|
"name": "탭 대기",
|
||
|
|
"action": "wait",
|
||
|
|
"timeout": 500
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 9,
|
||
|
|
"phase": "CREATE",
|
||
|
|
"name": "[CREATE] 검사 등록 버튼 클릭",
|
||
|
|
"action": "click_button",
|
||
|
|
"target": "검사 등록",
|
||
|
|
"alternatives": ["등록", "신규"],
|
||
|
|
"expected": { "modal": true }
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 10,
|
||
|
|
"phase": "CREATE",
|
||
|
|
"name": "[CREATE] 수량 입력",
|
||
|
|
"action": "fill",
|
||
|
|
"target": "input[name*='quantity'], input[placeholder*='수량']",
|
||
|
|
"value": "100"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 11,
|
||
|
|
"phase": "CREATE",
|
||
|
|
"name": "[CREATE] 작업자 선택",
|
||
|
|
"action": "select_dropdown",
|
||
|
|
"target": "작업자",
|
||
|
|
"value": "홍킬동"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 12,
|
||
|
|
"phase": "CREATE",
|
||
|
|
"name": "[CREATE] 특이사항 입력",
|
||
|
|
"action": "fill",
|
||
|
|
"target": "textarea, input[name*='note'], input[placeholder*='특이']",
|
||
|
|
"value": "E2E 테스트 특이사항"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 13,
|
||
|
|
"phase": "CREATE",
|
||
|
|
"name": "[CREATE] 등록 저장",
|
||
|
|
"action": "click_button",
|
||
|
|
"target": "등록",
|
||
|
|
"alternatives": ["저장", "확인"],
|
||
|
|
"expected": { "toast": true }
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 14,
|
||
|
|
"phase": "CREATE",
|
||
|
|
"name": "[CREATE] 모달 닫기 확인",
|
||
|
|
"action": "close_modal_if_open"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 15,
|
||
|
|
"phase": "CREATE",
|
||
|
|
"name": "[CREATE] 등록 데이터 반영 확인",
|
||
|
|
"action": "verify_text",
|
||
|
|
"target": "table",
|
||
|
|
"contains": "홍킬동",
|
||
|
|
"critical": true
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 16,
|
||
|
|
"phase": "READ",
|
||
|
|
"name": "[READ] 등록된 검사 행 클릭",
|
||
|
|
"action": "click_row",
|
||
|
|
"target": "홍킬동",
|
||
|
|
"expected": { "detail_view": true }
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 17,
|
||
|
|
"phase": "UPDATE",
|
||
|
|
"name": "[UPDATE] 수정 버튼 클릭",
|
||
|
|
"action": "click_button",
|
||
|
|
"target": "수정"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 18,
|
||
|
|
"phase": "UPDATE",
|
||
|
|
"name": "[UPDATE] 특이사항 수정",
|
||
|
|
"action": "fill",
|
||
|
|
"target": "textarea, input[name*='note'], input[placeholder*='특이']",
|
||
|
|
"value": "E2E 테스트 수정됨"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 19,
|
||
|
|
"phase": "UPDATE",
|
||
|
|
"name": "[UPDATE] 수정 저장",
|
||
|
|
"action": "click_button",
|
||
|
|
"target": "저장",
|
||
|
|
"expected": { "toast": true }
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 20,
|
||
|
|
"phase": "UPDATE",
|
||
|
|
"name": "[UPDATE] 모달 닫기 확인",
|
||
|
|
"action": "close_modal_if_open"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 21,
|
||
|
|
"phase": "UPDATE",
|
||
|
|
"name": "[UPDATE] 수정 데이터 반영 확인",
|
||
|
|
"action": "verify_text",
|
||
|
|
"target": "body",
|
||
|
|
"contains": "수정됨",
|
||
|
|
"critical": true
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 22,
|
||
|
|
"phase": "DELETE",
|
||
|
|
"name": "[DELETE] 삭제할 검사 행 클릭",
|
||
|
|
"action": "click_row",
|
||
|
|
"target": "홍킬동",
|
||
|
|
"expected": { "detail_view": true }
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 23,
|
||
|
|
"phase": "DELETE",
|
||
|
|
"name": "[DELETE] 삭제 버튼 클릭",
|
||
|
|
"action": "click_button",
|
||
|
|
"target": "삭제",
|
||
|
|
"expected": { "dialog": true }
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 24,
|
||
|
|
"phase": "DELETE",
|
||
|
|
"name": "[DELETE] 삭제 확인",
|
||
|
|
"action": "click_dialog_confirm",
|
||
|
|
"expected": { "toast": true }
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 25,
|
||
|
|
"phase": "DELETE",
|
||
|
|
"name": "[DELETE] 모달 닫기 확인",
|
||
|
|
"action": "close_modal_if_open"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": 26,
|
||
|
|
"phase": "DELETE",
|
||
|
|
"name": "[DELETE] 삭제 데이터 반영 확인",
|
||
|
|
"action": "verify_text",
|
||
|
|
"target": "table",
|
||
|
|
"not_contains": "E2E 테스트",
|
||
|
|
"critical": true
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"expectedAPIs": [
|
||
|
|
{ "method": "GET", "endpoint": "/api/quality/inspections", "description": "검사 목록 조회" },
|
||
|
|
{ "method": "POST", "endpoint": "/api/quality/inspections", "description": "검사 등록" },
|
||
|
|
{ "method": "PUT", "endpoint": "/api/quality/inspections/{id}", "description": "검사 수정" },
|
||
|
|
{ "method": "DELETE", "endpoint": "/api/quality/inspections/{id}", "description": "검사 삭제" }
|
||
|
|
],
|
||
|
|
"cleanup": {
|
||
|
|
"enabled": true,
|
||
|
|
"description": "테스트 중 생성된 검사 데이터 삭제 (step 24에서 처리)"
|
||
|
|
}
|
||
|
|
}
|