Kurs Selenium

Automatyzacja testów z wykorzystaniem Selenium (beta)

selenium logo

Uwaga: Kurs jest aktualnie w wersji beta, co oznacza, że posiada niepełny zakres.

Aktualny stan: 

Liczba ukończonych unikalnych tematów / stron: 88

Szacowana liczba unikalnych tematów / stron: 94 (liczba ta może ulec zmianie)

Liczba dostępnych Quizów: 13

Liczba dostępnych zadań: 26

Wstęp do kursu

Ten kurs to idealny wybór dla wszystkich osób, które dopiero rozpoczynają swoją przygodę z automatyzacją testów stron webowych przy użyciu Selenium w języku Java.

Poprowadzimy Cię od absolutnych podstaw, takich jak poprawna instalacja i konfiguracja Javy, Mavena i Selenium, poprzez napisanie i uruchomienie pierwszego testu, aż po bardziej skomplikowane elementy, takie jak budowanie własnego frameworka służącego do testowania realnej strony internetowej. Wszystko to będzie poparte quizami sprawdzającymi twoją wiedzę oraz zadaniami praktycznymi z rozwiązaniami.

selenium strona testowa

 

Kurs został opracowany w najpopularniejszych narzędziach i bibliotekach na rynku

Omawiane w kursie technologie to m.in.

  • Selenium 3.12.0 wersja z Maja 2018
  • TestNG 6.14.3 wersja z Kwietnia 2018
  • Maven
  • Java 9
  • AssertJ (w przygotowaniu)
  • Przeglądarki Chrome/Firefox/Internet Explorer

Czego się nauczysz:

  • podstaw i średniozaawansowanych zagadnień związanych z narzędziami takimi jak Selenium, TestNG, Maven
  • zasad tworzenia czytelnego kodu źródłowego testów automatycznych,
  • rozwiązywania podstawowych problemów z automatyzacji testów,
  • korzystania z popularnych narzędzi programistycznych dostępnych na rynku,
  • tworzenia frameworka do testów automatycznych w praktyce,
  • samodzielnej pracy z kodem.

Po ukończeniu kursu będziesz w stanie samodzielnie tworzyć testy automatyczne przy użycia frameworka Selenium oraz nabędziesz wiedzę niezbędną do dalszego samodzielnego rozwoju.

Dobre praktyki

W ramach kursu poznasz podstawowe dobre praktyki oraz wzorce stosowane w testach Selenium, takie jak:

  • DRY,
  • KISS,
  • YAGNI,
  • Page Object Pattern,
  • Fluent Interface,
  • Wzorzec Fabryka,
  • Wzorzec Singleton,
  • Efektywne oczekiwanie na WebElementy,
  • Konwencje nazewnictwa,
  • i inne.

Nauka przez praktykę

To co odróżnia nasz kurs od książek, czy innych kursów na rynku to mocne nastawienie na praktykę i pracę własną. Pokażemy Ci w jaki sposób zbudować swój pierwszy framework do testów oraz pisać w nim testy automatyczne. W kursie znajdziesz zadania o różnym stopniu trudności wraz z przykładowymi rozwiązaniami.

2018-07-20 10_26_25-Lekcja_ Zadanie 3.1 - Treść.png

2018-07-20 10_29_01-Lekcja_ Zadanie 9.1 - Treść.png

Dodatkowo po każdym temacie teoretycznym możesz sprawdzić swoje siły rozwiązując quizy.

2018-06-08 15_35_19-Pytanie 2.png

Wsparcie merytoryczne

W trakcie kursu masz dostęp do Forum wsparcia merytorycznego na którym możesz zadać pytanie związane z poruszonymi tematami oraz problemami, które napotkałeś. W ramach możliwości mentorzy będą odpowiadać na Twoje pytanie.

2018-07-20 10_33_06-Forum wsparcia merytorycznego.png

