Blog

GPU-versnelde Selenium & Playwright: geen GPU van € 500/maand nodig

Draai je Selenium- en Playwright-tests met GPU-versnelling (WebGL, Canvas, video) op een server met geïntegreerde iGPU/APU. Snelle, waarheidsgetrouwe browser-CI vanaf € 14,99/maand, k3s/k8s.

GPU-versnelde Selenium & Playwright: geen GPU van € 500/maand nodig

Selenium en Playwright in CI draaien vraagt geen dedicated grafische kaart van honderden euro’s. Maar je tests draaien met GPU-versnelling — zodat WebGL, Canvas en video zich precies zo gedragen als bij je gebruikers — ja, dat verandert alles. En een geïntegreerde GPU (iGPU / APU) volstaat, vanaf € 14,99/maand.

Het echte probleem: software-rendering

Zonder GPU valt Chromium terug op software-rendering (SwiftShader): WebGL, Canvas en video worden traag en soms anders dan de werkelijkheid. Je tests slagen… maar weerspiegelen niet wat je gebruikers zien. En omgekeerd is een dedicated GPU huren voor 300-500 €/maand om headless browsers te draaien pure verspilling.

AanpakWebGL/Canvas-renderingKosten
Alleen CPU (software)⚠️ traag, soms fout💶 maar misleidend
Dedicated GPU (~300-500 €/maand)✅💸💸💸 overgedimensioneerd
iGPU Linux GPU (vanaf 14,99 €/maand)✅ echte hardwarematige rendering💶

Waarom de GPU je browser-tests verandert

De iGPU/APU is beschikbaar voor het systeem (/dev/dri). Je browsers gebruiken die voor:

  • WebGL / WebGPU: echte prestaties, echte visuele resultaten;
  • versnelde Canvas 2D en compositing;
  • hardwarematig gedecodeerde videoweergave.

Resultaat: E2E-suites die sneller zijn en vooral trouwer aan de echte browser van de gebruiker.

Chromium op iGPU (ANGLE / Vulkan)

Schakel de GPU-versnelling van Chromium in via ANGLE/Vulkan — zowel headless als onder Xvfb. Voorbeeld aan de kant van Playwright:

// playwright.config.ts
use: { launchOptions: { args: [
  '--use-gl=angle', '--use-angle=vulkan',
  '--enable-features=Vulkan', '--ignore-gpu-blocklist',
] } }

En het equivalent aan de kant van Selenium (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)

Controleer de versnelling op chrome://gpu: de regels WebGL / Vulkan moeten “Hardware accelerated” aangeven.

In CI en op schaal

  • Containeriseer je Playwright- / Selenium- / Puppeteer-workers;
  • Parallelliseer je E2E-suites over meerdere nodes in k3s / Kubernetes;
  • SSH root, IPv6 en LUKS inbegrepen. Optie k3s-cluster +5 €/node.

FAQ

Moet ik Xvfb gebruiken? Bij moderne headless (--headless=new) vaak niet. Xvfb blijft nuttig voor een volledige display (extensies, bijzondere gevallen) — en de iGPU versnelt beide.

Worden Playwright en Selenium allebei ondersteund? Ja, net als Puppeteer: het zijn dezelfde Chromium-flags en dezelfde GPU.

En om WebGL / WebGPU in CI te testen? Dat is nu juist het ideale geval: de iGPU levert een echte GPU-context, veel representatiever dan software-rendering.

Conclusie

Voor GPU-versnelde browser-tests doet de iGPU het werk — zonder de factuur van een dedicated GPU. Start je CI-server vanaf € 14,99/maand.