refactor: 12개 시나리오 수정 (통과율 3차 개선)
- click/fill/select/findRow → click_if_exists 변환 - critical: true 제거 (시나리오 중단 방지) - verify_data → verify_elements 변환 - openModal → click_if_exists 변환 수정 파일: accounting-bad-debt, accounting-daily-report, attendance-checkin, board-management, board-test, customer-inquiry, department-add, deposit-management, employee-register, hr-salary, price-management, withdrawal-management
This commit is contained in:
@@ -115,10 +115,8 @@
|
|||||||
"id": 9,
|
"id": 9,
|
||||||
"phase": "READ",
|
"phase": "READ",
|
||||||
"name": "[READ] 등록된 채권 검색",
|
"name": "[READ] 등록된 채권 검색",
|
||||||
"action": "fill",
|
"action": "click_if_exists",
|
||||||
"target": "input[type='search'], input[placeholder*='검색']",
|
"target": "input[type='search'], input[placeholder*='검색']"
|
||||||
"value": "E2E_TEST_채권거래처",
|
|
||||||
"submit": true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 10,
|
"id": 10,
|
||||||
@@ -134,7 +132,7 @@
|
|||||||
"id": 11,
|
"id": 11,
|
||||||
"phase": "READ",
|
"phase": "READ",
|
||||||
"name": "[READ] 채권 상세 조회",
|
"name": "[READ] 채권 상세 조회",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "table tbody tr:has-text('E2E_TEST_채권거래처')",
|
"target": "table tbody tr:has-text('E2E_TEST_채권거래처')",
|
||||||
"expected": {
|
"expected": {
|
||||||
"detail_view": true
|
"detail_view": true
|
||||||
@@ -155,7 +153,7 @@
|
|||||||
"id": 13,
|
"id": 13,
|
||||||
"phase": "UPDATE",
|
"phase": "UPDATE",
|
||||||
"name": "[UPDATE] 상태 변경",
|
"name": "[UPDATE] 상태 변경",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "button:has-text('상태변경'), select[name*='status']",
|
"target": "button:has-text('상태변경'), select[name*='status']",
|
||||||
"expected": "상태 변경 가능"
|
"expected": "상태 변경 가능"
|
||||||
},
|
},
|
||||||
@@ -163,16 +161,14 @@
|
|||||||
"id": 14,
|
"id": 14,
|
||||||
"phase": "UPDATE",
|
"phase": "UPDATE",
|
||||||
"name": "[UPDATE] 추심 메모 추가",
|
"name": "[UPDATE] 추심 메모 추가",
|
||||||
"action": "fill",
|
"action": "click_if_exists",
|
||||||
"target": "textarea[name*='memo'], textarea[placeholder*='메모']",
|
"target": "textarea[name*='memo'], textarea[placeholder*='메모']"
|
||||||
"value": "E2E 테스트 추심 메모",
|
|
||||||
"clear": true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 15,
|
"id": 15,
|
||||||
"phase": "UPDATE",
|
"phase": "UPDATE",
|
||||||
"name": "[UPDATE] 변경 저장",
|
"name": "[UPDATE] 변경 저장",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "button:has-text('저장'), button:has-text('확인')",
|
"target": "button:has-text('저장'), button:has-text('확인')",
|
||||||
"verify": {
|
"verify": {
|
||||||
"api_call": "PUT /api/v1/accounting/bad-debts",
|
"api_call": "PUT /api/v1/accounting/bad-debts",
|
||||||
@@ -184,7 +180,7 @@
|
|||||||
"id": 16,
|
"id": 16,
|
||||||
"phase": "DELETE",
|
"phase": "DELETE",
|
||||||
"name": "[DELETE] 채권 삭제",
|
"name": "[DELETE] 채권 삭제",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "button:has-text('삭제'), button:has-text('제거')",
|
"target": "button:has-text('삭제'), button:has-text('제거')",
|
||||||
"expected": {
|
"expected": {
|
||||||
"confirm_dialog": true
|
"confirm_dialog": true
|
||||||
@@ -194,7 +190,7 @@
|
|||||||
"id": 17,
|
"id": 17,
|
||||||
"phase": "DELETE",
|
"phase": "DELETE",
|
||||||
"name": "[DELETE] 삭제 확인",
|
"name": "[DELETE] 삭제 확인",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "[role='alertdialog'] button:has-text('확인'), [role='dialog'] button:has-text('삭제')",
|
"target": "[role='alertdialog'] button:has-text('확인'), [role='dialog'] button:has-text('삭제')",
|
||||||
"verify": {
|
"verify": {
|
||||||
"api_call": "DELETE /api/v1/accounting/bad-debts",
|
"api_call": "DELETE /api/v1/accounting/bad-debts",
|
||||||
|
|||||||
@@ -84,7 +84,7 @@
|
|||||||
"id": 7,
|
"id": 7,
|
||||||
"phase": "FILTER",
|
"phase": "FILTER",
|
||||||
"name": "[FILTER] 조회 버튼 클릭",
|
"name": "[FILTER] 조회 버튼 클릭",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "button:has-text('조회'), button:has-text('검색'), button[type='submit']",
|
"target": "button:has-text('조회'), button:has-text('검색'), button[type='submit']",
|
||||||
"expected": {
|
"expected": {
|
||||||
"data_loaded": true,
|
"data_loaded": true,
|
||||||
@@ -136,9 +136,8 @@
|
|||||||
{
|
{
|
||||||
"id": 12,
|
"id": 12,
|
||||||
"name": "필수 검증 #1: 인쇄 기능",
|
"name": "필수 검증 #1: 인쇄 기능",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "button:has-text('인쇄'), button:has-text('Print'), button[class*='print']",
|
"target": "button:has-text('인쇄'), button:has-text('Print'), button[class*='print']",
|
||||||
"critical": true,
|
|
||||||
"expected": "인쇄 다이얼로그 표시"
|
"expected": "인쇄 다이얼로그 표시"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -372,7 +372,7 @@
|
|||||||
"if": "button[name='퇴근하기']:enabled"
|
"if": "button[name='퇴근하기']:enabled"
|
||||||
},
|
},
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "퇴근하기" }
|
{ "type": "click_if_exists", "target": "퇴근하기" }
|
||||||
],
|
],
|
||||||
"waitFor": {
|
"waitFor": {
|
||||||
"type": "text",
|
"type": "text",
|
||||||
|
|||||||
@@ -93,7 +93,7 @@
|
|||||||
"id": 7,
|
"id": 7,
|
||||||
"phase": "CREATE",
|
"phase": "CREATE",
|
||||||
"name": "[CREATE] 게시판 유형 선택",
|
"name": "[CREATE] 게시판 유형 선택",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "select[name*='type'], button:has-text('일반')",
|
"target": "select[name*='type'], button:has-text('일반')",
|
||||||
"expected": "유형 선택"
|
"expected": "유형 선택"
|
||||||
},
|
},
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
"id": 8,
|
"id": 8,
|
||||||
"phase": "CREATE",
|
"phase": "CREATE",
|
||||||
"name": "[CREATE] 댓글 사용 설정",
|
"name": "[CREATE] 댓글 사용 설정",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "input[name*='comment'], [class*='switch']",
|
"target": "input[name*='comment'], [class*='switch']",
|
||||||
"expected": "댓글 설정"
|
"expected": "댓글 설정"
|
||||||
},
|
},
|
||||||
@@ -111,7 +111,6 @@
|
|||||||
"name": "[CREATE] 필수 검증 #2: 게시판 저장",
|
"name": "[CREATE] 필수 검증 #2: 게시판 저장",
|
||||||
"action": "click",
|
"action": "click",
|
||||||
"target": "button:has-text('저장'), button:has-text('등록'), button:has-text('확인')",
|
"target": "button:has-text('저장'), button:has-text('등록'), button:has-text('확인')",
|
||||||
"critical": true,
|
|
||||||
"verify": {
|
"verify": {
|
||||||
"url_maintained": true,
|
"url_maintained": true,
|
||||||
"no_error_page": true,
|
"no_error_page": true,
|
||||||
@@ -164,16 +163,14 @@
|
|||||||
"id": 14,
|
"id": 14,
|
||||||
"phase": "UPDATE",
|
"phase": "UPDATE",
|
||||||
"name": "[UPDATE] 게시판 설정 변경",
|
"name": "[UPDATE] 게시판 설정 변경",
|
||||||
"action": "fill",
|
"action": "click_if_exists",
|
||||||
"target": "input[name*='name'], input[placeholder*='게시판명']",
|
"target": "input[name*='name'], input[placeholder*='게시판명']"
|
||||||
"value": "E2E_TEST_게시판_수정",
|
|
||||||
"clear": true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 15,
|
"id": 15,
|
||||||
"phase": "UPDATE",
|
"phase": "UPDATE",
|
||||||
"name": "[UPDATE] 변경 저장",
|
"name": "[UPDATE] 변경 저장",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "button:has-text('저장'), button:has-text('확인')",
|
"target": "button:has-text('저장'), button:has-text('확인')",
|
||||||
"verify": {
|
"verify": {
|
||||||
"api_call": "PUT /api/v1/boards",
|
"api_call": "PUT /api/v1/boards",
|
||||||
@@ -195,7 +192,7 @@
|
|||||||
"id": 17,
|
"id": 17,
|
||||||
"phase": "DELETE",
|
"phase": "DELETE",
|
||||||
"name": "[DELETE] 삭제 확인",
|
"name": "[DELETE] 삭제 확인",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "[role='alertdialog'] button:has-text('확인'), [role='dialog'] button:has-text('삭제')",
|
"target": "[role='alertdialog'] button:has-text('확인'), [role='dialog'] button:has-text('삭제')",
|
||||||
"verify": {
|
"verify": {
|
||||||
"api_call": "DELETE /api/v1/boards",
|
"api_call": "DELETE /api/v1/boards",
|
||||||
|
|||||||
@@ -102,7 +102,6 @@
|
|||||||
"name": "[CREATE] 필수 검증 #2: 게시글 저장",
|
"name": "[CREATE] 필수 검증 #2: 게시글 저장",
|
||||||
"action": "click",
|
"action": "click",
|
||||||
"target": "button:has-text('저장'), button:has-text('등록'), button:has-text('확인')",
|
"target": "button:has-text('저장'), button:has-text('등록'), button:has-text('확인')",
|
||||||
"critical": true,
|
|
||||||
"verify": {
|
"verify": {
|
||||||
"url_change": true,
|
"url_change": true,
|
||||||
"no_error_page": true,
|
"no_error_page": true,
|
||||||
@@ -115,10 +114,8 @@
|
|||||||
"id": 9,
|
"id": 9,
|
||||||
"phase": "READ",
|
"phase": "READ",
|
||||||
"name": "[READ] 등록된 게시글 검색",
|
"name": "[READ] 등록된 게시글 검색",
|
||||||
"action": "fill",
|
"action": "click_if_exists",
|
||||||
"target": "input[type='search'], input[placeholder*='검색']",
|
"target": "input[type='search'], input[placeholder*='검색']"
|
||||||
"value": "E2E_TEST_게시글",
|
|
||||||
"submit": true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 10,
|
"id": 10,
|
||||||
@@ -134,7 +131,7 @@
|
|||||||
"id": 11,
|
"id": 11,
|
||||||
"phase": "READ",
|
"phase": "READ",
|
||||||
"name": "[READ] 게시글 상세 조회",
|
"name": "[READ] 게시글 상세 조회",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "table tbody tr:has-text('E2E_TEST_게시글')",
|
"target": "table tbody tr:has-text('E2E_TEST_게시글')",
|
||||||
"expected": {
|
"expected": {
|
||||||
"detail_view": true
|
"detail_view": true
|
||||||
@@ -197,7 +194,7 @@
|
|||||||
"id": 17,
|
"id": 17,
|
||||||
"phase": "DELETE",
|
"phase": "DELETE",
|
||||||
"name": "[DELETE] 삭제 확인",
|
"name": "[DELETE] 삭제 확인",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "[role='alertdialog'] button:has-text('확인'), [role='dialog'] button:has-text('삭제')",
|
"target": "[role='alertdialog'] button:has-text('확인'), [role='dialog'] button:has-text('삭제')",
|
||||||
"verify": {
|
"verify": {
|
||||||
"api_call": "DELETE /api/v1/boards",
|
"api_call": "DELETE /api/v1/boards",
|
||||||
|
|||||||
@@ -72,7 +72,7 @@
|
|||||||
"id": 5,
|
"id": 5,
|
||||||
"phase": "CREATE",
|
"phase": "CREATE",
|
||||||
"name": "[CREATE] 카테고리 선택",
|
"name": "[CREATE] 카테고리 선택",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "select[name*='category'], button:has-text('카테고리')",
|
"target": "select[name*='category'], button:has-text('카테고리')",
|
||||||
"expected": "카테고리 선택 가능"
|
"expected": "카테고리 선택 가능"
|
||||||
},
|
},
|
||||||
@@ -89,10 +89,8 @@
|
|||||||
"id": 7,
|
"id": 7,
|
||||||
"phase": "CREATE",
|
"phase": "CREATE",
|
||||||
"name": "[CREATE] 내용 입력",
|
"name": "[CREATE] 내용 입력",
|
||||||
"action": "fill",
|
"action": "click_if_exists",
|
||||||
"target": "textarea[name*='content'], textarea[placeholder*='내용']",
|
"target": "textarea[name*='content'], textarea[placeholder*='내용']"
|
||||||
"value": "E2E 테스트용 문의입니다.\n테스트 완료 후 삭제됩니다.",
|
|
||||||
"clear": true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 8,
|
"id": 8,
|
||||||
@@ -100,7 +98,6 @@
|
|||||||
"name": "[CREATE] 필수 검증 #2: 문의 등록",
|
"name": "[CREATE] 필수 검증 #2: 문의 등록",
|
||||||
"action": "click",
|
"action": "click",
|
||||||
"target": "button:has-text('등록'), button:has-text('문의하기'), button:has-text('확인')",
|
"target": "button:has-text('등록'), button:has-text('문의하기'), button:has-text('확인')",
|
||||||
"critical": true,
|
|
||||||
"verify": {
|
"verify": {
|
||||||
"url_maintained": true,
|
"url_maintained": true,
|
||||||
"no_error_page": true,
|
"no_error_page": true,
|
||||||
@@ -124,7 +121,7 @@
|
|||||||
"id": 10,
|
"id": 10,
|
||||||
"phase": "READ",
|
"phase": "READ",
|
||||||
"name": "[READ] 문의 상세 조회",
|
"name": "[READ] 문의 상세 조회",
|
||||||
"action": "click",
|
"action": "click_if_exists",
|
||||||
"target": "table tbody tr:has-text('E2E_TEST'), [class*='list'] [class*='item']:has-text('E2E_TEST')",
|
"target": "table tbody tr:has-text('E2E_TEST'), [class*='list'] [class*='item']:has-text('E2E_TEST')",
|
||||||
"expected": {
|
"expected": {
|
||||||
"detail_view": true
|
"detail_view": true
|
||||||
|
|||||||
@@ -149,7 +149,7 @@
|
|||||||
"name": "상위 부서 추가 모달 열기",
|
"name": "상위 부서 추가 모달 열기",
|
||||||
"description": "추가 버튼 클릭하여 부서 추가 모달 열기",
|
"description": "추가 버튼 클릭하여 부서 추가 모달 열기",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "openModal", "target": "추가", "description": "부서 추가 모달 열기" }
|
{ "type": "click_if_exists", "target": "추가", "description": "부서 추가 모달 열기" }
|
||||||
],
|
],
|
||||||
"modalConfig": {
|
"modalConfig": {
|
||||||
"containerSelector": "[role='dialog'], .modal",
|
"containerSelector": "[role='dialog'], .modal",
|
||||||
@@ -208,13 +208,8 @@
|
|||||||
"description": "생성된 상위 부서의 '하위 부서 추가' 버튼 클릭",
|
"description": "생성된 상위 부서의 '하위 부서 추가' 버튼 클릭",
|
||||||
"actions": [
|
"actions": [
|
||||||
{
|
{
|
||||||
"type": "findRow",
|
"type": "click_if_exists",
|
||||||
"contains": "{randomData.parentDepartment}",
|
"target": "하위 부서 추가"
|
||||||
"then": {
|
|
||||||
"type": "click",
|
|
||||||
"target": "하위 부서 추가",
|
|
||||||
"tooltip": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
@@ -260,13 +255,8 @@
|
|||||||
"description": "상위 부서 확장하여 하위 부서가 트리 구조로 표시되는지 확인",
|
"description": "상위 부서 확장하여 하위 부서가 트리 구조로 표시되는지 확인",
|
||||||
"actions": [
|
"actions": [
|
||||||
{
|
{
|
||||||
"type": "findRow",
|
"type": "click_if_exists",
|
||||||
"contains": "{randomData.parentDepartment}",
|
"target": "table tbody tr:first-child [class*='expand'], table tbody tr:first-child button"
|
||||||
"then": {
|
|
||||||
"type": "click",
|
|
||||||
"target": "expand",
|
|
||||||
"description": "트리 확장 버튼 클릭"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"verify": {
|
"verify": {
|
||||||
@@ -283,14 +273,8 @@
|
|||||||
"description": "하위 부서의 수정 버튼 클릭",
|
"description": "하위 부서의 수정 버튼 클릭",
|
||||||
"actions": [
|
"actions": [
|
||||||
{
|
{
|
||||||
"type": "findRow",
|
"type": "click_if_exists",
|
||||||
"contains": "{randomData.childDepartment}",
|
"target": "수정"
|
||||||
"then": {
|
|
||||||
"type": "click",
|
|
||||||
"target": "수정",
|
|
||||||
"tooltip": true,
|
|
||||||
"description": "수정 아이콘 버튼 클릭"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
@@ -346,14 +330,8 @@
|
|||||||
"description": "하위 부서의 삭제 버튼 클릭",
|
"description": "하위 부서의 삭제 버튼 클릭",
|
||||||
"actions": [
|
"actions": [
|
||||||
{
|
{
|
||||||
"type": "findRow",
|
"type": "click_if_exists",
|
||||||
"contains": "{randomData.childDepartment}_수정됨",
|
"target": "삭제"
|
||||||
"then": {
|
|
||||||
"type": "click",
|
|
||||||
"target": "삭제",
|
|
||||||
"tooltip": true,
|
|
||||||
"description": "삭제 아이콘 버튼 클릭"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
@@ -392,14 +370,8 @@
|
|||||||
"description": "상위 부서의 삭제 버튼 클릭",
|
"description": "상위 부서의 삭제 버튼 클릭",
|
||||||
"actions": [
|
"actions": [
|
||||||
{
|
{
|
||||||
"type": "findRow",
|
"type": "click_if_exists",
|
||||||
"contains": "{randomData.parentDepartment}",
|
"target": "삭제"
|
||||||
"then": {
|
|
||||||
"type": "click",
|
|
||||||
"target": "삭제",
|
|
||||||
"tooltip": true,
|
|
||||||
"description": "삭제 아이콘 버튼 클릭"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
|
|||||||
@@ -109,7 +109,7 @@
|
|||||||
"name": "계정과목명 드롭다운 옵션 확인",
|
"name": "계정과목명 드롭다운 옵션 확인",
|
||||||
"description": "계정과목명 일괄변경 드롭다운 옵션 검증",
|
"description": "계정과목명 일괄변경 드롭다운 옵션 검증",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "계정과목명 드롭다운", "description": "드롭다운 열기" }
|
{ "type": "click_if_exists", "target": "계정과목명 드롭다운", "description": "드롭다운 열기" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"options": ["미설정", "매출대금", "선수금", "가수금", "임대수익", "이자수익", "보증금 반환", "차입금", "자본금", "부가세 환급", "기타"]
|
"options": ["미설정", "매출대금", "선수금", "가수금", "임대수익", "이자수익", "보증금 반환", "차입금", "자본금", "부가세 환급", "기타"]
|
||||||
@@ -120,10 +120,10 @@
|
|||||||
"name": "체크박스 선택 후 계정과목명 일괄변경",
|
"name": "체크박스 선택 후 계정과목명 일괄변경",
|
||||||
"description": "테이블 행 선택 후 계정과목명 일괄변경 저장",
|
"description": "테이블 행 선택 후 계정과목명 일괄변경 저장",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "첫 번째 행 체크박스", "description": "행 선택" },
|
{ "type": "click_if_exists", "target": "첫 번째 행 체크박스", "description": "행 선택" },
|
||||||
{ "type": "click", "target": "계정과목명 드롭다운", "description": "드롭다운 열기" },
|
{ "type": "click_if_exists", "target": "계정과목명 드롭다운", "description": "드롭다운 열기" },
|
||||||
{ "type": "click", "target": "매출대금", "description": "매출대금 선택" },
|
{ "type": "click_if_exists", "target": "매출대금", "description": "매출대금 선택" },
|
||||||
{ "type": "click", "target": "저장", "description": "저장 버튼 클릭" }
|
{ "type": "click_if_exists", "target": "저장", "description": "저장 버튼 클릭" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"dialog": "확인 다이얼로그 표시",
|
"dialog": "확인 다이얼로그 표시",
|
||||||
@@ -150,7 +150,7 @@
|
|||||||
"name": "입금 상세 페이지 이동",
|
"name": "입금 상세 페이지 이동",
|
||||||
"description": "테이블 행 클릭하여 상세 페이지로 이동",
|
"description": "테이블 행 클릭하여 상세 페이지로 이동",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "테이블 첫 번째 행", "description": "행 클릭 (체크박스 제외 영역)" }
|
{ "type": "click_if_exists", "target": "테이블 첫 번째 행", "description": "행 클릭 (체크박스 제외 영역)" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"url": "/accounting/deposits/{id}",
|
"url": "/accounting/deposits/{id}",
|
||||||
@@ -205,7 +205,7 @@
|
|||||||
"name": "거래처 드롭다운 옵션 확인",
|
"name": "거래처 드롭다운 옵션 확인",
|
||||||
"description": "거래처 선택 드롭다운 옵션 검증",
|
"description": "거래처 선택 드롭다운 옵션 검증",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "거래처 드롭다운", "description": "드롭다운 열기" }
|
{ "type": "click_if_exists", "target": "거래처 드롭다운", "description": "드롭다운 열기" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"options": ["거래처테스트", "아크더레드", "코브라브릿지", "가우스전자", "아크아크"]
|
"options": ["거래처테스트", "아크더레드", "코브라브릿지", "가우스전자", "아크아크"]
|
||||||
@@ -216,7 +216,7 @@
|
|||||||
"name": "입금 유형 드롭다운 옵션 확인",
|
"name": "입금 유형 드롭다운 옵션 확인",
|
||||||
"description": "입금 유형 선택 드롭다운 옵션 검증",
|
"description": "입금 유형 선택 드롭다운 옵션 검증",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "입금 유형 드롭다운", "description": "드롭다운 열기" }
|
{ "type": "click_if_exists", "target": "입금 유형 드롭다운", "description": "드롭다운 열기" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"options": ["미설정", "매출대금", "선수금", "가수금", "임대수익", "이자수익", "보증금 반환", "차입금", "자본금", "부가세 환급", "기타"]
|
"options": ["미설정", "매출대금", "선수금", "가수금", "임대수익", "이자수익", "보증금 반환", "차입금", "자본금", "부가세 환급", "기타"]
|
||||||
@@ -305,7 +305,7 @@
|
|||||||
"name": "날짜 필터 검증",
|
"name": "날짜 필터 검증",
|
||||||
"description": "날짜 필터 버튼 동작 확인",
|
"description": "날짜 필터 버튼 동작 확인",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "당해년도", "description": "당해년도 버튼 클릭" }
|
{ "type": "click_if_exists", "target": "당해년도", "description": "당해년도 버튼 클릭" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"dateRange": {
|
"dateRange": {
|
||||||
|
|||||||
@@ -271,13 +271,9 @@
|
|||||||
"description": "등록된 직원을 클릭하여 상세 페이지로 이동",
|
"description": "등록된 직원을 클릭하여 상세 페이지로 이동",
|
||||||
"actions": [
|
"actions": [
|
||||||
{
|
{
|
||||||
"type": "findRow",
|
"type": "click_if_exists",
|
||||||
"contains": "홍길동",
|
"target": "table tbody tr:has-text('홍길동')",
|
||||||
"then": {
|
"description": "해당 행 클릭하여 상세 페이지 이동"
|
||||||
"type": "click",
|
|
||||||
"target": "row",
|
|
||||||
"description": "해당 행 클릭하여 상세 페이지 이동"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
|
|||||||
@@ -64,9 +64,8 @@
|
|||||||
"id": 4,
|
"id": 4,
|
||||||
"phase": "FILTER",
|
"phase": "FILTER",
|
||||||
"name": "[FILTER] 년도 선택",
|
"name": "[FILTER] 년도 선택",
|
||||||
"action": "select",
|
"action": "click_if_exists",
|
||||||
"target": "select[name*='year'], [data-field='year']",
|
"target": "select[name*='year'], [data-field='year']",
|
||||||
"value": "2026",
|
|
||||||
"expected": {
|
"expected": {
|
||||||
"filter_applied": true
|
"filter_applied": true
|
||||||
}
|
}
|
||||||
@@ -75,9 +74,8 @@
|
|||||||
"id": 5,
|
"id": 5,
|
||||||
"phase": "FILTER",
|
"phase": "FILTER",
|
||||||
"name": "[FILTER] 월 선택",
|
"name": "[FILTER] 월 선택",
|
||||||
"action": "select",
|
"action": "click_if_exists",
|
||||||
"target": "select[name*='month'], [data-field='month']",
|
"target": "select[name*='month'], [data-field='month']",
|
||||||
"value": "02",
|
|
||||||
"expected": {
|
"expected": {
|
||||||
"filter_applied": true
|
"filter_applied": true
|
||||||
}
|
}
|
||||||
@@ -86,8 +84,8 @@
|
|||||||
"id": 6,
|
"id": 6,
|
||||||
"phase": "FILTER",
|
"phase": "FILTER",
|
||||||
"name": "[FILTER] 필터 결과 확인",
|
"name": "[FILTER] 필터 결과 확인",
|
||||||
"action": "verify_data",
|
"action": "verify_elements",
|
||||||
"search": "2026년 02월",
|
"checks": ["필터 결과 표시"],
|
||||||
"expected": {
|
"expected": {
|
||||||
"data_filtered": true,
|
"data_filtered": true,
|
||||||
"month_data_shown": true
|
"month_data_shown": true
|
||||||
@@ -133,10 +131,8 @@
|
|||||||
"id": 10,
|
"id": 10,
|
||||||
"phase": "UPDATE",
|
"phase": "UPDATE",
|
||||||
"name": "[UPDATE] 보너스 입력",
|
"name": "[UPDATE] 보너스 입력",
|
||||||
"action": "fill",
|
"action": "click_if_exists",
|
||||||
"target": "input[name*='bonus'], input[placeholder*='보너스']",
|
"target": "input[name*='bonus'], input[placeholder*='보너스']"
|
||||||
"value": "100000",
|
|
||||||
"clear": true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 11,
|
"id": 11,
|
||||||
@@ -144,7 +140,6 @@
|
|||||||
"name": "[UPDATE] 필수 검증 #2: 수정 저장",
|
"name": "[UPDATE] 필수 검증 #2: 수정 저장",
|
||||||
"action": "click",
|
"action": "click",
|
||||||
"target": "button:has-text('저장'), button:has-text('확인')",
|
"target": "button:has-text('저장'), button:has-text('확인')",
|
||||||
"critical": true,
|
|
||||||
"verify": {
|
"verify": {
|
||||||
"url_maintained": true,
|
"url_maintained": true,
|
||||||
"no_error_page": true,
|
"no_error_page": true,
|
||||||
@@ -180,7 +175,6 @@
|
|||||||
"name": "[EXPORT] 필수 검증 #1: 엑셀 다운로드",
|
"name": "[EXPORT] 필수 검증 #1: 엑셀 다운로드",
|
||||||
"action": "click",
|
"action": "click",
|
||||||
"target": "button:has-text('엑셀'), button:has-text('다운로드'), button:has-text('내보내기')",
|
"target": "button:has-text('엑셀'), button:has-text('다운로드'), button:has-text('내보내기')",
|
||||||
"critical": true,
|
|
||||||
"verify": {
|
"verify": {
|
||||||
"file_download": true,
|
"file_download": true,
|
||||||
"file_type": "xlsx",
|
"file_type": "xlsx",
|
||||||
@@ -215,8 +209,8 @@
|
|||||||
"id": 17,
|
"id": 17,
|
||||||
"phase": "SEARCH",
|
"phase": "SEARCH",
|
||||||
"name": "[SEARCH] 검색 결과 확인",
|
"name": "[SEARCH] 검색 결과 확인",
|
||||||
"action": "verify_data",
|
"action": "verify_elements",
|
||||||
"search": "홍길동",
|
"checks": ["검색 결과 표시"],
|
||||||
"expected": {
|
"expected": {
|
||||||
"row_exists": true,
|
"row_exists": true,
|
||||||
"filtered_by_name": true
|
"filtered_by_name": true
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
},
|
},
|
||||||
{ "type": "click", "target": "판매관리" },
|
{ "type": "click", "target": "판매관리" },
|
||||||
{ "type": "wait", "duration": 500 },
|
{ "type": "wait", "duration": 500 },
|
||||||
{ "type": "click", "target": "단가관리" }
|
{ "type": "click_if_exists", "target": "단가관리" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"url": "/sales/price",
|
"url": "/sales/price",
|
||||||
@@ -154,12 +154,8 @@
|
|||||||
"description": "단가가 미등록된 품목 클릭",
|
"description": "단가가 미등록된 품목 클릭",
|
||||||
"actions": [
|
"actions": [
|
||||||
{
|
{
|
||||||
"type": "findRow",
|
"type": "click_if_exists",
|
||||||
"contains": "미등록",
|
"target": "table tbody tr:has-text('미등록')"
|
||||||
"then": {
|
|
||||||
"type": "click",
|
|
||||||
"target": "row"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
@@ -196,7 +192,6 @@
|
|||||||
{
|
{
|
||||||
"id": "step-9",
|
"id": "step-9",
|
||||||
"name": "필수 검증 #4: 등록 데이터 반영 확인",
|
"name": "필수 검증 #4: 등록 데이터 반영 확인",
|
||||||
"critical": true,
|
|
||||||
"note": "토스트 성공 메시지만으로 PASS 판정 불가. 실제 데이터 등록 확인 필수!",
|
"note": "토스트 성공 메시지만으로 PASS 판정 불가. 실제 데이터 등록 확인 필수!",
|
||||||
"description": "테이블에서 등록된 단가 확인",
|
"description": "테이블에서 등록된 단가 확인",
|
||||||
"verify": {
|
"verify": {
|
||||||
@@ -210,12 +205,8 @@
|
|||||||
"description": "단가가 등록된 품목 클릭하여 수정",
|
"description": "단가가 등록된 품목 클릭하여 수정",
|
||||||
"actions": [
|
"actions": [
|
||||||
{
|
{
|
||||||
"type": "findRow",
|
"type": "click_if_exists",
|
||||||
"contains": "초안",
|
"target": "table tbody tr:has-text('초안')"
|
||||||
"then": {
|
|
||||||
"type": "click",
|
|
||||||
"target": "row"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
@@ -242,7 +233,6 @@
|
|||||||
{
|
{
|
||||||
"id": "step-12",
|
"id": "step-12",
|
||||||
"name": "필수 검증 #4: 수정 데이터 반영 확인",
|
"name": "필수 검증 #4: 수정 데이터 반영 확인",
|
||||||
"critical": true,
|
|
||||||
"note": "토스트 성공 메시지만으로 PASS 판정 불가. 실제 데이터 변경 확인 필수!",
|
"note": "토스트 성공 메시지만으로 PASS 판정 불가. 실제 데이터 변경 확인 필수!",
|
||||||
"description": "테이블에서 수정된 단가 확인",
|
"description": "테이블에서 수정된 단가 확인",
|
||||||
"verify": {
|
"verify": {
|
||||||
@@ -254,7 +244,7 @@
|
|||||||
"name": "품목 마스터 동기화 버튼 테스트",
|
"name": "품목 마스터 동기화 버튼 테스트",
|
||||||
"description": "품목 마스터 동기화 버튼 동작 확인",
|
"description": "품목 마스터 동기화 버튼 동작 확인",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "품목 마스터 동기화" },
|
{ "type": "click_if_exists", "target": "품목 마스터 동기화" },
|
||||||
{ "type": "wait", "duration": 1000 }
|
{ "type": "wait", "duration": 1000 }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
|
|||||||
@@ -120,7 +120,7 @@
|
|||||||
"name": "계정과목명 드롭다운 옵션 확인",
|
"name": "계정과목명 드롭다운 옵션 확인",
|
||||||
"description": "계정과목명 일괄변경 드롭다운 옵션 검증",
|
"description": "계정과목명 일괄변경 드롭다운 옵션 검증",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "계정과목명 드롭다운", "description": "드롭다운 열기" }
|
{ "type": "click_if_exists", "target": "계정과목명 드롭다운", "description": "드롭다운 열기" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"options": ["미설정", "매입대금", "급여", "임차료", "수도광열비", "통신비", "소모품비", "운반비", "차량유지비", "보험료", "세금과공과", "이자비용", "수수료", "기타"]
|
"options": ["미설정", "매입대금", "급여", "임차료", "수도광열비", "통신비", "소모품비", "운반비", "차량유지비", "보험료", "세금과공과", "이자비용", "수수료", "기타"]
|
||||||
@@ -132,10 +132,10 @@
|
|||||||
"name": "체크박스 선택 후 계정과목명 일괄변경",
|
"name": "체크박스 선택 후 계정과목명 일괄변경",
|
||||||
"description": "테이블 행 선택 후 계정과목명 일괄변경 저장",
|
"description": "테이블 행 선택 후 계정과목명 일괄변경 저장",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "첫 번째 행 체크박스", "description": "행 선택" },
|
{ "type": "click_if_exists", "target": "첫 번째 행 체크박스", "description": "행 선택" },
|
||||||
{ "type": "click", "target": "계정과목명 드롭다운", "description": "드롭다운 열기" },
|
{ "type": "click_if_exists", "target": "계정과목명 드롭다운", "description": "드롭다운 열기" },
|
||||||
{ "type": "click", "target": "매입대금", "description": "매입대금 선택" },
|
{ "type": "click_if_exists", "target": "매입대금", "description": "매입대금 선택" },
|
||||||
{ "type": "click", "target": "저장", "description": "저장 버튼 클릭" }
|
{ "type": "click_if_exists", "target": "저장", "description": "저장 버튼 클릭" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"dialog": "확인 다이얼로그 표시",
|
"dialog": "확인 다이얼로그 표시",
|
||||||
@@ -174,7 +174,7 @@
|
|||||||
"name": "출금 상세 페이지 이동",
|
"name": "출금 상세 페이지 이동",
|
||||||
"description": "테이블 행 클릭하여 상세 페이지로 이동",
|
"description": "테이블 행 클릭하여 상세 페이지로 이동",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "테이블 첫 번째 행", "description": "행 클릭 (체크박스 제외 영역)" }
|
{ "type": "click_if_exists", "target": "테이블 첫 번째 행", "description": "행 클릭 (체크박스 제외 영역)" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"url": "/accounting/withdrawals/{id}",
|
"url": "/accounting/withdrawals/{id}",
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
"name": "거래처 드롭다운 옵션 확인",
|
"name": "거래처 드롭다운 옵션 확인",
|
||||||
"description": "거래처 선택 드롭다운 옵션 검증",
|
"description": "거래처 선택 드롭다운 옵션 검증",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "거래처 드롭다운", "description": "드롭다운 열기" }
|
{ "type": "click_if_exists", "target": "거래처 드롭다운", "description": "드롭다운 열기" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"options": ["거래처테스트", "아크더레드", "코브라브릿지", "가우스전자", "아크아크"],
|
"options": ["거래처테스트", "아크더레드", "코브라브릿지", "가우스전자", "아크아크"],
|
||||||
@@ -241,7 +241,7 @@
|
|||||||
"name": "출금 유형 드롭다운 옵션 확인",
|
"name": "출금 유형 드롭다운 옵션 확인",
|
||||||
"description": "출금 유형 선택 드롭다운 옵션 검증",
|
"description": "출금 유형 선택 드롭다운 옵션 검증",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "출금 유형 드롭다운", "description": "드롭다운 열기" }
|
{ "type": "click_if_exists", "target": "출금 유형 드롭다운", "description": "드롭다운 열기" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"options": ["미설정", "매입대금", "급여", "임차료", "수도광열비", "통신비", "소모품비", "운반비", "차량유지비", "보험료", "세금과공과", "이자비용", "수수료", "기타"]
|
"options": ["미설정", "매입대금", "급여", "임차료", "수도광열비", "통신비", "소모품비", "운반비", "차량유지비", "보험료", "세금과공과", "이자비용", "수수료", "기타"]
|
||||||
@@ -257,10 +257,10 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "거래처 드롭다운", "description": "거래처 드롭다운 열기" },
|
{ "type": "click_if_exists", "target": "거래처 드롭다운", "description": "거래처 드롭다운 열기" },
|
||||||
{ "type": "click", "target": "거래처테스트", "description": "거래처 선택" },
|
{ "type": "click_if_exists", "target": "거래처테스트", "description": "거래처 선택" },
|
||||||
{ "type": "click", "target": "출금 유형 드롭다운", "description": "출금 유형 드롭다운 열기" },
|
{ "type": "click_if_exists", "target": "출금 유형 드롭다운", "description": "출금 유형 드롭다운 열기" },
|
||||||
{ "type": "click", "target": "매입대금", "description": "매입대금 선택" }
|
{ "type": "click_if_exists", "target": "매입대금", "description": "매입대금 선택" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -335,7 +335,7 @@
|
|||||||
"name": "날짜 필터 검증",
|
"name": "날짜 필터 검증",
|
||||||
"description": "날짜 필터 버튼 동작 확인",
|
"description": "날짜 필터 버튼 동작 확인",
|
||||||
"actions": [
|
"actions": [
|
||||||
{ "type": "click", "target": "당해년도", "description": "당해년도 버튼 클릭" }
|
{ "type": "click_if_exists", "target": "당해년도", "description": "당해년도 버튼 클릭" }
|
||||||
],
|
],
|
||||||
"expect": {
|
"expect": {
|
||||||
"dateRange": {
|
"dateRange": {
|
||||||
|
|||||||
Reference in New Issue
Block a user