Blog

Selenium y Playwright acelerados por GPU: no necesitas una GPU de 500 €/mes

Ejecuta tus pruebas de Selenium y Playwright con aceleración GPU (WebGL, Canvas, vídeo) en un servidor con GPU integrada iGPU/APU. CI de tests de navegador rápida y fiel, desde 14,99 €/mes, k3s/k8s.

Selenium y Playwright acelerados por GPU: no necesitas una GPU de 500 €/mes

Ejecutar Selenium y Playwright en CI no exige una tarjeta gráfica dedicada de varios cientos de euros. Pero ejecutar tus pruebas con aceleración GPU —para que WebGL, Canvas y el vídeo se comporten igual que en los equipos de tus usuarios— eso sí lo cambia todo. Y una GPU integrada (iGPU / APU) basta, desde 14,99 €/mes.

El verdadero problema: el renderizado por software

Sin GPU, Chromium cae en renderizado por software (SwiftShader): WebGL, Canvas y el vídeo se vuelven lentos y, a veces, distintos de la realidad. Tus pruebas pasan… pero no reflejan lo que ven tus usuarios. En el otro extremo, alquilar una GPU dedicada a 300-500 €/mes para lanzar navegadores headless es un desperdicio.

EnfoqueRenderizado WebGL/CanvasCoste
Solo CPU (software)⚠️ lento, a veces incorrecto💶 pero engañoso
GPU dedicada (~300-500 €/mes)✅💸💸💸 sobredimensionado
iGPU Linux GPU (desde 14,99 €/mes)✅ renderizado por hardware real💶

Por qué la GPU cambia tus pruebas de navegador

La iGPU/APU queda expuesta al sistema (/dev/dri). Tus navegadores la usan para:

  • WebGL / WebGPU: rendimiento real, resultados visuales reales;
  • Canvas 2D y composición acelerados;
  • reproducción de vídeo decodificada por hardware.

Resultado: suites E2E más rápidas y, sobre todo, más fieles al navegador real del usuario.

Chromium sobre iGPU (ANGLE / Vulkan)

Activa la aceleración GPU de Chromium mediante ANGLE/Vulkan —tanto en headless como bajo Xvfb—. Ejemplo en Playwright:

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

Y el equivalente en 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)

Comprueba la aceleración en chrome://gpu: las líneas de WebGL / Vulkan deben aparecer como «Hardware accelerated».

En CI y a escala

  • Conteneriza tus workers de Playwright / Selenium / Puppeteer;
  • Paraleliza tus suites E2E en varios nodos con k3s / Kubernetes;
  • SSH root, IPv6 y LUKS incluidos. Opción clúster k3s +5 €/nodo.

Preguntas frecuentes

¿Tengo que usar Xvfb? Con headless moderno (--headless=new), a menudo no. Xvfb sigue siendo útil para un display completo (extensiones, casos particulares) —y la iGPU acelera ambos—.

¿Son compatibles tanto Playwright como Selenium? Sí, y también Puppeteer: son los mismos flags de Chromium y la misma GPU.

¿Y para probar WebGL / WebGPU en CI? Es precisamente el caso ideal: la iGPU proporciona un contexto GPU real, mucho más representativo que el renderizado por software.

Conclusión

Para pruebas de navegador aceleradas por GPU, la iGPU hace el trabajo —sin la factura de una GPU dedicada—. Lanza tu servidor de CI desde 14,99 €/mes.