Kupując ten kurs dostajesz

  • Dostęp do materiałów na okres jednego roku.
  • Dostęp do wszystkich aktualizacji w czasie subskrypcji.
  • 15 tematów głównych.
  • Quizy (testy) do rozwiązania
  • Ćwiczenia z rozwiązaniami do każdego tematu
  • Dostęp do forum merytorycznego, na którym możesz zadawać pytania

Lista tematów

Instalacja

  • Wstęp do kursu
  • Instalacja JDK
  • Instalacja Maven
  • Instalacja IntelliJ Community Edition

Wstęp do Mavena

  • Wstęp do Mavena
  • Utworzenie Projekt Mavenowego
  • Dodanie bibliotek TestNG oraz Selenium
  • Wstęp do Mavena - Quiz!

Pierwszy test i ostateczna konfiguracja

  • Pierwszy test automatyczny i jego konfiguracja
  • Omówienie pierwszego testu
  • Pierwszy test i ostateczna konfiguracja - Quiz!
  • Zadanie 3.1 - Treść
  • Zadanie 3.1 - Rozwiązanie
  • Zadanie 3.2 - Treść
  • Zadanie 3.2 - Rozwiązanie

Selenium - jak działa, zarys historyczny

  • Selenium – historia
  • Selenium – jak działa?
  • Selenium – jak działa, zarys historyczny - Quiz!

Lokatory podstawy

  • Lokatory - wstęp
  • Lokatory - omówienie
  • Lokatory - dobre praktyki oraz podsumowanie
  • Lokatory - porównanie XPath a CSS
  • Lokatory podstawy - Quiz!
  • Zadanie 5.1 - Treść
  • Zadanie 5.1 - Rozwiązanie
  • Zadanie 5.2 - Treść
  • Zadanie 5.2 - Rozwiązanie

Podstawy asercji

  • Czym jest asercja?
  • Czym jest asercja - Quiz!
  • Zadanie 6.1 - Treść
  • Zadanie 6.1 - Rozwiązanie

Podstawowe metody i klasy w Selenium

  • WebElement – co to jest?
  • Użycie podstawowych metod Selenium - wstęp
  • Metoda sendKeys() i getAttribute()
  • Metoda sendKeys() – specyficzny przypadek przy załadowaniu pliku do formularza
  • Metoda clear()
  • Metoda click(), isSelected() – dla różnych kontrolek
  • Klasa Select i metoda getText()
  • Klasa Select i metody do wybierania opcji selectByIndex(), selectByValue(), selectByText()
  • Metoda isVisible() oraz isEnabled() – sprawdzanie stanu WebElementów
  • Klasa Actions i inne akcje za pomocą myszki i klawiatury
  • Podstawowe metody i klasy w Selenium - Quiz!
  • Zadanie 7.1 - Treść
  • Zadanie 7.1 - Rozwiązanie
  • Zadanie 7.2 - Treść
  • Zadanie 7.2 - Rozwiązanie
  • Zadanie 7.3 - Treść
  • Zadanie 7.3 - Rozwiązanie
  • Zadanie 7.4 - Treść
  • Zadanie 7.4 - Rozwiązanie

Oczekiwanie na WebElementy

  • Wstęp do oczekiwania na webelementy (Waity w Selenium)
  • Implicit Wait
  • Explicit Wait
  • Klasa Expected Conditions
  • Dobra strategia „oczekiwania” na webelementy
  • Oczekiwanie na WebElementy - Quiz!
  • Zadanie 8.1 - Treść
  • Zadanie 8.1 - Rozwiązanie 
  • Zadanie 8.2 - Treść
  • Zadanie 8.2 - Rozwiązanie 
  • Zadanie 8.3 - Treść
  • Zadanie 8.3 - Rozwiązanie 
  • Zadanie 8.4 - Treść
  • Zadanie 8.4 - Rozwiązanie 

