Selenium WebDriver w Javie. Praktyczne wprowadzenie do tworzenia testów systemowych - ebook
Selenium WebDriver w Javie. Praktyczne wprowadzenie do tworzenia testów systemowych - ebook
Selenium pozwala na automatyzację pracy przeglądarek internetowych. Kluczowym komponentem tego projektu open source jest Selenium WebDriver - biblioteka do programistycznego kontrolowania przeglądarek. Podstawowym zastosowaniem Selenium jest implementacja testów systemowych w celu weryfikacji funkcjonowania aplikacji. Narzędzie to zdobyło ogromną popularność - stanowi ono jedno z wiodących rozwiązań w zakresie testów systemowych. Jest chętnie używane zarówno przez duże organizacje, jak i samodzielnych programistów.
Ten praktyczny przewodnik po Selenium WebDriver w wersji 4 z uwzględnieniem implementacji w Javie jest przeznaczony dla programistów Javy, inżynierów jakości i testerów. Przedstawiono w nim główne aspekty zautomatyzowanej nawigacji po stronie, manipulacji w przeglądarce, interakcji z elementami, naśladowania działań użytkownika i automatycznego zarządzania sterownikami. Opisano koncepcję wzorca projektowego POM, który pozwala na modelowanie stron internetowych w zorientowanych obiektowo klasach. Zaprezentowano różne sposoby przeprowadzania testów i wprowadzania odpowiedniej ich kolejności, omówiono też zasady analizy błędnych wykonań w celu określenia przyczyn niepowodzenia. Pokazano także możliwości wzbogacania testów o inne technologie, służące na przykład do raportowania wyników, generowania danych czy implementacji szczególnych przypadków użycia.
W książce między innymi:
- przygotowanie środowiska do testów end-to-end z Selenium WebDriver
- automatyczne interakcje z aplikacjami internetowymi
- strategie testowania na wielu przeglądarkach
- testowanie działania formularzy, komunikatów w oknach i skryptów JavaScript
- posługiwanie się złożoną infrastrukturą w testach Selenium WebDriver
- wykorzystanie programowania zorientowanego obiektowo w testowanych aplikacjach
Selenium: testowanie, które daje niezawodność i bezpieczeństwo!
Spis treści
Przedmowa
Wstęp
Część I. Wprowadzenie
- 1. Wstęp do Selenium
- Główne komponenty Selenium
- Selenium WebDriver
- Selenium Grid
- Selenium IDE
- Ekosystem Selenium
- Wiązania językowe
- Mechanizmy zarządzania sterownikami
- Narzędzia do lokalizowania elementów
- Biblioteki
- Infrastruktura przeglądarkowa
- Społeczność
- Podstawy testowania oprogramowania
- Poziomy testów
- Typy testów
- Metodyki testowe
- Narzędzia automatyzacji testów
- Podsumowanie
- Główne komponenty Selenium
- 2. Przygotowanie do testów
- Wymagania
- Wirtualna maszyna Javy
- Edytor tekstu lub zintegrowane środowisko programistyczne IDE
- Przeglądarki i sterowniki
- Narzędzia budowania kodu
- Opcjonalne oprogramowanie
- Ustawienia projektu
- Struktura projektu
- Zależności
- Witaj, świecie
- Użycie dodatkowych przeglądarek
- Podsumowanie
- Wymagania
Część II. Interfejs API Selenium WebDriver
- 3. Podstawy WebDriver
- Podstawy zastosowania WebDriver
- Tworzenie obiektów WebDriver
- Metody WebDriver
- Identyfikator sesji
- Pozbywanie się obiektów WebDriver
- Znajdowanie elementów WebElement
- Obiektowy model dokumentu DOM
- Metody WebElement
- Strategie lokalizacji
- Znajdowanie lokalizatorów na stronie internetowej
- Lokalizatory złożone
- Lokalizatory względne
- Której strategii używać?
- Działania z klawiaturą
- Wysyłanie plików
- Suwaki
- Działania myszką
- Nawigacja
- Pola wyboru i przyciski radio
- Gesty użytkownika
- Kliknięcie kontekstowe i podwójne kliknięcie
- Przesunięcie myszki
- Przeciąganie elementów
- Kliknięcie i przytrzymanie
- Mechanizm kopiuj-wklej
- Strategie oczekiwania
- Implicit wait (oczekiwanie bezwzględne)
- Explicit wait (oczekiwanie względne)
- Fluent wait (płynne czekanie)
- Podsumowanie
- Podstawy zastosowania WebDriver
- 4. Funkcjonalności niezależne od przeglądarki
- Wykonywanie skryptów JavaScript
- Skrypty synchroniczne
- Skrypty przypięte
- Skrypty asynchroniczne
- Maksymalny czas oczekiwania
- Maksymalny czas oczekiwania na załadowanie strony
- Maksymalny czas oczekiwania na załadowanie skryptu
- Zrzuty ekranu
- Zrzuty ekranu z elementami WebElement
- Rozmiar i pozycja okna
- Historia przeglądarki
- Shadow DOM
- Ciasteczka
- Listy rozwijane
- Elementy list danych (datalist)
- Cele nawigacji
- Karty i okna
- Ramki i ramki iframe
- Okna dialogowe
- Alerty, potwierdzenia i podpowiedzi
- Okna modalne
- Schowek Web Storage
- Mechanizmy nasłuchiwania zdarzeń
- Wyjątki WebDriver
- Podsumowanie
- Wykonywanie skryptów JavaScript
- 5. Funkcjonalności zależne od przeglądarki
- Opcje przeglądarki
- Przeglądarki bezinterfejsowe
- Strategie ładowania strony
- Emulatory urządzeń
- Rozszerzenia
- Geolokalizacja
- Powiadomienia
- Binaria przeglądarki
- Serwer web proxy
- Zapisywanie logów
- Udostępnianie mediów lokalnych
- Ładowanie niebezpiecznych stron
- Lokalizacja
- Tryb prywatny (incognito)
- Edge w trybie Internet Explorer
- Protokół Chrome DevTools
- Klasy obudowujące CDP w Selenium
- Polecenia CDP
- Kontekst lokalizacji
- Uwierzytelnianie sieciowe
- Drukowanie strony
- WebDriver BiDi
- Podsumowanie
- Opcje przeglądarki
- 6. Zdalny WebDriver
- Architektura Selenium WebDriver
- Tworzenie obiektów RemoteWebDriver
- Konstruktor Remote WebDriver
- Mechanizm budowania RemoteWebDriver
- Mechanizm budowania WebDriverManager
- Selenium-Jupiter
- Selenium Grid
- Tryb samodzielny
- Serwer-węzły
- Tryb rozproszony
- Obserwowalność
- Konfiguracja
- Dostawcy usług w chmurze
- Przeglądarki w kontenerach Dockera
- Obrazy Dockadla Selenium Grid
- Selenoid
- WebDriverManager
- Selenium-Jupiter
- Podsumowanie
Część III. Zagadnienia zaawansowane
- 7. Obiektowy model strony
- Dlaczego?
- Wzorzec projektowy obiektowego modelu strony
- Obiektowe modele stron
- Rozbudowane obiekty stron
- Tworzenie języka domeny (DSL)
- Fabryka Stron (Page Factory)
- Podsumowanie
- 8. Szczegóły bibliotek testowania
- Testy parametryzowane
- Testowanie na wielu przeglądarkach
- Kategoryzowanie i filtrowanie testów
- Kolejność testów
- Analiza błędów
- Ponowienie testów
- Równoległe wykonanie testów
- Mechanizmy nasłuchiwania testów
- Dezaktywowanie testów
- Podsumowanie
- Testy parametryzowane
- 9. Integracje z narzędziami zewnętrznymi
- Pobieranie plików
- Opcje zależne od przeglądarki
- Korzystanie z klienta HTTP
- Przechwytywanie ruchu sieciowego
- Testy niefunkcjonalne
- Wydajność
- Bezpieczeństwo
- Dostępność
- Testy A/B
- Płynne API
- Dane testowe
- Raportowanie
- Behavior Driven Development
- Frameworki webowe
- Podsumowanie
- Pobieranie plików
- 10. Oprócz Selenium
- Aplikacje mobilne
- Testy mobilne
- Appium
- Usługi REST
- REST Assured
- Alternatywy dla Selenium
- Cypress
- WebDriverIO
- TestCafe
- Puppeteer
- Playwright
- Podsumowanie i ostatnie uwagi
- Aplikacje mobilne
A. Co nowego w Selenium 4
- Selenium WebDriver
- Przewodnik po migracji
- Selenium Grid
- Selenium IDE
- Inne nowości
B. Zarządzanie sterownikami
- WebDriverManager - automatyczne zarządzanie sterownikami
- Uniwersalny menedżer
- Zaawansowana konfiguracja
- Inne zastosowania
- Ręczne zarządzanie sterownikami
- Podsumowanie
C. Ustawienia repozytorium z przykładami
- Struktura projektu
- Maven
- Wspólna konfiguracja
- JUnit 4
- JUnit 5
- Selenium-Jupiter
- TestNG
- Inne zależności
- Gradle
- JUnit 4
- JUnit 5
- Selenium-Jupiter
- TestNG
- Inne zależności
- Zapisywanie logów
- GitHub Actions
- Dependabot
- Podsumowanie
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-9983-9 |
Rozmiar pliku: | 12 MB |