716 lines
20 KiB
JSON
716 lines
20 KiB
JSON
|
|
{
|
||
|
|
"scenarioId": "production-dashboard",
|
||
|
|
"scenarioName": "생산 현황판 (Production Dashboard)",
|
||
|
|
"screenshotPolicy": {
|
||
|
|
"onErrorOnly": true,
|
||
|
|
"captureOn": ["error", "fail", "timeout", "404", "500", "blocked"]
|
||
|
|
},
|
||
|
|
"description": "생산관리 - 생산 현황판 메뉴의 전체 기능 테스트: 통계 카드 확인, 공장별 탭 필터, 긴급/지연 작업 표시, 작업지시 상세보기, 작업자 화면 및 작업지시 목록 이동",
|
||
|
|
"baseUrl": "https://dev.codebridge-x.com",
|
||
|
|
"url": "/production/dashboard",
|
||
|
|
"menuNavigation": {
|
||
|
|
"level1": "생산관리",
|
||
|
|
"level2": "생산 현황판",
|
||
|
|
"expectedUrl": "/production/dashboard"
|
||
|
|
},
|
||
|
|
"menuNavigationEnhanced": {
|
||
|
|
"strategy": "scroll-and-search",
|
||
|
|
"sidebarSelector": ".sidebar-scroll, [class*='sidebar'], nav[role='navigation']",
|
||
|
|
"scrollConfig": {
|
||
|
|
"scrollStep": 200,
|
||
|
|
"maxScrollAttempts": 10,
|
||
|
|
"scrollDelay": 300
|
||
|
|
},
|
||
|
|
"level1": {
|
||
|
|
"text": "생산관리",
|
||
|
|
"fallbackSelectors": [
|
||
|
|
"span:has-text('생산관리')",
|
||
|
|
"[data-menu='production']",
|
||
|
|
"a[href*='production']"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"level2": {
|
||
|
|
"text": "생산 현황판",
|
||
|
|
"fallbackSelectors": [
|
||
|
|
"span:has-text('생산 현황판')",
|
||
|
|
"[data-submenu='dashboard']",
|
||
|
|
"a[href*='dashboard']"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"scrollAndFind": {
|
||
|
|
"enabled": true,
|
||
|
|
"scrollToTopFirst": true,
|
||
|
|
"searchWhileScrolling": true
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"testData": {
|
||
|
|
"existingWorkOrder": {
|
||
|
|
"작업지시번호": "WO202601150001",
|
||
|
|
"작업상태": "대기",
|
||
|
|
"발주처": "코브라브릿지",
|
||
|
|
"현장명": "테스트현장2",
|
||
|
|
"지연일수": "+2일 지연"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"steps": [
|
||
|
|
{
|
||
|
|
"step": 0,
|
||
|
|
"name": "사이드바 초기화",
|
||
|
|
"description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비",
|
||
|
|
"actions": [
|
||
|
|
{
|
||
|
|
"type": "evaluate",
|
||
|
|
"script": "document.querySelector('.sidebar-scroll, [class*=\"sidebar\"], nav[role=\"navigation\"]')?.scrollTo({top: 0, behavior: 'instant'})"
|
||
|
|
},
|
||
|
|
{ "type": "wait", "duration": 500 }
|
||
|
|
],
|
||
|
|
"expected": {
|
||
|
|
"sidebarReady": true
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 1,
|
||
|
|
"name": "2단계 메뉴 진입: 생산관리 > 생산 현황판",
|
||
|
|
"description": "생산관리 > 생산 현황판 메뉴로 이동하여 페이지 로드 확인 (scrollAndFind 패턴 사용)",
|
||
|
|
"menuNavigation": {
|
||
|
|
"useEnhanced": true,
|
||
|
|
"pattern": "scrollAndFind"
|
||
|
|
},
|
||
|
|
"actions": [
|
||
|
|
{
|
||
|
|
"type": "scrollAndFind",
|
||
|
|
"target": "생산관리",
|
||
|
|
"scrollContainer": ".sidebar-scroll",
|
||
|
|
"scrollStep": 200,
|
||
|
|
"maxAttempts": 10
|
||
|
|
},
|
||
|
|
{ "type": "click", "target": "생산관리" },
|
||
|
|
{ "type": "wait", "duration": 500 },
|
||
|
|
{
|
||
|
|
"type": "scrollAndFind",
|
||
|
|
"target": "생산 현황판",
|
||
|
|
"scrollContainer": ".sidebar-scroll",
|
||
|
|
"scrollStep": 200,
|
||
|
|
"maxAttempts": 10
|
||
|
|
},
|
||
|
|
{ "type": "click", "target": "생산 현황판" },
|
||
|
|
{ "type": "wait", "target": "페이지 로드 완료" }
|
||
|
|
],
|
||
|
|
"expected": {
|
||
|
|
"url": "/ko/production/dashboard",
|
||
|
|
"title": "생산 현황판",
|
||
|
|
"authenticated": true
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 2,
|
||
|
|
"name": "페이지 로딩 대기",
|
||
|
|
"action": "wait",
|
||
|
|
"duration": 3,
|
||
|
|
"expected": "데이터 로딩 완료"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 3,
|
||
|
|
"name": "페이지 제목 확인",
|
||
|
|
"action": "verifyText",
|
||
|
|
"selector": "h1",
|
||
|
|
"expected": "생산 현황판"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 4,
|
||
|
|
"name": "페이지 설명 확인",
|
||
|
|
"action": "verifyText",
|
||
|
|
"expected": "공장별 작업 현황을 확인합니다."
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 5,
|
||
|
|
"name": "작업자 화면 버튼 존재 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "button",
|
||
|
|
"text": "작업자 화면",
|
||
|
|
"expected": "버튼 표시됨"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 6,
|
||
|
|
"name": "작업지시 목록 버튼 존재 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "button",
|
||
|
|
"text": "작업지시 목록",
|
||
|
|
"expected": "버튼 표시됨"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 7,
|
||
|
|
"name": "공장 탭 필터 확인 - 전체 탭",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "tab",
|
||
|
|
"text": "전체",
|
||
|
|
"expected": "전체 탭 표시 및 선택됨"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 8,
|
||
|
|
"name": "공장 탭 필터 확인 - 스크린 탭",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "tab",
|
||
|
|
"text": "스크린",
|
||
|
|
"expected": "스크린 탭 표시됨"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 9,
|
||
|
|
"name": "통계 카드 6개 확인",
|
||
|
|
"action": "verifyCount",
|
||
|
|
"selector": "통계 카드",
|
||
|
|
"expected": "6개의 통계 카드 표시 (전체 작업, 작업 대기, 작업중, 작업 완료, 긴급, 지연)"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 10,
|
||
|
|
"name": "전체 작업 통계 카드 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "전체 작업",
|
||
|
|
"expected": "전체 작업 카드 표시 및 숫자 확인"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 11,
|
||
|
|
"name": "작업 대기 통계 카드 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "작업 대기",
|
||
|
|
"expected": "작업 대기 카드 표시 및 숫자 확인"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 12,
|
||
|
|
"name": "작업중 통계 카드 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "작업중",
|
||
|
|
"expected": "작업중 카드 표시 및 숫자 확인"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 13,
|
||
|
|
"name": "작업 완료 통계 카드 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "작업 완료",
|
||
|
|
"expected": "작업 완료 카드 표시 및 숫자 확인"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 14,
|
||
|
|
"name": "긴급 통계 카드 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "긴급",
|
||
|
|
"expected": "긴급 카드 표시 및 숫자 확인"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 15,
|
||
|
|
"name": "지연 통계 카드 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "지연",
|
||
|
|
"expected": "지연 카드 표시 및 숫자 확인 (1개)"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 16,
|
||
|
|
"name": "긴급 작업 섹션 제목 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "h4",
|
||
|
|
"text": "긴급 작업",
|
||
|
|
"expected": "긴급 작업 섹션 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 17,
|
||
|
|
"name": "긴급 작업 개수 확인",
|
||
|
|
"action": "verifyText",
|
||
|
|
"expected": "긴급 작업 0 또는 긴급 작업이 없습니다."
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 18,
|
||
|
|
"name": "지연 작업 섹션 제목 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "h4",
|
||
|
|
"text": "지연 작업",
|
||
|
|
"expected": "지연 작업 섹션 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 19,
|
||
|
|
"name": "지연 작업 개수 확인",
|
||
|
|
"action": "verifyText",
|
||
|
|
"expected": "지연 작업 1"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 20,
|
||
|
|
"name": "지연 작업 카드 존재 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "WO202601150001",
|
||
|
|
"expected": "작업지시번호가 표시된 지연 작업 카드 확인"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 21,
|
||
|
|
"name": "지연 작업 카드 - 작업상태 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "대기",
|
||
|
|
"expected": "작업상태 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 22,
|
||
|
|
"name": "지연 작업 카드 - 발주처 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "코브라브릿지",
|
||
|
|
"expected": "발주처 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 23,
|
||
|
|
"name": "지연 작업 카드 - 지연일수 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "+2일 지연",
|
||
|
|
"expected": "지연일수 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 24,
|
||
|
|
"name": "작업자별 현황 섹션 제목 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "h4",
|
||
|
|
"text": "작업자별 현황",
|
||
|
|
"expected": "작업자별 현황 섹션 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 25,
|
||
|
|
"name": "스크린 탭 클릭",
|
||
|
|
"action": "click",
|
||
|
|
"selector": "tab",
|
||
|
|
"text": "스크린",
|
||
|
|
"expected": "스크린 공장 필터 적용"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 26,
|
||
|
|
"name": "스크린 탭 선택 확인",
|
||
|
|
"action": "verifyAttribute",
|
||
|
|
"selector": "tab[text='스크린']",
|
||
|
|
"attribute": "selected",
|
||
|
|
"expected": "스크린 탭이 선택됨"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 27,
|
||
|
|
"name": "스크린 공장 - 통계 변경 확인",
|
||
|
|
"action": "verifyStatChange",
|
||
|
|
"expected": "통계 카드 숫자가 스크린 공장 데이터로 변경 (전체 0개)"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 28,
|
||
|
|
"name": "스크린 공장 - 지연 작업 확인",
|
||
|
|
"action": "verifyText",
|
||
|
|
"expected": "지연 작업이 없습니다."
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 29,
|
||
|
|
"name": "전체 탭으로 복귀",
|
||
|
|
"action": "click",
|
||
|
|
"selector": "tab",
|
||
|
|
"text": "전체",
|
||
|
|
"expected": "전체 필터로 복귀"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 30,
|
||
|
|
"name": "전체 탭 선택 확인",
|
||
|
|
"action": "verifyAttribute",
|
||
|
|
"selector": "tab[text='전체']",
|
||
|
|
"attribute": "selected",
|
||
|
|
"expected": "전체 탭이 선택됨"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 31,
|
||
|
|
"name": "전체 필터 - 통계 복귀 확인",
|
||
|
|
"action": "verifyText",
|
||
|
|
"expected": "전체 작업 1개 복귀"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 32,
|
||
|
|
"name": "전체 필터 - 지연 작업 복귀 확인",
|
||
|
|
"action": "verifyText",
|
||
|
|
"expected": "지연 작업 1개 복귀"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 33,
|
||
|
|
"name": "지연 작업 카드 클릭",
|
||
|
|
"action": "click",
|
||
|
|
"text": "WO202601150001",
|
||
|
|
"expected": "작업지시 상세 페이지로 이동"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 34,
|
||
|
|
"name": "URL 변경 확인 (필수 검증 #2)",
|
||
|
|
"action": "verifyUrl",
|
||
|
|
"expected": "URL이 /production/work-orders/1로 변경 (404 에러 페이지 아님)",
|
||
|
|
"validation": {
|
||
|
|
"notContains": ["404", "not-found", "error"]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 35,
|
||
|
|
"name": "작업지시 상세 페이지 제목 확인",
|
||
|
|
"action": "verifyText",
|
||
|
|
"selector": "h1",
|
||
|
|
"expected": "작업지시 상세"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 36,
|
||
|
|
"name": "수정 버튼 존재 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "button",
|
||
|
|
"text": "수정",
|
||
|
|
"expected": "수정 버튼 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 37,
|
||
|
|
"name": "작업일지 버튼 존재 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "button",
|
||
|
|
"text": "작업일지",
|
||
|
|
"expected": "작업일지 버튼 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 38,
|
||
|
|
"name": "목록 버튼 존재 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "button",
|
||
|
|
"text": "목록",
|
||
|
|
"expected": "목록 버튼 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 39,
|
||
|
|
"name": "기본 정보 섹션 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "h3",
|
||
|
|
"text": "기본 정보",
|
||
|
|
"expected": "기본 정보 섹션 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 40,
|
||
|
|
"name": "작업지시번호 확인",
|
||
|
|
"action": "verifyData",
|
||
|
|
"field": "작업지시번호",
|
||
|
|
"expected": "WO202601150001"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 41,
|
||
|
|
"name": "로트번호 확인",
|
||
|
|
"action": "verifyData",
|
||
|
|
"field": "로트번호",
|
||
|
|
"expected": "ORD202601150001"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 42,
|
||
|
|
"name": "작업상태 확인",
|
||
|
|
"action": "verifyData",
|
||
|
|
"field": "작업상태",
|
||
|
|
"expected": "승인대기"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 43,
|
||
|
|
"name": "발주처 확인",
|
||
|
|
"action": "verifyData",
|
||
|
|
"field": "발주처",
|
||
|
|
"expected": "코브라브릿지"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 44,
|
||
|
|
"name": "현장명 확인",
|
||
|
|
"action": "verifyData",
|
||
|
|
"field": "현장명",
|
||
|
|
"expected": "테스트현장2"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 45,
|
||
|
|
"name": "납기일 확인",
|
||
|
|
"action": "verifyData",
|
||
|
|
"field": "납기일",
|
||
|
|
"expected": "2026-01-14"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 46,
|
||
|
|
"name": "우선순위 확인",
|
||
|
|
"action": "verifyData",
|
||
|
|
"field": "우선순위",
|
||
|
|
"expected": "5 (일반)"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 47,
|
||
|
|
"name": "공정 진행 섹션 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "h3",
|
||
|
|
"text": "공정 진행 (5단계)",
|
||
|
|
"expected": "공정 진행 섹션 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 48,
|
||
|
|
"name": "공정 단계 1 - 원단절단 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "원단절단",
|
||
|
|
"expected": "원단절단 공정 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 49,
|
||
|
|
"name": "공정 단계 2 - 미싱 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "미싱",
|
||
|
|
"expected": "미싱 공정 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 50,
|
||
|
|
"name": "공정 단계 3 - 앤드락작업 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "앤드락작업",
|
||
|
|
"expected": "앤드락작업 공정 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 51,
|
||
|
|
"name": "공정 단계 4 - 중간검사 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "중간검사",
|
||
|
|
"expected": "중간검사 공정 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 52,
|
||
|
|
"name": "공정 단계 5 - 포장 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "포장",
|
||
|
|
"expected": "포장 공정 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 53,
|
||
|
|
"name": "작업 품목 섹션 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "h3",
|
||
|
|
"text": "작업 품목 (0건)",
|
||
|
|
"expected": "작업 품목 섹션 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 54,
|
||
|
|
"name": "작업 품목 없음 메시지 확인",
|
||
|
|
"action": "verifyText",
|
||
|
|
"expected": "등록된 품목이 없습니다."
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 55,
|
||
|
|
"name": "목록 버튼 클릭",
|
||
|
|
"action": "click",
|
||
|
|
"selector": "button",
|
||
|
|
"text": "목록",
|
||
|
|
"expected": "작업지시 목록 페이지로 이동"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 56,
|
||
|
|
"name": "URL 변경 확인 - 작업지시 목록",
|
||
|
|
"action": "verifyUrl",
|
||
|
|
"expected": "URL이 /production/work-orders로 변경",
|
||
|
|
"validation": {
|
||
|
|
"notContains": ["404", "not-found", "error"]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 57,
|
||
|
|
"name": "작업지시 목록 페이지 제목 확인",
|
||
|
|
"action": "verifyText",
|
||
|
|
"selector": "h1",
|
||
|
|
"expected": "작업지시 목록"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 58,
|
||
|
|
"name": "작업지시 목록 - 등록 버튼 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "button",
|
||
|
|
"text": "등록",
|
||
|
|
"expected": "등록 버튼 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 59,
|
||
|
|
"name": "작업지시 목록 - 통계 카드 확인",
|
||
|
|
"action": "verifyCount",
|
||
|
|
"expected": "4개의 통계 카드 (전체, 작업대기, 작업중, 작업완료)"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 60,
|
||
|
|
"name": "작업지시 목록 - 검색창 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "textbox",
|
||
|
|
"placeholder": "작업지시번호, 발주처, 현장명 검색...",
|
||
|
|
"expected": "검색창 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 61,
|
||
|
|
"name": "작업지시 목록 - 상태 탭 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "button",
|
||
|
|
"text": "전체",
|
||
|
|
"expected": "상태 필터 탭 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 62,
|
||
|
|
"name": "작업지시 목록 - 테이블 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"selector": "table",
|
||
|
|
"expected": "작업지시 테이블 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 63,
|
||
|
|
"name": "작업지시 목록 - 테이블 헤더 확인",
|
||
|
|
"action": "verifyTableHeaders",
|
||
|
|
"expected": "번호, 작업지시번호, 공정, 로트번호, 지시일, 배정, 작업, 시작, 작업상태, 현장순위, 작업자, 현장명, 출고예정일"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 64,
|
||
|
|
"name": "작업지시 목록 - 데이터 행 확인",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "WO202601150001",
|
||
|
|
"expected": "테스트 작업지시 데이터 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 65,
|
||
|
|
"name": "생산 현황판으로 복귀",
|
||
|
|
"action": "navigate",
|
||
|
|
"url": "/production/dashboard",
|
||
|
|
"expected": "생산 현황판 페이지로 이동"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 66,
|
||
|
|
"name": "페이지 로딩 대기",
|
||
|
|
"action": "wait",
|
||
|
|
"duration": 3,
|
||
|
|
"expected": "데이터 로딩 완료"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 67,
|
||
|
|
"name": "작업자 화면 버튼 클릭",
|
||
|
|
"action": "click",
|
||
|
|
"selector": "button",
|
||
|
|
"text": "작업자 화면",
|
||
|
|
"expected": "작업자 화면 페이지로 이동"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 68,
|
||
|
|
"name": "URL 변경 확인 - 작업자 화면",
|
||
|
|
"action": "verifyUrl",
|
||
|
|
"expected": "URL이 작업자 화면 URL로 변경 (404 에러 페이지 아님)",
|
||
|
|
"validation": {
|
||
|
|
"contains": ["work", "worker", "operator"],
|
||
|
|
"notContains": ["404", "not-found", "error"]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 69,
|
||
|
|
"name": "작업자 화면 페이지 확인",
|
||
|
|
"action": "verifyPage",
|
||
|
|
"expected": "작업자 화면 페이지 정상 로딩"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 70,
|
||
|
|
"name": "생산 현황판으로 재복귀",
|
||
|
|
"action": "navigate",
|
||
|
|
"url": "/production/dashboard",
|
||
|
|
"expected": "생산 현황판 페이지로 이동"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 71,
|
||
|
|
"name": "페이지 로딩 대기",
|
||
|
|
"action": "wait",
|
||
|
|
"duration": 3,
|
||
|
|
"expected": "데이터 로딩 완료"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 72,
|
||
|
|
"name": "작업지시 목록 버튼 클릭",
|
||
|
|
"action": "click",
|
||
|
|
"selector": "button",
|
||
|
|
"text": "작업지시 목록",
|
||
|
|
"expected": "작업지시 목록 페이지로 이동"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 73,
|
||
|
|
"name": "URL 변경 확인 - 작업지시 목록",
|
||
|
|
"action": "verifyUrl",
|
||
|
|
"expected": "URL이 /production/work-orders로 변경",
|
||
|
|
"validation": {
|
||
|
|
"notContains": ["404", "not-found", "error"]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 74,
|
||
|
|
"name": "작업지시 목록 페이지 재확인",
|
||
|
|
"action": "verifyText",
|
||
|
|
"selector": "h1",
|
||
|
|
"expected": "작업지시 목록"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 75,
|
||
|
|
"name": "최종 검증 - 생산 현황판 복귀",
|
||
|
|
"action": "navigate",
|
||
|
|
"url": "/production/dashboard",
|
||
|
|
"expected": "생산 현황판 페이지로 최종 복귀"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 76,
|
||
|
|
"name": "페이지 로딩 대기",
|
||
|
|
"action": "wait",
|
||
|
|
"duration": 3,
|
||
|
|
"expected": "데이터 로딩 완료"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 77,
|
||
|
|
"name": "최종 검증 - 페이지 제목",
|
||
|
|
"action": "verifyText",
|
||
|
|
"selector": "h1",
|
||
|
|
"expected": "생산 현황판"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 78,
|
||
|
|
"name": "최종 검증 - 전체 탭 선택",
|
||
|
|
"action": "verifyAttribute",
|
||
|
|
"selector": "tab[text='전체']",
|
||
|
|
"attribute": "selected",
|
||
|
|
"expected": "전체 탭이 선택됨"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 79,
|
||
|
|
"name": "최종 검증 - 통계 카드",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "전체 작업",
|
||
|
|
"expected": "통계 카드 정상 표시"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"step": 80,
|
||
|
|
"name": "최종 검증 - 지연 작업",
|
||
|
|
"action": "verifyElement",
|
||
|
|
"text": "지연 작업",
|
||
|
|
"expected": "지연 작업 섹션 정상 표시"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"expectedAPIs": [
|
||
|
|
{
|
||
|
|
"description": "생산 현황 데이터 조회",
|
||
|
|
"method": "GET",
|
||
|
|
"endpoint": "/api/production/dashboard",
|
||
|
|
"expectedStatus": 200
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"description": "공장별 필터 데이터 조회",
|
||
|
|
"method": "GET",
|
||
|
|
"endpoint": "/api/production/dashboard?factory=screen",
|
||
|
|
"expectedStatus": 200
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"description": "작업지시 상세 조회",
|
||
|
|
"method": "GET",
|
||
|
|
"endpoint": "/api/production/work-orders/1",
|
||
|
|
"expectedStatus": 200
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"description": "작업지시 목록 조회",
|
||
|
|
"method": "GET",
|
||
|
|
"endpoint": "/api/production/work-orders",
|
||
|
|
"expectedStatus": 200
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"notes": [
|
||
|
|
"생산 현황판은 실시간 데이터를 표시하므로 통계 숫자는 변동될 수 있음",
|
||
|
|
"공장 탭은 현재 '전체'와 '스크린' 2개만 존재",
|
||
|
|
"지연 작업 카드 클릭 시 작업지시 상세 페이지로 이동해야 함",
|
||
|
|
"페이지 로딩 시 3초 대기 필요 (데이터 비동기 로딩)",
|
||
|
|
"작업자 화면 버튼은 별도 작업자 전용 화면으로 이동",
|
||
|
|
"작업지시 목록 버튼은 작업지시 관리 페이지로 이동"
|
||
|
|
]
|
||
|
|
}
|