Budowanie frameworka do testów oraz nauka podstawowych dobrych praktyk

  • Wstęp oraz pierwszy test
  • Podstawy „dobrej” konwencji nazewnictwa
  • Page Object Pattern - wstęp
  • Page Object Pattern – na czym polega?
  • Page Object Pattern i klasa Page Factory
  • Page Object Pattern - podsumowanie
  • Odpowiednia strukturyzacja projektu
  • Zadanie 9.1 - Treść
  • Zadanie 9.1 - Rozwiązanie
  • Zadanie 9.2 - Treść
  • Zadanie 9.2 - Rozwiązanie
  • Zarządzanie WebDriverem oraz wzorzec Singleton
  • Zastosowanie Explicit Waitów w testach
  • Logowanie przebiegu testu
  • Uruchamiane testów na różnych przeglądarkach – lokalnie (FF, IE)
  • Fluent Interface
  • Relatywne URL
  • Uruchamianie testów z poziomu command line oraz prosty raport z testów
  • Podstawowa konfiguracja testów z pliku properties
  • Konfiguracja i uruchamianie testów z plików XML (TestNG.xml)
  • Dodanie RemoteWebDriver do frameworka
  • Dodanie maven-compiler-plugin, czyli dbałość o konfigurację
  • Dodanie możliwości uruchamiania testów wielowątkowo
  • Wprowadzenie parametryzacji przeglądarki dla wątku per klasa testowa
  • Dodanie biblioteki Allure - pierwszy zaawansowany raport
  • Zastosowanie podstawowej funkcjonalności biblioteki Allure we frameworku
  • Poprawa i rozwinięcie logowania - log techniczny (WebDriverEventListener)
  • Wprowadzenie biblioteki AssertJ oraz asercje poza testami (Custom assertions)
  • Dodanie wykonywania zrzutów ekranu przy porażce testu oraz adnotacja @Attachment
  • Dodanie słuchacza RetryAnalyzer (w opracowaniu)

Selenium GRID

  • Selenium GRID – wstęp
  • Podstawowa Konfiguracja Huba dla systemu Windows
  • Podstawowa Konfiguracja Node-a dla systemu Windows
  • Uruchomienie podstawowego testu na Selenium GRID
  • Konfiguracja Huba i Noda za pomocą plików JSON
  • Klasa DesiredCapabilities oraz klasy typu MutableOptions
  • Selenium Grid – dobry praktyki
  • Selenium Extras
  • Selenium Docker (w opracowaniu)
  • Zalenium (w opracowaniu)
  • Selenium GRID - Quiz!
  • Zadanie 10.1 - Treść (w przygotowaniu)
  • Zadanie 10.1 - Rozwiązanie (w przygotowaniu)
  • Zadanie 10.2 - Treść (w przygotowaniu)
  • Zadanie 10.2 - Rozwiązanie (w przygotowaniu)

Inne przydatne funkcjonalności Selenium

  • Zrzuty ekranu
  • Egzekutor JavaSciprtu – JavaScriptExecutor
  • Trawersowanie 
  • Ciasteczka
  • Logi przeglądarki
  • EventFiringWebDriver i zaawansowane logowanie
  • Lista WebElementów
  • Obsługa JavaScriptowych okien dialogowych
  • Inne przydatne funkcjonalności Selenium - Quiz!
  • Zadanie 11.1 - Treść
  • Zadanie 11.1 - Rozwiązanie
  • Zadanie 11.2 - Treść
  • Zadanie 11.2 - Rozwiązanie
  • Zadanie 11.3 - Treść
  • Zadanie 11.3 - Rozwiązanie
  • Zadanie 11.4 - Treść
  • Zadanie 11.4 - Rozwiązanie
  • Zadanie 11.5 - Treść
  • Zadanie 11.5 - Rozwiązanie

Typowe problemy z Selenium

  • Typowe wyjątki w Selenium
  • iFrame
  • Automatyzacja kontrolki typu DatePicker
  • Typowe problemy z Selenium - Quiz!
  • Zadanie 12.1- Treść
  • Zadanie 12.1 - Rozwiązanie
  • Zadanie 12.2 - Treść
  • Zadanie 12.2 - Rozwiązanie

