Szczegóły ebooka

Selenium i testowanie aplikacji. Receptury. Wydanie II

Selenium i testowanie aplikacji. Receptury. Wydanie II

Unmesh Gundecha

Ebook

Projektanci nowoczesnych aplikacji internetowych muszą obecnie sprostać wielu wyzwaniom. Oprogramowanie, które tworzą, musi działać wydajnie i bezbłędnie w różnych przeglądarkach, na różnych platformach, na różnych urządzeniach. Wobec rosnących wymagań testowanie aplikacji staje się bardzo ważnym etapem jej rozwoju. Jako że zaprojektowanie i przeprowadzenie takich testów jest dość złożonym zadaniem, warto zapewnić sobie sprawdzone narzędzie umożliwiające automatyzację testów aplikacji. Takim narzędziem z pewnością jest Selenium Web Driver — framework służący do automatyzacji przeglądarek internetowych.

W tej książce przedstawiono zaawansowane techniki testowania aplikacji internetowych za pomocą Selenium Web Driver i pokrewnych narzędzi. Zaprezentowano skuteczne i efektywne metodyki testowania aplikacji przeznaczonych dla komputerów stacjonarnych, przeglądarek mobilnych i działających w środowisku rozproszonym. Opisano tu również wzorce projektowe, takie jak testy bazujące na danych, obiekty stron i mapy obiektów. Przedstawiono techniki rozszerzania frameworka Selenium i dostosowywania go do szczególnych działań. W książce zaprezentowano ponad 80 receptur, które z pewnością okażą się przydatne podczas automatyzacji testów aplikacji.

Czego możesz oczekiwać od tej książki...

  • Zrozumiesz działanie lokalizatorów. Nauczysz się korzystać z różnych metod lokalizowania, co pomoże Ci budować niezawodne testy.
  • Nauczysz się wzorca PageFactory, który pozwala budować rozbudowane i łatwe do utrzymania frameworki testów.
  • Zapoznasz się ze sposobami integracji Selenium WebDriver API z narzędziami ATDD (BDD) takimi, jak Cucumber, SpecFlow, Capybara i Behave.
  • Nauczysz się konfigurować symulatory i urządzenia iPhone (Android) w celu testowania aplikacji webowych za pomocą Appium.
  • Dowiesz się, jak skonfigurować środowisko Selenium Grid pozwalające na szybsze i współbieżne wykonywanie testów. Dzięki niemu zwiększysz pokrycie testowe oraz skrócisz czas uruchomienia testów dla wielu przeglądarek.
  • Będziesz potrafił budować rozszerzone testy Selenium WebDriver dla zwiększenia pokrycia Twojej aplikacji testami.

Nowoczesne testowanie: Selenium Web Driver!

O autorze (7)

O recenzentach (9)

Przedmowa (11)

Rozdział 1. Od czego zacząć? (17)

  • Wprowadzenie (17)
  • Konfigurowanie środowiska tworzenia testów Selenium WebDriver dla języka Java z Eclipse i Maven (18)
  • Wykorzystanie narzędzia Ant do egzekucji testów Selenium WebDriver (26)
  • Konfigurowanie programu Microsoft Visual Studio do tworzenia testów Selenium WebDriver (29)
  • Konfigurowanie frameworka Selenium WebDriver dla Pythona i Ruby (32)
  • Konfiguracja programu Internet Explorer Driver Server (36)
  • Konfiguracja sterownika ChromeDriver przeglądarki Google Chrome (40)
  • Konfiguracja sterownika Microsoft WebDriver dla przeglądarki Microsoft Edge (43)

Rozdział 2. Wyszukiwanie elementów (47)

  • Wprowadzenie (47)
  • Wykorzystywanie narzędzi przeglądarki do badania elementów i struktury strony (48)
  • Wyszukiwanie elementu za pomocą metody findElement (54)
  • Wyszukiwanie wielu elementów za pomocą metody findElements (59)
  • Wyszukiwanie linków (60)
  • Wyszukiwanie elementów na podstawie nazwy znacznika (61)
  • Wyszukiwanie elementów z wykorzystaniem XPath (62)
  • Wyszukiwanie elementów na podstawie selektorów CSS (70)
  • Lokalizowanie elementów na podstawie tekstu (74)
  • Wyszukiwanie elementów na podstawie zaawansowanych selektorów CSS (76)
  • Wykorzystanie selektorów jQuery (78)

