![]()
Testy automatyczne z WebdriverIO. WebdriverIO to narzędzie do automatyzacji testów aplikacji webowych, oparte na silniku WebDriver. Pozwala ono na testowanie funkcjonalności aplikacji z poziomu przeglądarki i umożliwia integrację z różnymi frameworkami i narzędziami do automatyzacji testów.
Wprowadzenie
WebDriverIO to narzędzie do automatyzacji testów aplikacji webowych, które powstało w 2014 roku. Jest to narzędzie oparte na protokole WebDriver, który jest standardem dla automatyzacji testów przeglądarek. Dzięki temu WebDriverIO umożliwia testowanie aplikacji webowych na różnych przeglądarkach, takich jak Chrome, Firefox, Safari i inne.
WebDriverIO jest wyjątkowo elastyczne i pozwala programistom na programowanie w wielu językach, takich jak JavaScript, TypeScript, C#, Java, Ruby, Python, PHP, Perl, Kotlin i Swift. W zależności od języka programowania, istnieją różne opcje konfiguracji i ustawień. Główny nacisk położony jest na język javascript.
Narzędzie WebDriverIO może być używane do testowania różnych elementów aplikacji webowych. Można również testować interakcje między różnymi elementami na stronie, takie jak przewijanie, klikanie i inne. Narzędzie umożliwia również testowanie funkcjonalności aplikacji na różnych urządzeniach, takich jak komputery, tablety i telefony komórkowe.
WebDriverIO jest także wyposażone w narzędzia do debugowania i raportowania, które umożliwiają łatwą identyfikację błędów i problemów z testami. Narzędzie jest regularnie aktualizowane i rozwijane przez społeczność programistów, co zapewnia jego stabilność i funkcjonalność.
Aplikacje webowe
WebdriverIO doskonale sprawdza się w testowaniu aplikacji webowych – zarówno tych prostych, jak i bardzo rozbudowanych. Pozwala na symulowanie prawdziwych interakcji użytkownika, takich jak klikanie przycisków, wypełnianie formularzy, przewijanie stron czy przeciąganie elementów. Testy wykonywane są bezpośrednio w przeglądarce, co oznacza, że odzwierciedlają realne scenariusze użycia.
Dzięki wsparciu dla wielu przeglądarek (Chrome, Firefox, Safari i innych), WebdriverIO umożliwia również testy cross-browser, czyli sprawdzenie, czy aplikacja działa poprawnie niezależnie od środowiska użytkownika. To kluczowe w dzisiejszym, zróżnicowanym świecie urządzeń i systemów operacyjnych.
Aplikacje mobilne
WebdriverIO, we współpracy z Appium, pozwala na automatyzację testów aplikacji mobilnych – zarówno natywnych (np. Android, iOS), jak i hybrydowych (np. opartych na frameworkach takich jak React Native czy Flutter). Dzięki temu możliwe jest tworzenie jednego zestawu testów, który uruchomisz zarówno na emulatorze, jak i na fizycznym urządzeniu.
To idealne rozwiązanie dla zespołów, które chcą zapewnić wysoką jakość aplikacji mobilnych i szybko wykrywać regresje, błędy UI oraz problemy z wydajnością. Możesz również łączyć testy mobilne z webowymi w jednym projekcie, co ułatwia utrzymanie spójności i skalowalności.
Instalacja, test i uruchomienie
Aby rozpocząć korzystanie z WebdriverIO, potrzebujesz środowiska Node.js. Warto również mieć zainstalowanego menedżera pakietów npm lub yarn. Całość konfiguracji jest zautomatyzowana dzięki wbudowanemu CLI.
Otwórz terminal w katalogu projektu i wykonaj:
npm init -y
npm install --save-dev @wdio/cli
npx wdio config
Podczas konfigurowania zostaniesz zapytany o:
-
Framework testowy (np. Mocha, Jasmine, Cucumber),
-
Typ przeglądarki (np. Chrome, Firefox),
-
Miejsce przechowywania testów,
-
Narzędzia do raportowania i debugowania (np. Allure, Spec reporter).
Przykładowy test w WebdriverIO
Przygotowałem Wam prosty test napisany w Mocha + WebdriverIO:
describe('Strona główna', () => {
it('powinna mieć poprawny tytuł', async () => {
await browser.url('https://example.com');
const title = await browser.getTitle();
expect(title).toBe('Example Domain');
});
});
Uruchomić nasz skrypt można poprzez komendę npx wdio run wdio.conf.js
Raportowanie z Mocha i Allure
Jeśli podczas konfiguracji wybrałeś Allure jako raporter, możesz generować szczegółowe raporty HTML:
-
Zainstaluj Allure CLI (np. przez
brew,scooplub ręcznie). -
Po zakończeniu testów uruchom:
Allure pokazuje interaktywne raporty, wykresy, logi i screenshoty, co znacznie ułatwia debugowanie.
Dlaczego warto automatyzować testy z WebdriverIO?
Dlaczego WebdriverIO?
- Skraca czas testowania regresji o 70–90%
- Pozwala wykryć krytyczne błędy jeszcze przed wdrożeniem
- Świetnie współpracuje z CI/CD – testy mogą być uruchamiane automatycznie po każdym commicie
- Można go łatwo zintegrować z testami wizualnymi, API i mobilnymi – wszystko w jednym frameworku.
WebdriverIO to wszechstronne i dojrzałe narzędzie, które oferuje szerokie możliwości automatyzacji testów. Oto najważniejsze powody, dla których warto je rozważyć (mimo, że na co dzień uwielbiam Cypressa):
1. Wsparcie dla prawdziwych przeglądarek
WebdriverIO działa na protokole WebDriver, który pozwala testować aplikację w rzeczywistych przeglądarkach – dokładnie tak, jak robią to użytkownicy. To przewaga nad Cypress, który działa w zagnieżdżonym środowisku przeglądarki i nie wspiera np. Safari czy testów w wielu zakładkach.
vs Cypress: działa szybko, ale ma ograniczenia w kontekście wielozakładkowości, iframe’ów i wsparcia dla przeglądarek innych niż Chromium.
2. Integracja z Appium – testy mobilne i webowe w jednym frameworku
WebdriverIO integruje się z Appium, co pozwala tworzyć testy zarówno dla aplikacji webowych, jak i natywnych mobilnych – Android i iOS – w tym samym projekcie.
vs Playwright: również wspiera wiele przeglądarek i ma tryb mobilny, ale nie wspiera natywnych aplikacji mobilnych jak WebdriverIO + Appium.
3. Wieloplatformowość i testy równoległe
WebdriverIO może uruchamiać testy na wielu przeglądarkach i systemach jednocześnie (np. przez Selenium Grid, Sauce Labs, BrowserStack), co ułatwia testy cross-browser i skraca czas wykonania testów.
☁️ vs Selenium: oferuje podobną funkcjonalność, ale WebdriverIO jest nowocześniejszy i znacznie prostszy w konfiguracji oraz integracji z CI/CD.
4. Wbudowane wsparcie dla TypeScript, Mocha, Cucumber
Nie musisz ręcznie konfigurować środowiska – CLI prowadzi cię krok po kroku przez integrację z wybranym frameworkiem, a konfiguracja jest modularna i czytelna.
5. Rozbudowany ekosystem pluginów
Zarządzanie sesjami, retry testów, raportowanie, screenshoty po błędzie, nagrywanie wideo, debugowanie – wszystko dostępne przez gotowe pluginy, np. @wdio/allure-reporter.
6. Świetna dokumentacja i społeczność
WebdriverIO ma przejrzystą dokumentację i dużą, aktywną społeczność. Częste aktualizacje i szybkie reagowanie na zmiany w przeglądarkach czy WebDriverze czynią go bezpiecznym wyborem.
Podsumowanie
Podsumowując, WebDriverIO to elastyczne i wszechstronne narzędzie do automatyzacji testów aplikacji webowych, które pozwala programistom na testowanie różnych elementów i funkcjonalności na różnych urządzeniach. Jest to narzędzie o wysokiej jakości, które jest regularnie aktualizowane i rozwijane przez społeczność programistów. Testy automatyczne z WebdriverIO to kolejny wpis który ma Was zainteresować do poznania kolejnych narzędzi. Zapraszamy na inne wpisy związane z automatyzacją testów.
