Selenium Grid
Możesz używać WebdriverIO z istniejącą instancją Selenium Grid. Aby połączyć swoje testy z Selenium Grid, wystarczy zaktualizować opcje w konfiguracjach test runnera.
Oto fragment kodu z przykładowego pliku wdio.conf.ts.
export const config: WebdriverIO.Config = {
// ...
protocol: 'https',
hostname: 'yourseleniumgridhost.yourdomain.com',
port: 443,
path: '/wd/hub',
// ...
}
Musisz podać odpowiednie wartości dla protokołu, nazwy hosta, portu i ścieżki w oparciu o konfigurację Selenium Grid. Jeśli uruchamiasz Selenium Grid na tej samej maszynie co skrypty testowe, oto kilka typowych opcji:
export const config: WebdriverIO.Config = {
// ...
protocol: 'http',
hostname: 'localhost',
port: 4444,
path: '/wd/hub',
// ...
}
Podstawowa autentykacja z zabezpieczoną Selenium Grid
Zdecydowanie zaleca się zabezpieczenie Selenium Grid. Jeśli masz zabezpieczoną Selenium Grid, która wymaga uwierzytelnienia, możesz przekazać nagłówki uwierzytelniania za pomocą opcji. Zapoznaj się z sekcją headers w dokumentacji, aby uzyskać więcej informacji.
Konfiguracje timeoutu z dynamiczną Selenium Grid
Podczas korzystania z dynamicznej Selenium Grid, gdzie pody przeglądarek są uruchamiane na żądanie, tworzenie sesji może napotkać na zimny start. W takich przypadkach zaleca się zwiększenie limitów czasu tworzenia sesji. Domyślna wartość w opcjach to 120 sekund, ale możesz ją zwiększyć, jeśli twoja siatka potrzebuje więcej czasu na utworzenie nowej sesji.
connectionRetryTimeout: 180000,
Zaawansowane konfiguracje
Aby uzyskać zaawansowane konfiguracje, zapoznaj się z plikiem konfiguracyjnym Testrunner.
Operacje na plikach z Selenium Grid
Podczas uruchamiania przypadków testowych ze zdalną Selenium Grid, przeglądarka działa na zdalnej maszynie, i musisz zwrócić szczególną uwagę na przypadki testowe obejmujące przesyłanie i pobieranie plików.
Pobieranie plików
W przypadku przeglądarek opartych na Chromium możesz zapoznać się z dokumentacją Download file. Jeśli twoje skrypty testowe muszą odczytać zawartość pobranego pliku, musisz pobrać go ze zdalnego węzła Selenium do maszyny test runnera. Oto przykładowy fragment kodu z próbki konfiguracji wdio.conf.ts
dla przeglądarki Chrome:
export const config: WebdriverIO.Config = {
// ...
protocol: 'https',
hostname: 'yourseleniumgridhost.yourdomain.com',
port: 443,
path: '/wd/hub',
// ...
capabilities: [{
browserName: 'chrome',
'se:downloadsEnabled': true
}],
//...
}
Przesyłanie plików ze zdalną Selenium Grid
Aby przesłać plik do aplikacji internetowej w zdalnej przeglądarce, musisz najpierw przesłać plik do zdalnej siatki. Możesz zapoznać się z dokumentacją uploadFile, aby uzyskać szczegółowe informacje.
Inne operacje na plikach/gridzie
Istnieje kilka innych operacji, które możesz wykonać z Selenium Grid. Instrukcje dla Selenium Standalone powinny działać dobrze również z Selenium Grid. Zapoznaj się z dokumentacją Selenium Standalone, aby poznać dostępne opcje.
Oficjalna dokumentacja Selenium Grid
Aby uzyskać więcej informacji na temat Selenium Grid, możesz zapoznać się z oficjalną dokumentacją Selenium Grid.
Jeśli chcesz uruchomić Selenium Grid w Dockerze, Docker compose lub Kubernetes, zapoznaj się z repozytorium GitHub Selenium-Docker.