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 85. Synchronizacja w Singletonie i konfiguracja bez Singletona

W tej lekcji dokończymy temat Singletona i poruszymy sobie temat, o którym wspomniałam w poprzedniej lekcji, czyli synchronizacja w Singletonie.

Uwaga: plik z projektem testowym, na którym pracujemy w lekcjach dotyczących POM wymaga uzyskania dostępu. Dostaniesz go tutaj.

Poruszymy temat sekcji krytycznej oraz bloku synchronizowanego. Zobaczysz też co daje dodanie przed zmienną słówka volatile. Gdy już zamkniemy temat Singletona wrócimy do konfiguracji i przerobimy tą klasę na taką, która nie używa Singletona i pokażę Ci jak to ładnie rozwiązać.

Dodatkowo posłużymy się adnotacją @TestInstance(Lifecycle.PER_CLASS) w JUnit 5. Adnotacja ta sprawi, że wszystkie metody testowe będą korzystały z tej samej instancji klasy testowej. Domyślnie, gdy nie dodamy tej adnotacji, nowa instancja jest tworzona dla każdej metody testowej. Oznacza to, że naszych testów nie będziemy mogli w przyszłości zrównoleglić na poziomie metod, czyli nie będziemy mogli uruchamiać testów w jednej klasie równolegle. Żeby to zrobić będziemy musieli przenieść inicjalizację konfiguracji z BeforeAll to BeforeEach. Natomiast nadal będziemy mogli uruchamiać testy równolegle na poziomie klas (czyli testy z kilku różnych klas testowych nadal będą mogły być uruchamiane równolegle).

Zaktualizowane klasy

Klasa testowa: PaymentsTests

Ukryta treść

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

Klasa testowa: CartTests

Ukryta treść

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

Klasa testowa: BaseTest

Ukryta treść

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

Klasa Page Object: CheckoutPage

Ukryta treść

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

Klasa Page Object: CartPage

Ukryta treść

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

Klasa Page Object: ProductPage

Ukryta treść

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

Klasa Page Object: CategoryPage

Ukryta treść

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

Klasa Page Object: BasePage

Ukryta treść

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

Klasa Page Object: DemoFooterPage

(czyli nasza stopka w POM)

Ukryta treść

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

Klasa Page Object: HeaderPage

Ukryta treść

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

Klasa Page Object: OrderReceivedPage

Ukryta treść

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

Klasa: DriverFactory

Ukryta treść

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

Enum: Browser

Ukryta treść

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

Klasa: ConfigurationManager (wzorzec Singleton)

Ukryta treść

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

Configuration.properties

Ukryta treść

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

Lista lekcji dotyczących budowy Frameworka:

Wsparcie merytoryczne

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