Files
2025-11-29 18:16:40 +08:00

78 lines
1.8 KiB
Markdown

# Phase 6: Regression Detection
**Purpose**: Compare current screenshots against baselines to detect changes
## Steps
### 1. Load baseline images
- Check if baselines exist in screenshots/baselines/
- If first run, current screenshots become baselines
- If baselines exist, proceed to comparison
### 2. Perform pixel-level comparison
```typescript
import { compareScreenshots } from 'playwright-core/lib/utils';
const diff = await compareScreenshots(
baselinePath,
currentPath,
diffPath,
{ threshold: 0.2 } // 20% difference threshold
);
```
### 3. Generate visual diff reports
- Create side-by-side comparison images
- Highlight changed regions in red
- Calculate difference percentage
- Classify changes:
- **Expected**: Intentional changes (new features, fixes)
- **Suspicious**: Unintended changes requiring review
- **Critical**: Major regressions (broken features)
### 4. Update baselines if approved
Ask user: "Accept these changes as new baseline?"
- If yes, copy current → baselines
- If no, flag as regressions needing fixes
## Output
Visual regression report with diff images:
```markdown
## Regression Report
### Changed Screenshots (3)
| Screenshot | Diff % | Classification |
|------------|--------|----------------|
| home-page | 5% | Expected |
| form-page | 25% | Suspicious |
| mobile-nav | 45% | Critical |
See screenshots/diffs/ for visual comparisons.
```
## Performance
~1-2 seconds per image pair
## Common Issues
**No baselines exist**
- Current screenshots become baselines automatically
- Message: "No baselines found. Current screenshots saved as baselines."
**False positive diffs**
- Adjust threshold (default 20%)
- Ignore dynamic content areas
- Use stable test data
## Transition
Proceed to Phase 7 (Fix Recommendation Generation)