Dobre praktyki związane z kodem i testami

  • Statyczny import
  • Formatowanie kodu
  • DRY
  • KISS
  • YAGNI
  • FIRST
  • Dane poza testami (w opracowaniu)
  • DDT (Data Driver Testing)
  • Dobre praktyki związane z kodem i testami - Quiz!
  • Zadanie 14.1 - Treść
  • Zadanie 14.1 - Rozwiązanie
  • Zadanie 14.2 - Treść (w przygotowaniu)
  • Zadanie 14.2 - Rozwiązanie (w przygotowaniu)
  • Zadanie 14.3 - Treść (w przygotowaniu)
  • Zadanie 14.3 - Rozwiązanie (w przygotowaniu)

 TestNG

  • Zestaw testów (TestNG XML Suite)
  • Adnotacja @Parameters
  • Adnotacja @DataProviders
  • Adnotacja @Factory
  • Listeners w TestNG
  • TestNG - Quiz!
  • Zadanie 14.1 - Treść
  • Zadanie 14.1 - Rozwiązanie
  • Zadanie 14.2 - Treść
  • Zadanie 14.2 - Rozwiązanie
  • Zadanie 14.3 - Treść
  • Zadanie 14.3 - Rozwiązanie
  • Zadanie 14.4 - Treść
  • Zadanie 14.4 - Rozwiązanie

Zaawansowane asercje

  • Asercje – w klasach testowych czy poza nimi? (w opracowaniu)
  • Zaawansowane asercje z biblioteką AssertJ (w opracowaniu)
  • Zadanie 15.1 - Treść (w przygotowaniu)
  • Zadanie 15.1 - Rozwiązanie (w przygotowaniu)
  • Zadanie 15.2 - Treść (w przygotowaniu)
  • Zadanie 15.2 - Rozwiązanie (w przygotowaniu)

Pytania i wątpliwości?

Napisz do nas na adres selenium@javastart.pl

FAQ

W jakiej formie są materiały?
Materiały są w formie pisanej (tekstu). Składają się na nie tekst, zrzuty ekranów, kod, quizy (testy) oraz zadania z rozwiązaniami.
Jak wersja Selenium została użyta? 
Kurs był pisany dla wersji: 3.12.0, wersja z Maja 2018
Kurs jest aktualizowany systematycznie do najnowszej wersji Selenium - kwartalnie
Czy wystarczająca będzie podstawowa wiedza z zakresu programowania w Javie?
Wymagana jest podstawowa znajomość Javy oraz programowania obiektowego. Jeśli boisz się, że twoja wiedza jest nie wystarczająca zapraszamy do zapoznania się z kursem Java  Podstawy. Zakres kursu Java Podstawy jest wystarczający do pracy z kursem Selenium. 
Czy kurs zawiera ćwiczenia?
Jesteśmy w trakcie dodawania quizów (testów) oraz ćwiczeń z rozwiązaniami.
Aktualny stan quizów oraz ćwiczeń jest dostępny u góry tej strony w sekcji "Aktualny stan"
Czy możliwe też jest wsparcie nauczyciela?
Do twojej dyspozycji jest  dostępne Forum Wsparcia Merytorycznego. Na forum twórca materiałów będzie odpowiadał na trapiące Cię pytania związane z kursem oraz problemami z Selenium, które napotkałeś.
Kiedy można się spodziewać pełnej wersji kursu z Selenium?
Lista tematów jest aktualizowana na bieżąco powyżej.  Ponieważ kurs cały czas się rozwija ciężko jest określić jego finalną datę.
119zł

Przedłużenie dostępu 29.75zł*
*Przedłużenie o rok kosztuje 25% ceny kursu. Promocyjna cena przedłużenia dostępna jest tylko dopóki dostęp do kursu całowicie nie wygaśnie.