Zapisy otwarte! Dołącz do kursu Selenium w Javie lub Selenium w C#. Tylko do 23.09.2021 do godz. 21:00. Zapisz się tutaj.

Selenium 62. Zrzuty ekranu: przykład użycia screenshotów

W tej lekcji pokażę Ci przykład użycia screenshotów w Selenium. Pokażę Ci kiedy i jak warto wykonywać zrzuty ekranu oraz jak to obsłużyć, żeby łatwo znaleźć właściwy screenshot.

JUnit mimo sporej ilości naprawdę fajnych rozwiązań nie dostarczył jednej, która z mojego punktu widzenia wydaje się naprawdę przydatna. A mianowicie nie możemy z poziomu klasy testowej w łatwy sposób dowiedzieć się czy test przeszedł czy nie. A taka informacja będzie przydatna na przykład w metodzie z adnotacją @AfterEach, w której to możemy właśnie wykonać screenshota jeżeli test nie przejdzie.

Wykonywanie screenshota właśnie na koniec testu nie jest jedyną metodą – można wykonać zrzut ekranu także w przypadku, gdy Selenium ma problem np. ze zlokalizowaniem elementu albo kliknięciu go. Jednak to podejście będzie już bardziej pasowało do lekcji o frameworku testowym, bo zakłada opakowanie istniejących już metod wyszukujących elementy lub wchodzących z nimi w interacje, w nasze metody. W zasadzie jest to już budowa jakiegoś frameworka, dlatego w tej lekcji zobaczysz pierwsze podejście.

Jak już wspomniałam, JUnit nie podaje nam informacji o statusie testu w prosty sposób ale możemy wykorzystać jego API, żeby napisać własne rozszerzenie, co nie jest wcale takie trudne, jak się może wydawać. Wystarczy użyć odpowiedniego callbacka i zaimplementować jedną, prostą metodę. Pokażę Ci także jak powiedzieć testowi, że ma użyć rozszerzenia, które napisaliśmy.

Zobaczysz także jak poradzić sobie z nazwami plików, żeby pliki się nie nadpisywały przez to, że mają tą samą nazwę. Na koniec pokażę Ci również jak logować w teście ścieżkę do pliku, żeby nie trzeba było szukać pliku po dacie i godzinie, co może być szczególnie kłopotliwe w przypadku, gdy przechowujemy screenshoty z wielu testów na wiele wykonać wstecz.

Do zrozumienia tej lekcji na pewno potrzebujesz wiedzy z poprzedniej lekcji: Zrzuty ekranu: wykonywanie screenshotów strony i elementów.

Kod do użycia, który pokazuję w lekcji

Klasa rozszerzająca testy

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.


Metoda takeScreenshot

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.


Zarejestrowanie rozszerzenia do testu

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.


Metoda z adnotacją @AfterEach

Ukryta treść

Nie masz dostępu do tego kursu. Wykup dostęp albo zaloguj się, by móc zobaczyć pełną lekcję.

Wsparcie merytoryczne

Nie masz dostępu do wsparcia merytorycznego dla tego kursu. Wykup dostęp albo zaloguj się, by móc zadawać pytania.

  1. Witaj Elu.
    Mam małą prośbę.
    Nauczyłem się Twojego sposobu robienia screenshotów (działa) ale chciałem też się naumieć poprzez TestNG.
    Wiem, że muszę wtedy użyć Listenerów ale nie o nie mi chodzi.
    Mianowicie, w moim IntelIJ klasy spod niebieskiej javy nie widzą klas spod zielonej javy i odwrotnie.
    Wiem, że jest to kwestia konfiguracji. Wiem, też, że wchodzę w project settings a potem w modules.
    Problem w tym, że zmiana ustawień (chyba że coś źle robię w ogóle nie pomaga).
    Uśmiechniesz się do mnie ? 🙂

    Odpowiedz