Saltar al contenido principal

Configuración de Proxy

Puedes dirigir dos tipos diferentes de peticiones a través de un proxy:

  • conexión entre tu script de prueba y el controlador del navegador (o punto final de WebDriver)
  • conexión entre el navegador e internet

Proxy Entre el Controlador y la Prueba

Si tu empresa tiene un proxy corporativo (por ejemplo, en http://my.corp.proxy.com:9090) para todas las solicitudes salientes, tienes dos opciones para configurar WebdriverIO para usar el proxy:

Opción 1: Usando Variables de Entorno (Recomendado)

A partir de WebdriverIO v9.12.0, puedes simplemente establecer las variables de entorno estándar para proxy:

export HTTP_PROXY=http://my.corp.proxy.com:9090
export HTTPS_PROXY=http://my.corp.proxy.com:9090
# Opcional: omitir proxy para ciertos hosts
export NO_PROXY=localhost,127.0.0.1,.internal.domain

Luego ejecuta tus pruebas como de costumbre. WebdriverIO usará automáticamente estas variables de entorno para la configuración del proxy.

Opción 2: Usando setGlobalDispatcher de undici

Para configuraciones de proxy más avanzadas o si necesitas control programático, puedes usar el método setGlobalDispatcher de undici:

Instalar undici

npm install undici --save-dev

Añadir undici setGlobalDispatcher a tu archivo de configuración

Añade la siguiente declaración require en la parte superior de tu archivo de configuración.

wdio.conf.js
import { setGlobalDispatcher, ProxyAgent } from 'undici';

const dispatcher = new ProxyAgent({ uri: new URL(process.env.https_proxy || 'http://my.corp.proxy.com:9090').toString() });
setGlobalDispatcher(dispatcher);

export const config = {
// ...
}

Información adicional sobre la configuración del proxy se puede encontrar aquí.

¿Qué Método Debería Usar?

  • Usa variables de entorno si quieres un enfoque simple y estándar que funcione con diferentes herramientas y no requiera cambios en el código.
  • Usa setGlobalDispatcher si necesitas características avanzadas de proxy como autenticación personalizada, diferentes configuraciones de proxy por entorno, o quieres controlar programáticamente el comportamiento del proxy.

Ambos métodos son totalmente compatibles y WebdriverIO comprobará primero si hay un dispatcher global antes de recurrir a las variables de entorno.

Sauce Connect Proxy

Si utilizas Sauce Connect Proxy, inícialo mediante:

sc -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY --no-autodetect -p http://my.corp.proxy.com:9090

Proxy Entre el Navegador e Internet

Para dirigir la conexión entre el navegador e internet, puedes configurar un proxy que puede ser útil para (por ejemplo) capturar información de red y otros datos con herramientas como BrowserMob Proxy.

Los parámetros de proxy se pueden aplicar a través de las capacidades estándar de la siguiente manera:

wdio.conf.js
export const config = {
// ...
capabilities: [{
browserName: 'chrome',
// ...
proxy: {
proxyType: "manual",
httpProxy: "corporate.proxy:8080",
socksUsername: "codeceptjs",
socksPassword: "secret",
noProxy: "127.0.0.1,localhost"
},
// ...
}],
// ...
}

Para más información, consulta la especificación de WebDriver.

Welcome! How can I help?

WebdriverIO AI Copilot