Przejdź do głównej treści

Konfiguracja Proxy

Możesz tunelować dwa różne rodzaje żądań przez proxy:

  • połączenie między Twoim skryptem testowym a sterownikiem przeglądarki (lub punktem końcowym WebDrivera)
  • połączenie między przeglądarką a internetem

Proxy Między Sterownikiem a Testem

Jeśli Twoja firma ma firmowe proxy (np. na http://my.corp.proxy.com:9090) dla wszystkich wychodzących żądań, masz dwie opcje konfiguracji WebdriverIO, aby używało proxy:

Opcja 1: Używanie Zmiennych Środowiskowych (Zalecane)

Począwszy od WebdriverIO v9.12.0, możesz po prostu ustawić standardowe zmienne środowiskowe proxy:

export HTTP_PROXY=http://my.corp.proxy.com:9090
export HTTPS_PROXY=http://my.corp.proxy.com:9090
# Opcjonalnie: omijaj proxy dla określonych hostów
export NO_PROXY=localhost,127.0.0.1,.internal.domain

Następnie uruchom swoje testy jak zwykle. WebdriverIO automatycznie użyje tych zmiennych środowiskowych do konfiguracji proxy.

Opcja 2: Używanie setGlobalDispatcher z undici

Dla bardziej zaawansowanych konfiguracji proxy lub jeśli potrzebujesz programowej kontroli, możesz użyć metody setGlobalDispatcher z undici:

Zainstaluj undici

npm install undici --save-dev

Dodaj undici setGlobalDispatcher do pliku konfiguracyjnego

Dodaj następującą instrukcję require na początku swojego pliku konfiguracyjnego.

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 = {
// ...
}

Dodatkowe informacje o konfigurowaniu proxy można znaleźć tutaj.

Którą Metodę Powinienem Wybrać?

  • Używaj zmiennych środowiskowych jeśli chcesz prostego, standardowego podejścia, które działa w różnych narzędziach i nie wymaga zmian w kodzie.
  • Używaj setGlobalDispatcher jeśli potrzebujesz zaawansowanych funkcji proxy, takich jak niestandardowa autoryzacja, różne konfiguracje proxy dla różnych środowisk lub chcesz programowo kontrolować zachowanie proxy.

Obie metody są w pełni obsługiwane, a WebdriverIO sprawdzi najpierw globalny dispatcher, zanim powróci do zmiennych środowiskowych.

Sauce Connect Proxy

Jeśli używasz Sauce Connect Proxy, uruchom go za pomocą:

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

Proxy Między Przeglądarką a Internetem

Aby tunelować połączenie między przeglądarką a internetem, możesz skonfigurować proxy, co może być przydatne (na przykład) do przechwytywania informacji o sieci i innych danych za pomocą narzędzi takich jak BrowserMob Proxy.

Parametry proxy można zastosować za pomocą standardowych funkcji w następujący sposób:

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"
},
// ...
}],
// ...
}

Aby uzyskać więcej informacji, zobacz specyfikację WebDriver.

Welcome! How can I help?

WebdriverIO AI Copilot