E-book details

Selenium WebDriver w Javie. Praktyczne wprowadzenie do tworzenia testów systemowych

Selenium WebDriver w Javie. Praktyczne wprowadzenie do tworzenia testów systemowych

Boni García

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!

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
  • 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

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
  • 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
  • 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
  • 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
  • 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
  • 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

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
  • Title: Selenium WebDriver w Javie. Praktyczne wprowadzenie do tworzenia testów systemowych
  • Author: Boni García
  • Original title: Hands-On Selenium WebDriver with Java: A Deep Dive into the Development of End-to-End Tests
  • Translation: Katarzyna Bogusławska
  • ISBN: 978-83-283-9983-9, 9788328399839
  • Date of issue: 2023-03-07
  • Format: Ebook
  • Item ID: sewebd
  • Publisher: Helion