- 57개 시나리오 테스트 완료 (56 PASS, 1 FAIL) - 성공 리포트: success/ - 실패 리포트: Fail-account-info (마이페이지 미구현) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.8 KiB
2.8 KiB
✅ Visual Regression 테스트 성공
테스트 ID: Visual-Regression-Test | 실행: 2026-01-31 11:40:59 | 결과: PASS
📊 테스트 요약
| 항목 | 결과 |
|---|---|
| 스크린샷 캡처 | ✅ 정상 |
| 동적 콘텐츠 마스킹 | ✅ 정상 |
| 뷰포트 전환 | ✅ 정상 |
| 베이스라인 생성 | ✅ 3개 생성 |
📸 캡처된 스크린샷
베이스라인 스크린샷 (신규 생성)
| 파일명 | 뷰포트 | 크기 | 페이지 |
|---|---|---|---|
| login_page_1920x1080_baseline | 1920×1080 | 32 KB | 로그인 |
| dashboard_main_1920x1080_baseline | 1920×1080 | 156 KB | 대시보드 |
| dashboard_main_390x844_mobile_baseline | 390×844 | 45 KB | 대시보드 (모바일) |
저장 경로
e2e/results/screenshots/baseline/
├── login_page_1920x1080_baseline-2026-01-31T02-40-12-177Z.png
├── dashboard_main_1920x1080_baseline-2026-01-31T02-40-40-295Z.png
└── dashboard_main_390x844_mobile_baseline-2026-01-31T02-40-50-001Z.png
🔧 테스트 워크플로우
1. 준비 (Prepare)
// 페이지 안정화 대기
await new Promise(r => setTimeout(r, 1000));
// 로딩 요소 숨김
document.querySelectorAll('.loading, .spinner')
.forEach(el => el.style.visibility = 'hidden');
2. 마스킹 (Mask Dynamic Content)
// 동적 콘텐츠 마스킹
const masks = [
{ selector: '[class*="time"]', color: '#888' },
{ selector: '[class*="avatar"]', color: '#ccc' },
{ selector: '[class*="badge"]', color: '#666' }
];
3. 캡처 (Capture)
// Playwright 스크린샷
mcp__playwright__playwright_screenshot({
name: "page_viewport_baseline",
fullPage: false,
savePng: true,
downloadsDir: "e2e/results/screenshots/baseline"
});
4. 뷰포트 전환 (Viewport Switch)
// 모바일 뷰포트
mcp__playwright__playwright_resize({
device: "iPhone 13" // 390x664, mobile, touch
});
📱 뷰포트 테스트
| 뷰포트 | 해상도 | 디바이스 | 테스트 |
|---|---|---|---|
| Desktop HD | 1920×1080 | - | ✅ |
| Mobile | 390×844 | iPhone 13 | ✅ |
✅ 검증 완료 항목
- 로그인 페이지 스크린샷 캡처
- 대시보드 페이지 스크린샷 캡처
- 모바일 뷰포트 스크린샷 캡처
- PNG 파일 저장 정상
- 베이스라인 폴더 구조 생성
- 동적 콘텐츠 마스킹 스크립트
📂 폴더 구조
e2e/results/screenshots/
├── baseline/ ← 기준 스크린샷 (3개 생성됨)
├── current/ ← 테스트 중 캡처 (비교용)
└── diff/ ← 차이 이미지 (비교 결과)
📁 관련 파일
- Visual 전역 설정:
e2e/scenarios/_global-visual-config.json - E2E 설정 문서:
.claude/E2E_TEST_CONFIG.md