revert: Round 5 롤백 - 브라우저 크래시 문제로 복원
This commit is contained in:
@@ -3,25 +3,15 @@
|
||||
"name": "설정 - 회사정보",
|
||||
"screenshotPolicy": {
|
||||
"onErrorOnly": true,
|
||||
"captureOn": [
|
||||
"error",
|
||||
"fail",
|
||||
"timeout",
|
||||
"404",
|
||||
"500",
|
||||
"blocked"
|
||||
]
|
||||
"captureOn": ["error", "fail", "timeout", "404", "500", "blocked"]
|
||||
},
|
||||
"description": "회사 정보 관리 기능 테스트 - 회사 정보 조회, 수정, 회사 추가 기능",
|
||||
"baseUrl": "https://dev.codebridge-x.com",
|
||||
|
||||
"navigation": {
|
||||
"targetUrl": "/company-info",
|
||||
"urlPattern": "/company-info|/ko/company-info|/settings/company-info",
|
||||
"menuHints": [
|
||||
"회사정보",
|
||||
"회사 정보",
|
||||
"설정"
|
||||
]
|
||||
"menuHints": ["회사정보", "회사 정보", "설정"]
|
||||
},
|
||||
"menuNavigation": {
|
||||
"level1": "설정",
|
||||
@@ -39,20 +29,8 @@
|
||||
"description": "사이드바를 스크롤하며 메뉴를 찾고 클릭하여 404를 방지",
|
||||
"level1": "설정",
|
||||
"level2": "회사정보",
|
||||
"alternativeLevel1Names": [
|
||||
"설정",
|
||||
"Settings",
|
||||
"환경설정",
|
||||
"시스템설정",
|
||||
"관리"
|
||||
],
|
||||
"alternativeLevel2Names": [
|
||||
"회사정보",
|
||||
"회사 정보",
|
||||
"Company Info",
|
||||
"회사관리",
|
||||
"기업정보"
|
||||
],
|
||||
"alternativeLevel1Names": ["설정", "Settings", "환경설정", "시스템설정", "관리"],
|
||||
"alternativeLevel2Names": ["회사정보", "회사 정보", "Company Info", "회사관리", "기업정보"],
|
||||
"fallbackUrls": [
|
||||
"/company-info",
|
||||
"/ko/company-info",
|
||||
@@ -67,6 +45,7 @@
|
||||
"scrollDelay": 300
|
||||
}
|
||||
},
|
||||
|
||||
"expectedAPIs": [
|
||||
{
|
||||
"method": "GET",
|
||||
@@ -84,30 +63,17 @@
|
||||
"description": "회사 추가"
|
||||
}
|
||||
],
|
||||
|
||||
"steps": [
|
||||
{
|
||||
"id": 0,
|
||||
"name": "사이드바 메뉴 전체 펼치기",
|
||||
"description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비",
|
||||
"actions": [
|
||||
{
|
||||
"type": "scroll",
|
||||
"target": "sidebar",
|
||||
"direction": "top",
|
||||
"description": "사이드바 최상단으로 스크롤"
|
||||
},
|
||||
{
|
||||
"type": "wait",
|
||||
"duration": 300
|
||||
},
|
||||
{
|
||||
"type": "evaluate",
|
||||
"script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()"
|
||||
},
|
||||
{
|
||||
"type": "wait",
|
||||
"duration": 2000
|
||||
}
|
||||
{ "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" },
|
||||
{ "type": "wait", "duration": 300 },
|
||||
{ "type": "evaluate", "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" },
|
||||
{ "type": "wait", "duration": 2000 }
|
||||
],
|
||||
"verification": [
|
||||
"사이드바가 화면에 보이는지 확인",
|
||||
@@ -122,34 +88,15 @@
|
||||
{
|
||||
"type": "scrollAndFind",
|
||||
"target": "설정",
|
||||
"alternativeTexts": [
|
||||
"설정",
|
||||
"Settings",
|
||||
"환경설정",
|
||||
"시스템설정"
|
||||
],
|
||||
"alternativeTexts": ["설정", "Settings", "환경설정", "시스템설정"],
|
||||
"scrollContainer": "sidebar",
|
||||
"maxAttempts": 10,
|
||||
"description": "스크롤하며 설정 메뉴 찾기"
|
||||
},
|
||||
{
|
||||
"type": "wait",
|
||||
"duration": 300
|
||||
},
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "설정",
|
||||
"description": "설정 메뉴 클릭"
|
||||
},
|
||||
{
|
||||
"type": "wait",
|
||||
"duration": 500,
|
||||
"description": "서브메뉴 펼쳐지기 대기"
|
||||
},
|
||||
{
|
||||
"type": "screenshot",
|
||||
"name": "settings_menu_expanded"
|
||||
}
|
||||
{ "type": "wait", "duration": 300 },
|
||||
{ "type": "click", "target": "설정", "description": "설정 메뉴 클릭" },
|
||||
{ "type": "wait", "duration": 500, "description": "서브메뉴 펼쳐지기 대기" },
|
||||
{ "type": "screenshot", "name": "settings_menu_expanded" }
|
||||
],
|
||||
"verification": [
|
||||
"설정 메뉴가 클릭되었는지 확인",
|
||||
@@ -169,34 +116,15 @@
|
||||
{
|
||||
"type": "scrollAndFind",
|
||||
"target": "회사정보",
|
||||
"alternativeTexts": [
|
||||
"회사정보",
|
||||
"회사 정보",
|
||||
"Company Info",
|
||||
"회사관리"
|
||||
],
|
||||
"alternativeTexts": ["회사정보", "회사 정보", "Company Info", "회사관리"],
|
||||
"scrollContainer": "submenu",
|
||||
"maxAttempts": 5,
|
||||
"description": "서브메뉴에서 회사정보 찾기"
|
||||
},
|
||||
{
|
||||
"type": "wait",
|
||||
"duration": 200
|
||||
},
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "회사정보",
|
||||
"description": "회사정보 메뉴 클릭"
|
||||
},
|
||||
{
|
||||
"type": "wait",
|
||||
"target": "페이지 로드 완료",
|
||||
"timeout": 10000
|
||||
},
|
||||
{
|
||||
"type": "screenshot",
|
||||
"name": "company_info_page"
|
||||
}
|
||||
{ "type": "wait", "duration": 200 },
|
||||
{ "type": "click", "target": "회사정보", "description": "회사정보 메뉴 클릭" },
|
||||
{ "type": "wait", "target": "페이지 로드 완료", "timeout": 10000 },
|
||||
{ "type": "screenshot", "name": "company_info_page" }
|
||||
],
|
||||
"verification": [
|
||||
"회사정보 메뉴 클릭 성공",
|
||||
@@ -208,23 +136,14 @@
|
||||
"name": "404 에러 감지 및 대체 경로 시도",
|
||||
"description": "페이지 로드 후 404 에러 여부 확인, 404시 대체 경로 탐색",
|
||||
"actions": [
|
||||
{
|
||||
"type": "wait",
|
||||
"duration": 1000
|
||||
},
|
||||
{
|
||||
"type": "checkFor404",
|
||||
"indicators": [
|
||||
"페이지를 찾을 수 없습니다",
|
||||
"404",
|
||||
"Not Found",
|
||||
"존재하지 않거나"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "screenshot",
|
||||
"name": "page_load_result"
|
||||
}
|
||||
{ "type": "wait", "duration": 1000 },
|
||||
{ "type": "checkFor404", "indicators": [
|
||||
"페이지를 찾을 수 없습니다",
|
||||
"404",
|
||||
"Not Found",
|
||||
"존재하지 않거나"
|
||||
]},
|
||||
{ "type": "screenshot", "name": "page_load_result" }
|
||||
],
|
||||
"verification": [
|
||||
"현재 페이지가 404인지 확인"
|
||||
@@ -232,10 +151,7 @@
|
||||
"onError404": {
|
||||
"description": "404 에러 발생 시 대체 URL 시도",
|
||||
"actions": [
|
||||
{
|
||||
"type": "log",
|
||||
"message": "404 감지 - 대체 경로 탐색 시작"
|
||||
},
|
||||
{ "type": "log", "message": "404 감지 - 대체 경로 탐색 시작" },
|
||||
{
|
||||
"type": "tryAlternativeUrls",
|
||||
"urls": [
|
||||
@@ -257,24 +173,8 @@
|
||||
"name": "페이지 정상 로드 확인",
|
||||
"description": "회사정보 페이지가 정상적으로 로드되었는지 확인",
|
||||
"actions": [
|
||||
{
|
||||
"type": "verify",
|
||||
"target": "pageTitle",
|
||||
"contains": [
|
||||
"회사정보",
|
||||
"회사 정보",
|
||||
"Company"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "verify",
|
||||
"target": "pageContent",
|
||||
"notContains": [
|
||||
"404",
|
||||
"찾을 수 없습니다",
|
||||
"Not Found"
|
||||
]
|
||||
}
|
||||
{ "type": "verify", "target": "pageTitle", "contains": ["회사정보", "회사 정보", "Company"] },
|
||||
{ "type": "verify", "target": "pageContent", "notContains": ["404", "찾을 수 없습니다", "Not Found"] }
|
||||
],
|
||||
"verification": [
|
||||
"페이지 제목 '회사정보' 또는 관련 텍스트 표시",
|
||||
@@ -283,17 +183,13 @@
|
||||
],
|
||||
"successCriteria": {
|
||||
"urlPattern": "/company-info",
|
||||
"requiredElements": [
|
||||
"회사",
|
||||
"회사명",
|
||||
"대표자명"
|
||||
]
|
||||
"requiredElements": ["회사", "회사명", "대표자명"]
|
||||
}
|
||||
},
|
||||
{
|
||||
"step": 5,
|
||||
"name": "페이지 제목 확인",
|
||||
"action": "verify_detail",
|
||||
"action": "verify",
|
||||
"target": "heading",
|
||||
"expected": "회사정보",
|
||||
"validation": "페이지 제목이 '회사정보'로 표시됨"
|
||||
@@ -301,7 +197,7 @@
|
||||
{
|
||||
"step": 6,
|
||||
"name": "회사 추가 버튼 존재 확인",
|
||||
"action": "verify_detail",
|
||||
"action": "verify",
|
||||
"target": "button[text='회사 추가']",
|
||||
"expected": "button exists",
|
||||
"validation": "회사 추가 버튼이 표시됨"
|
||||
@@ -309,7 +205,7 @@
|
||||
{
|
||||
"step": 7,
|
||||
"name": "수정 버튼 존재 확인",
|
||||
"action": "verify_detail",
|
||||
"action": "verify",
|
||||
"target": "button[text='수정']",
|
||||
"expected": "button exists",
|
||||
"validation": "수정 버튼이 표시됨"
|
||||
@@ -317,7 +213,7 @@
|
||||
{
|
||||
"step": 8,
|
||||
"name": "회사명 필드 확인",
|
||||
"action": "verify_detail",
|
||||
"action": "verify",
|
||||
"target": "textbox[label='회사명'][disabled]",
|
||||
"expected": "프론트_테스트회사",
|
||||
"validation": "회사명이 표시되고 비활성화 상태"
|
||||
@@ -325,7 +221,7 @@
|
||||
{
|
||||
"step": 9,
|
||||
"name": "대표자명 필드 확인",
|
||||
"action": "verify_detail",
|
||||
"action": "verify",
|
||||
"target": "textbox[label='대표자명'][disabled]",
|
||||
"expected": "프론트",
|
||||
"validation": "대표자명이 표시되고 비활성화 상태"
|
||||
@@ -333,7 +229,7 @@
|
||||
{
|
||||
"step": 10,
|
||||
"name": "업태 필드 확인",
|
||||
"action": "verify_detail",
|
||||
"action": "verify",
|
||||
"target": "textbox[label='업태'][disabled]",
|
||||
"expected": "업태명",
|
||||
"validation": "업태가 표시되고 비활성화 상태"
|
||||
@@ -341,7 +237,7 @@
|
||||
{
|
||||
"step": 11,
|
||||
"name": "업종 필드 확인",
|
||||
"action": "verify_detail",
|
||||
"action": "verify",
|
||||
"target": "textbox[label='업종'][disabled]",
|
||||
"expected": "업종명",
|
||||
"validation": "업종이 표시되고 비활성화 상태"
|
||||
@@ -349,7 +245,7 @@
|
||||
{
|
||||
"step": 12,
|
||||
"name": "주소 필드 확인",
|
||||
"action": "verify_detail",
|
||||
"action": "verify",
|
||||
"target": "textbox[label='주소명'][disabled]",
|
||||
"expected": "주소 표시",
|
||||
"validation": "주소가 표시되고 비활성화 상태"
|
||||
@@ -357,7 +253,7 @@
|
||||
{
|
||||
"step": 13,
|
||||
"name": "이메일 필드 확인",
|
||||
"action": "verify_detail",
|
||||
"action": "verify",
|
||||
"target": "textbox[label='이메일 (아이디)'][disabled]",
|
||||
"expected": "이메일 표시",
|
||||
"validation": "이메일이 표시되고 비활성화 상태"
|
||||
@@ -365,7 +261,7 @@
|
||||
{
|
||||
"step": 14,
|
||||
"name": "사업자등록번호 필드 확인",
|
||||
"action": "verify_detail",
|
||||
"action": "verify",
|
||||
"target": "textbox[label='사업자등록번호'][disabled]",
|
||||
"expected": "사업자등록번호 표시",
|
||||
"validation": "사업자등록번호가 표시되고 비활성화 상태"
|
||||
@@ -373,7 +269,7 @@
|
||||
{
|
||||
"step": 15,
|
||||
"name": "수정 버튼 클릭",
|
||||
"action": "click_if_exists",
|
||||
"action": "click",
|
||||
"target": "button[text='수정']",
|
||||
"expected": "edit mode enabled",
|
||||
"validation": "수정 모드로 전환됨"
|
||||
@@ -381,7 +277,7 @@
|
||||
{
|
||||
"step": 16,
|
||||
"name": "수정 모드 - 필드 활성화 확인",
|
||||
"action": "verify_detail",
|
||||
"action": "verify",
|
||||
"target": "textbox:not([disabled])",
|
||||
"expected": "fields enabled",
|
||||
"validation": "텍스트 필드들이 활성화됨"
|
||||
@@ -389,7 +285,7 @@
|
||||
{
|
||||
"step": 17,
|
||||
"name": "취소 버튼 클릭",
|
||||
"action": "click_if_exists",
|
||||
"action": "click",
|
||||
"target": "button[text='취소']",
|
||||
"expected": "edit mode disabled",
|
||||
"validation": "조회 모드로 복귀"
|
||||
@@ -397,7 +293,7 @@
|
||||
{
|
||||
"step": 18,
|
||||
"name": "회사 추가 버튼 클릭",
|
||||
"action": "click_if_exists",
|
||||
"action": "click",
|
||||
"target": "button[text='회사 추가']",
|
||||
"expected": "dialog opened",
|
||||
"validation": "회사 추가 다이얼로그가 열림"
|
||||
@@ -405,7 +301,7 @@
|
||||
{
|
||||
"step": 19,
|
||||
"name": "회사 추가 다이얼로그 확인",
|
||||
"action": "verify_detail",
|
||||
"action": "verify",
|
||||
"target": "dialog",
|
||||
"expected": "회사 추가 다이얼로그 표시",
|
||||
"validation": "다이얼로그 제목, 입력 필드, 버튼 확인"
|
||||
@@ -413,7 +309,7 @@
|
||||
{
|
||||
"step": 20,
|
||||
"name": "다이얼로그 닫기",
|
||||
"action": "click_if_exists",
|
||||
"action": "click",
|
||||
"target": "dialog button[text='취소']",
|
||||
"expected": "dialog closed",
|
||||
"validation": "다이얼로그가 닫힘"
|
||||
@@ -423,11 +319,7 @@
|
||||
"name": "수정 모드에서 데이터 변경 테스트",
|
||||
"description": "실제 데이터를 수정하고 저장 기능 검증",
|
||||
"actions": [
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "수정",
|
||||
"description": "수정 모드 진입"
|
||||
}
|
||||
{ "type": "click", "target": "수정", "description": "수정 모드 진입" }
|
||||
],
|
||||
"expect": {
|
||||
"fieldsEnabled": true
|
||||
@@ -438,15 +330,8 @@
|
||||
"name": "업태 필드 수정",
|
||||
"description": "업태 필드 값 변경",
|
||||
"actions": [
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "업태"
|
||||
},
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "업태",
|
||||
"value": "테스트업태_수정"
|
||||
}
|
||||
{ "type": "clear", "target": "업태" },
|
||||
{ "type": "fill", "target": "업태", "value": "테스트업태_수정" }
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -454,10 +339,7 @@
|
||||
"name": "저장 버튼 클릭",
|
||||
"description": "수정된 회사 정보 저장",
|
||||
"actions": [
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "저장"
|
||||
}
|
||||
{ "type": "click", "target": "저장" }
|
||||
],
|
||||
"waitFor": {
|
||||
"type": "apiResponse",
|
||||
@@ -465,12 +347,7 @@
|
||||
"timeout": 5000
|
||||
},
|
||||
"expect": {
|
||||
"toast": [
|
||||
"수정",
|
||||
"완료",
|
||||
"성공",
|
||||
"저장"
|
||||
]
|
||||
"toast": ["수정", "완료", "성공", "저장"]
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -490,20 +367,11 @@
|
||||
"name": "회사 추가 다이얼로그 열기",
|
||||
"description": "회사 추가 버튼 클릭하여 다이얼로그 열기",
|
||||
"actions": [
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "회사 추가"
|
||||
}
|
||||
{ "type": "click", "target": "회사 추가" }
|
||||
],
|
||||
"expect": {
|
||||
"dialog": true,
|
||||
"visible": [
|
||||
"회사명",
|
||||
"대표자명",
|
||||
"사업자등록번호",
|
||||
"등록",
|
||||
"취소"
|
||||
]
|
||||
"visible": ["회사명", "대표자명", "사업자등록번호", "등록", "취소"]
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -511,21 +379,9 @@
|
||||
"name": "새 회사 정보 입력",
|
||||
"description": "회사 추가 다이얼로그에서 필수 정보 입력",
|
||||
"actions": [
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "회사명",
|
||||
"value": "테스트회사_{timestamp}"
|
||||
},
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "대표자명",
|
||||
"value": "테스트대표"
|
||||
},
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "사업자등록번호",
|
||||
"value": "123-45-67890"
|
||||
}
|
||||
{ "type": "fill", "target": "회사명", "value": "테스트회사_{timestamp}" },
|
||||
{ "type": "fill", "target": "대표자명", "value": "테스트대표" },
|
||||
{ "type": "fill", "target": "사업자등록번호", "value": "123-45-67890" }
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -533,10 +389,7 @@
|
||||
"name": "회사 등록",
|
||||
"description": "등록 버튼 클릭하여 새 회사 등록",
|
||||
"actions": [
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "등록"
|
||||
}
|
||||
{ "type": "click", "target": "등록" }
|
||||
],
|
||||
"waitFor": {
|
||||
"type": "apiResponse",
|
||||
@@ -544,11 +397,7 @@
|
||||
"timeout": 5000
|
||||
},
|
||||
"expect": {
|
||||
"toast": [
|
||||
"등록",
|
||||
"완료",
|
||||
"성공"
|
||||
],
|
||||
"toast": ["등록", "완료", "성공"],
|
||||
"dialogClosed": true
|
||||
}
|
||||
},
|
||||
@@ -566,34 +415,17 @@
|
||||
"name": "원복: 업태 필드 원래 값으로 복구",
|
||||
"description": "테스트 후 원래 값으로 복구",
|
||||
"actions": [
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "수정"
|
||||
},
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "업태"
|
||||
},
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "업태",
|
||||
"value": "업태명"
|
||||
},
|
||||
{
|
||||
"type": "click_if_exists",
|
||||
"target": "저장"
|
||||
}
|
||||
{ "type": "click", "target": "수정" },
|
||||
{ "type": "clear", "target": "업태" },
|
||||
{ "type": "fill", "target": "업태", "value": "업태명" },
|
||||
{ "type": "click", "target": "저장" }
|
||||
],
|
||||
"expect": {
|
||||
"toast": [
|
||||
"수정",
|
||||
"완료",
|
||||
"성공",
|
||||
"저장"
|
||||
]
|
||||
"toast": ["수정", "완료", "성공", "저장"]
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
"notes": [
|
||||
"직접 URL 접근 금지: 반드시 메뉴 클릭으로 페이지 진입 (404 방지)",
|
||||
"스크롤 필수: 사이드바가 길 경우 메뉴가 화면 밖에 있을 수 있음",
|
||||
|
||||
Reference in New Issue
Block a user