6.4 KiB
🤖 AI-Powered Visual Testing Suite
Automatisk UI/UX kvalitetsvurdering ved hjælp af Selenium og OpenAI Vision API.
📋 Oversigt
Denne test suite kombinerer:
- Selenium WebDriver - Automatisk browser navigation og screenshots
- OpenAI GPT-4 Vision - AI-baseret analyse af UI/UX kvalitet
🎯 Formål
Evaluer visuelt design og brugervenlighed automatisk gennem:
- Visuelt Design - Farver, typografi, spacing, modernitet
- Layout & Struktur - Information hierarchy, placering, alignment
- Brugervenlighed (UX) - Navigation, CTAs, forms, feedback
- Professionelt Udtryk - Credibility, polish, brand konsistens
🚀 Kom i gang
Prerequisites
# Python pakker (allerede installeret hvis Selenium virker)
pip install selenium openai python-dotenv
# Chrome/ChromeDriver (allerede installeret)
# OpenAI API key i .env fil
Tilføj API Key
Tilføj din OpenAI API key til .env filen:
OPENAI_API_KEY=sk-your-api-key-here
Kør Test Suite
# Direkte Python kommando
python3 selenium_visual_ai_test.py
# Via npm script
npm run test-visual-ai
# Alias
npm run visual-qa
📊 Output
Test suiten genererer:
- Screenshots - Højkvalitets billeder af alle sider
- AI Analyse - Detaljeret feedback for hver side
- HTML Rapport - Interaktiv rapport med scores og anbefalinger
Rapport Placering
test-results/visual-ai/
├── visual_ai_report_YYYYMMDD_HHMMSS.html # Hoved rapport
├── YYYYMMDD_HHMMSS_homepage.png # Screenshots
├── YYYYMMDD_HHMMSS_projekt_flow.png
├── YYYYMMDD_HHMMSS_geometry_form.png
├── YYYYMMDD_HHMMSS_smart_packages.png
└── YYYYMMDD_HHMMSS_materials_manager.png
📈 Test Struktur
Test Cases
| Test | Beskrivelse | Fokus |
|---|---|---|
| Homepage | Dashboard view | Overall første indtryk |
| Projekt Flow | Step interface | Workflow navigation |
| Geometri Form | Input fields + preview | Form design, input handling |
| Smart Pakker | Package selection | Card design, information density |
| Materialestyring | Material manager | Table design, data presentation |
Evaluerings Metrikker
Hver test evalueres på en skala fra 1-10 for:
- Visuelt Design (farver, typografi, spacing)
- Layout & Struktur (hierarchy, placering, alignment)
- Brugervenlighed (navigation, CTAs, feedback)
- Professionelt Udtryk (credibility, polish, konsistens)
🎨 Rapport Features
Den genererede HTML rapport indeholder:
- ✅ Overall Score - Gennemsnitsscore for alle tests
- 📸 Screenshots - Højopløselige billeder
- 🔍 Detaljeret Feedback - AI-genereret analyse
- ⚠️ Identificerede Problemer - Konkrete issues
- 💡 Anbefalinger - Forbedringsforslag
- 📊 Score Breakdown - Per metrik scores
💻 Eksempel Output
🤖 AI-POWERED VISUAL TESTING SUITE
================================================================================
🔧 Starter Chrome for visuelt AI test...
✅ Chrome klar
🔐 Logger ind...
✅ Login gennemført
================================================================================
🏠 TEST: Homepage / Dashboard
================================================================================
📸 Screenshot: 20251114_143052_homepage.png
🤖 AI analyserer: Hovedside/Dashboard...
✅ AI Analyse gennemført - Overall Score: 8.2/10
================================================================================
🏗️ TEST: Projekt Flow
================================================================================
📸 Screenshot: 20251114_143055_projekt_flow.png
🤖 AI analyserer: Projekt Flow - Step interface...
✅ AI Analyse gennemført - Overall Score: 7.8/10
[... flere tests ...]
================================================================================
📊 GENERERER RAPPORT
================================================================================
✅ Rapport gemt: test-results/visual-ai/visual_ai_report_20251114_143052.html
📊 Gennemsnitsscore: 8.1/10
🎯 Status: Excellent ✅
🔧 Tilpasning
Tilføj Nye Tests
Tilføj metoder til VisualAITester klassen:
def test_new_page(self):
"""Test new page visual quality"""
print("=" * 80)
print("🎯 TEST: New Page")
print("=" * 80)
# Navigate to page
self.driver.get(f"{BASE_URL}/new-page")
time.sleep(3)
# Take screenshot
screenshot = self.take_screenshot("new_page", "New page description")
# Analyze
analysis = self.analyze_visual_quality(screenshot, "Context for AI")
# Store result
self.test_results.append({
"test": "New Page",
"screenshot": screenshot,
"analysis": analysis
})
Tilføj til run_all_tests():
self.test_new_page()
Justér AI Prompt
Rediger analyze_visual_quality() metoden for at ændre evalueringskriterier.
🎯 Best Practices
- Kør efter deployment - Test efter hver release
- Sammenlign over tid - Gem rapporter for historik
- Følg anbefalinger - Implementer AI's forslag
- Kombiner med manuel QA - AI finder ikke alt
- Iterér - Gentag test efter fixes
⚡ Performance
- Typisk køretid: 2-3 minutter
- Cost per test run: ~$0.10-0.20 (OpenAI API)
- Screenshots: ~5MB total
- Rapport: ~500KB HTML
🐛 Troubleshooting
"OPENAI_API_KEY ikke fundet"
Tilføj til .env:
OPENAI_API_KEY=sk-your-key-here
"Chrome binary not found"
Scriptet bruger allerede den korrekte Chrome sti (/usr/bin/google-chrome)
AI analyse fejler
Check API key og internet forbindelse. OpenAI API skal være tilgængelig.
Lav score men siden ser fin ud
AI'en er konservativ. Læs feedback for konkrete forbedringsforslag.
📚 Resources
🤝 Bidrag
Forbedringsforslag til test suite:
- Tilføj flere test cases
- Forbedre AI prompt for bedre feedback
- Tilføj responsive testing (forskellige skærmstørrelser)
- Integrer med CI/CD pipeline
- Tilføj accessibility checks
📝 Changelog
v1.0.0 (2025-11-14)
- Initial release
- 5 test cases
- OpenAI GPT-4 Vision integration
- HTML rapport generation
- Screenshot capture med high detail
Lavet med ❤️ for Tilbudgivern projektet