Rozdział 3. Obsługa elementów HTML (81)

  • Wprowadzenie (81)
  • Automatyzowanie pól tekstowych, obszarów tekstowych i przycisków (82)
  • Sprawdzanie tekstu elementu (84)
  • Sprawdzanie atrybutów elementu i wartości CSS (86)
  • Automatyzowanie rozwijanych menu i list (87)
  • Zaznaczanie opcji w elementach Select (90)
  • Zaznaczanie wybranych opcji na rozwijanych menu i listach (92)
  • Automatyzacja przełączników i grup opcji (95)
  • Automatyzowanie pól wyboru (97)
  • Praca z obiektami WebTable (99)

Rozdział 4. Korzystanie z Selenium API (101)

  • Wprowadzenie (101)
  • Sprawdzanie istnienia elementu (102)
  • Sprawdzanie stanu elementu (103)
  • Wykorzystanie API Advanced User Interactions do obsługi zdarzeń myszy i klawiatury (104)
  • Wykonywanie dwukrotnych kliknięć elementów (106)
  • Wykonywanie operacji "przeciągnij i upuść" (108)
  • Obsługa menu kontekstowych (109)
  • Wykonywanie kodu JavaScript (111)
  • Przechwytywanie zrzutów ekranu za pomocą Selenium WebDriver (113)
  • Maksymalizowanie okna przeglądarki (115)
  • Obsługa plików cookie sesji (115)
  • Korzystanie z mechanizmów nawigacji przeglądarki (117)
  • Korzystanie ze zdarzeń frameworka WebDriver (118)

Rozdział 5. Synchronizacja testów (123)

  • Wprowadzenie (123)
  • Synchronizacja testów z niejawnym oczekiwaniem (124)
  • Synchronizacja testów z jawnym oczekiwaniem (125)
  • Synchronizacja testów z niestandardowymi warunkami oczekiwanymi (127)
  • Synchronizacja testów z wykorzystaniem klasy FluentWait (130)

Rozdział 6. Alerty, ramki i okna (133)

  • Wprowadzenie (133)
  • Obsługa prostych okien alertów JavaScript (133)
  • Obsługa okien confirm i prompt (136)
  • Identyfikowanie i obsługa ramek (139)
  • Ramki iframe (144)
  • Identyfikowanie i obsługa okien potomnych (146)
  • Identyfikowanie i obsługa okien na podstawie tytułu (148)
  • Identyfikowanie i obsługa wyskakujących okien na podstawie zawartości (150)

Rozdział 7. Testowanie sterowane danymi (153)

  • Wprowadzenie (153)
  • Tworzenie testów sterowanych danymi z wykorzystaniem JUnit (155)
  • Tworzenie testów sterowanych danymi z wykorzystaniem frameworka TestNG (159)
  • Odczytywanie danych testowych z pliku CSV z wykorzystaniem JUnit (161)
  • Odczytywanie danych testowych z pliku Excela z wykorzystaniem JUnit i Apache POI (164)
  • Tworzenie testów sterowanych danymi z wykorzystaniem NUnit (167)
  • Tworzenie testów sterowanych danymi z wykorzystaniem MSTEST (171)
  • Tworzenie testów sterowanych danymi w Ruby z wykorzystaniem Roo (175)
  • Tworzenie testów sterowanych danymi w Pythonie z wykorzystaniem DDT (179)

Rozdział 8. Korzystanie ze wzorca Page Object (181)

  • Wprowadzenie (181)
  • Korzystanie z klasy PageFactory do udostępniania elementów na stronie (182)
  • Korzystanie z klasy PageFactory do udostępniania operacji na stronie (186)
  • Korzystanie z klasy LoadableComponent (189)
  • Implementacja zagnieżdżonych egzemplarzy klasy Page Object (192)
  • Implementacja modelu Page Object w środowisku .NET (197)
  • Implementacja modelu Page Object w Pythonie (200)
  • Implementacja modelu Page Object w Ruby z wykorzystaniem gemu page-object (203)

