GPU-beschleunigte Selenium- & Playwright-Tests: kein GPU für 500 €/Monat nötig
Selenium und Playwright in der CI laufen zu lassen, verlangt keine dedizierte Grafikkarte für mehrere hundert Euro. Aber Ihre Tests mit GPU-Beschleunigung laufen zu lassen – damit WebGL, Canvas und Video sich genauso verhalten wie bei Ihren Nutzern – das verändert alles. Und eine integrierte GPU (iGPU / APU) reicht dafür völlig aus, schon ab 14,99 €/Monat.
Das eigentliche Problem: das Software-Rendering
Ohne GPU schaltet Chromium auf Software-Rendering (SwiftShader) um: WebGL, Canvas und Video werden langsam und manchmal anders als in der Realität. Ihre Tests laufen durch … spiegeln aber nicht wider, was Ihre Nutzer tatsächlich sehen. Umgekehrt ist es Verschwendung, für 300-500 €/Monat eine dedizierte GPU zu mieten, nur um Headless-Browser zu starten.
| Ansatz | WebGL/Canvas-Rendering | Kosten |
|---|---|---|
| Nur CPU (Software) | ⚠️ langsam, teils falsch | 💶 aber trügerisch |
| Dedizierte GPU (~300-500 €/Monat) | ✅ | 💸💸💸 überdimensioniert |
| iGPU Linux GPU (ab 14,99 €/Monat) | ✅ echtes Hardware-Rendering | 💶 |
Warum die GPU Ihre Browser-Tests verändert
Die iGPU/APU ist dem System zugänglich (/dev/dri). Ihre Browser nutzen sie für:
- WebGL / WebGPU: echte Performance, echte visuelle Ergebnisse;
- Canvas 2D und beschleunigtes Compositing;
- Videowiedergabe mit Hardware-Dekodierung.
Das Ergebnis: E2E-Suites, die schneller sind und vor allem realitätsnäher am echten Browser Ihrer Nutzer.
Chromium auf der iGPU (ANGLE / Vulkan)
Aktivieren Sie die GPU-Beschleunigung von Chromium über ANGLE/Vulkan – im Headless-Modus ebenso wie unter Xvfb. Beispiel auf Playwright-Seite:
// playwright.config.ts
use: { launchOptions: { args: [
'--use-gl=angle', '--use-angle=vulkan',
'--enable-features=Vulkan', '--ignore-gpu-blocklist',
] } }
Und das Äquivalent auf Selenium-Seite (Python):
from selenium import webdriver
opts = webdriver.ChromeOptions()
for a in ('--use-gl=angle', '--use-angle=vulkan',
'--enable-features=Vulkan', '--ignore-gpu-blocklist'):
opts.add_argument(a)
driver = webdriver.Chrome(options=opts)
Prüfen Sie die Beschleunigung unter chrome://gpu: die Zeilen WebGL / Vulkan
müssen „Hardware accelerated” anzeigen.
In der CI und im großen Maßstab
- Containerisieren Sie Ihre Playwright- / Selenium- / Puppeteer-Worker;
- Parallelisieren Sie Ihre E2E-Suites über mehrere Knoten in k3s / Kubernetes;
- SSH-Root, IPv6 und LUKS inklusive. k3s-Cluster-Option +5 €/Knoten.
FAQ
Muss ich Xvfb verwenden?
Im modernen Headless-Modus (--headless=new) oft nicht. Xvfb bleibt nützlich für
ein vollständiges Display (Erweiterungen, Sonderfälle) – und die iGPU beschleunigt
beides.
Werden Playwright und Selenium beide unterstützt? Ja, und Puppeteer ebenso: Es sind dieselben Chromium-Flags und dieselbe GPU.
Und zum Testen von WebGL / WebGPU in der CI? Genau das ist der ideale Fall: Die iGPU liefert einen echten GPU-Kontext, der weit repräsentativer ist als das Software-Rendering.
Fazit
Für GPU-beschleunigte Browser-Tests erledigt die iGPU die Arbeit – ohne die Rechnung einer dedizierten GPU. Starten Sie Ihren CI-Server schon ab 14,99 €/Monat.