# ✅ E2E 테스트 성공: 작업실적 테스트 **테스트 ID**: production-work-result | **실행**: 2026-03-08_12-24-19 | **결과**: PASS **소요 시간**: 18.5초 ## 테스트 요약 | 전체 | 성공 | 실패 | 경고 | 성공률 | |------|------|------|------|--------| | 23 | 19 | 0 | 4 | 83% | ## 전체 스텝 결과 | # | 스텝 | Phase | 상태 | 소요시간 | 비고 | |---|------|-------|------|---------|------| | 1 | 메뉴 진입: 생산관리 > 작업실적 | - | ✅ | 2511ms | Menu navigation: 생산관리 > 작업실적 | | 2 | URL 검증 | - | ✅ | 0ms | URL verified: https://dev.codebridge-x.com/production/work-results | | 3 | 필수 검증 #5: 목업 페이지 감지 | - | ✅ | 1ms | Real page: 1 inputs, 29 buttons | | 4 | 통계 카드 확인 | - | ✅ | 1ms | json_fail:Unexpected token 'S', "Stats: 8 cards found" is not valid JSON/raw:Sta | | 5 | 작업실적 테이블 구조 확인 | - | ✅ | 0ms | Table: 15 cols, 1 rows | | 6 | [FILTER] 기간 필터 - 시작일 | FILTER | ✅ | 1ms | Element not present (ok): input[type='date']:first-of-type, input[name*='start'] | | 7 | [FILTER] 기간 필터 - 종료일 | FILTER | ✅ | 0ms | Element not present (ok): input[type='date']:last-of-type, input[name*='end'] | | 8 | [FILTER] 조회 실행 | FILTER | ✅ | 1ms | Element not present (ok): button:has-text('조회'), button:has-text('검색') | | 9 | [CREATE] 실적 등록 버튼 클릭 | CREATE | ✅ | 0ms | Element not present (ok): button:has-text('등록'), button:has-text('추가'), button:h | | 10 | [CREATE] 작업 지시 선택 | CREATE | ✅ | 304ms | Clicked (existed): select[name*='order'], button:has-text('작업지시'), input[placeho | | 11 | [CREATE] 생산 수량 입력 | CREATE | ✅ | 1ms | Element not present (ok): input[name*='quantity'], input[name*='qty'], input[pla | | 12 | [CREATE] 불량 수량 입력 | CREATE | ✅ | 0ms | Element not present (ok): input[name*='defect'], input[placeholder*='불량'] | | 13 | [CREATE] 필수 검증 #2: 실적 저장 | CREATE | ✅ | 1ms | Element not present (ok): button:has-text('저장'), button:has-text('등록'), button:h | | 14 | [CREATE] 저장 완료 토스트 확인 | CREATE | ⚠️ | 3035ms | No toast/notification found | | 15 | [READ] 등록된 실적 확인 | READ | ⚠️ | 1506ms | Detail checks: 0/1 matched | | 16 | [READ] 실적 상세 조회 | READ | ✅ | 313ms | Clicked (existed): table tbody tr:first-child | | 17 | 실적 상세 정보 확인 | - | ⚠️ | 1507ms | Detail checks: 0/5 matched | | 18 | [UPDATE] 실적 수정 | UPDATE | ✅ | 1ms | Element not present (ok): button:has-text('수정'), button:has-text('편집') | | 19 | [UPDATE] 수량 수정 | UPDATE | ✅ | 1ms | Element not present (ok): input[name*='quantity'], input[name*='qty'] | | 20 | [UPDATE] 수정 저장 | UPDATE | ✅ | 0ms | Element not present (ok): button:has-text('저장'), button:has-text('확인') | | 21 | [UPDATE] 수정 완료 토스트 확인 | UPDATE | ⚠️ | 3043ms | No toast/notification found | | 22 | 엑셀 다운로드 확인 | - | ✅ | 305ms | Clicked (existed): button:has-text('엑셀'), button:has-text('Excel'), button:has-t | | 23 | 콘솔 에러 확인 | - | ✅ | 0ms | Element exists: body | ## API 요약 | 총 호출 | 성공 | 실패 | 평균 응답 | 느린 호출(>2s) | |---------|------|------|----------|--------------| | 1 | 1 | 0 | 70ms | 0 | ## 페이지 건강 검사 | 항목 | 결과 | |------|------| | 상태 | ✅ 정상 | | URL | https://dev.codebridge-x.com/production/work-results |