Rozdział 9. Rozszerzanie Selenium (205)

  • Wprowadzenie (205)
  • Tworzenie klas rozszerzeń dla tabel webowych (206)
  • Tworzenie rozszerzenia dla widżetu tab biblioteki jQueryUI (210)
  • Implementacja rozszerzenia klasy WebElement w celu ustawiania wartości atrybutów elementów (214)
  • Implementacja rozszerzenia interfejsu WebElement w celu wyróżniania elementów (216)
  • Utworzenie mapy obiektów dla testów Selenium (217)
  • Przechwytywanie zrzutów ekranu elementów w Selenium WebDriver (223)
  • Porównywanie obrazów w Selenium (224)
  • Mierzenie wydajności z wykorzystaniem API Navigation Timing (229)

Rozdział 10. Testowanie aplikacji webowych HTML5 (233)

  • Wprowadzenie (233)
  • Automatyzowanie odtwarzacza wideo HTML5 (234)
  • Automatyzowanie interakcji z elementem HTML5 canvas (237)
  • Web storage - testowanie lokalnego magazynu (239)
  • Web storage - testowanie pamięci sesji (241)
  • Czyszczenie magazynu lokalnego i magazynu sesji (243)

Rozdział 11. BDD - tworzenie oprogramowania sterowane zachowaniami (245)

  • Wprowadzenie (245)
  • Wykorzystanie technik BDD w Javie za pomocą biblioteki Cucumber-JVM i frameworka Selenium WebDriver (246)
  • Wykorzystanie technik BDD w środowisku .NET za pomocą biblioteki SpecFlow.NET i frameworka Selenium WebDriver (255)
  • Wykorzystanie biblioteki Capybara, Cucumber i frameworka Selenium WebDriver w Ruby (264)
  • Wykorzystanie biblioteki Behave i frameworka Selenium WebDriver w Pythonie (267)

Rozdział 12. Integracja z innymi narzędziami (271)

  • Wprowadzenie (271)
  • Konfigurowanie systemu ciągłej integracji Jenkins (272)
  • Wykorzystanie systemów Jenkins i Maven do egzekucji testów Selenium WebDriver w środowisku ciągłej integracji (274)
  • Wykorzystanie systemu Ant do uruchamiania testów Selenium WebDriver (279)
  • Wykorzystanie systemów Jenkins i Ant do uruchamiania testów Selenium WebDriver w środowisku ciągłej integracji (281)
  • Automatyzacja aplikacji z niewebowymi interfejsami użytkownika z wykorzystaniem Selenium WebDriver oraz AutoIt (286)
  • Automatyzacja aplikacji z niewebowymi interfejsami użytkownika z wykorzystaniem Selenium WebDriver oraz Sikuli (293)

Rozdział 13. Testy dla wielu przeglądarek (297)

  • Wprowadzenie (297)
  • Konfigurowanie programu Selenium Grid Server do pracy w trybie równoległego uruchamiania testów (299)
  • Dodawanie węzłów do siatki Selenium Grid w celu testowania różnych przeglądarek (301)
  • Tworzenie i wykonywanie skryptu Selenium równolegle z TestNG (304)
  • Tworzenie i równoległe wykonywanie skryptu Selenium z wykorzystaniem języka Python (310)
  • Wykorzystanie narzędzi w chmurze do testowania różnych przeglądarek i uruchamiania testów w chmurze (313)
  • Uruchamianie testów w trybie headless z wykorzystaniem PhantomJS (316)

Rozdział 14. Testowanie aplikacji w przeglądarkach mobilnych (319)

  • Wprowadzenie (319)
  • Konfigurowanie Appium do testowania aplikacji mobilnych (320)
  • Testowanie mobilnych aplikacji webowych w systemie iOS z wykorzystaniem Appium (322)
  • Testowanie mobilnych aplikacji webowych w systemie Android z wykorzystaniem Appium (325)

Skorowidz (331)

  • Tytuł: Selenium i testowanie aplikacji. Receptury. Wydanie II
  • Autor: Unmesh Gundecha
  • Tytuł oryginału: Selenium Testing Tools Cookbook, Second Edition
  • Tłumaczenie: Radosław Meryk
  • ISBN: 978-83-283-3412-0, 9788328334120
  • Data wydania: 2017-06-23
  • Format: Ebook
  • Identyfikator pozycji: seler2
  • Wydawca: Helion