test: Visual Regression 테스트 성공 및 베이스라인 생성
- 로그인 페이지 스크린샷 (1920x1080) - 대시보드 스크린샷 (1920x1080) - 대시보드 모바일 스크린샷 (iPhone 13) - 동적 콘텐츠 마스킹 정상 동작 - 뷰포트 전환 정상 동작 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
# ✅ 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)
|
||||
```javascript
|
||||
// 페이지 안정화 대기
|
||||
await new Promise(r => setTimeout(r, 1000));
|
||||
|
||||
// 로딩 요소 숨김
|
||||
document.querySelectorAll('.loading, .spinner')
|
||||
.forEach(el => el.style.visibility = 'hidden');
|
||||
```
|
||||
|
||||
### 2. 마스킹 (Mask Dynamic Content)
|
||||
```javascript
|
||||
// 동적 콘텐츠 마스킹
|
||||
const masks = [
|
||||
{ selector: '[class*="time"]', color: '#888' },
|
||||
{ selector: '[class*="avatar"]', color: '#ccc' },
|
||||
{ selector: '[class*="badge"]', color: '#666' }
|
||||
];
|
||||
```
|
||||
|
||||
### 3. 캡처 (Capture)
|
||||
```javascript
|
||||
// Playwright 스크린샷
|
||||
mcp__playwright__playwright_screenshot({
|
||||
name: "page_viewport_baseline",
|
||||
fullPage: false,
|
||||
savePng: true,
|
||||
downloadsDir: "e2e/results/screenshots/baseline"
|
||||
});
|
||||
```
|
||||
|
||||
### 4. 뷰포트 전환 (Viewport Switch)
|
||||
```javascript
|
||||
// 모바일 뷰포트
|
||||
mcp__playwright__playwright_resize({
|
||||
device: "iPhone 13" // 390x664, mobile, touch
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📱 뷰포트 테스트
|
||||
|
||||
| 뷰포트 | 해상도 | 디바이스 | 테스트 |
|
||||
|--------|--------|----------|--------|
|
||||
| Desktop HD | 1920×1080 | - | ✅ |
|
||||
| Mobile | 390×844 | iPhone 13 | ✅ |
|
||||
|
||||
---
|
||||
|
||||
## ✅ 검증 완료 항목
|
||||
|
||||
- [x] 로그인 페이지 스크린샷 캡처
|
||||
- [x] 대시보드 페이지 스크린샷 캡처
|
||||
- [x] 모바일 뷰포트 스크린샷 캡처
|
||||
- [x] PNG 파일 저장 정상
|
||||
- [x] 베이스라인 폴더 구조 생성
|
||||
- [x] 동적 콘텐츠 마스킹 스크립트
|
||||
|
||||
---
|
||||
|
||||
## 📂 폴더 구조
|
||||
|
||||
```
|
||||
e2e/results/screenshots/
|
||||
├── baseline/ ← 기준 스크린샷 (3개 생성됨)
|
||||
├── current/ ← 테스트 중 캡처 (비교용)
|
||||
└── diff/ ← 차이 이미지 (비교 결과)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📁 관련 파일
|
||||
|
||||
- Visual 전역 설정: `e2e/scenarios/_global-visual-config.json`
|
||||
- E2E 설정 문서: `.claude/E2E_TEST_CONFIG.md`
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 153 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
Reference in New Issue
Block a user