Od pewnego czasu pracowaliśmy z Mateuszem Tadlą nad rozwiązaniem w postaci biblioteki do automatyzacji testów UI dla C# i Selenium WebDriver.
Na ten moment, do Waszej dyspozycji są szablony do automatyzacji testów w Javie, które zostały opublikowane przez zespół automatyków testów. Zachęcamy do zapoznania się również z nimi pod adresem: Darmowe szablony do automatycznych testów aplikacji Web.
Wiele osób, zaczynając swoją przygodę z automatyzacją testów UI, zastanawia się, czy warto tworzyć własną bibliotekę do testów automatycznych, czy może skorzystać już z dostępnego, gotowego rozwiązania. Istnieje wiele ciekawych bibliotek, dotyczących takich technologii jak Java czy JS, które ułatwiają rozwój testów automatycznych. Dla C# wybór nie jest tak oczywisty. Występuje znacznie mniej stale utrzymywanych rozwiązań. Jest to powód, dla którego zdecydowaliśmy się na stworzenie łatwego do wdrożenia rozwiązania.
Przygotowane rozwiązanie znacznie ułatwia pracę z automatyzacją testów akceptacyjnych UI dla aplikacji webowych. Zawarte są w nim najczęściej używane i potrzebne klasy wspierające sprawne pisanie testów automatycznych. Poza samym szablonem, który zostawiamy do Waszej dyspozycji, przygotowaliśmy dla Was kilka przykładów, implementujących użycie naszej biblioteki. Wystarczy pobrać kod z repozytorium GITa i zapoznać się z instrukcją w pliku w readme.md.
Co zawiera nasze rozwiązanie?
Nasze rozwiązanie to kilka elementów:
- Wsparcie dla Allure Report – Allure report jest popularnym frameworkiem do tworzenia raportów z testów automatycznych. Jest to narzędzie open source’owe, pozwalające na tworzenie dynamicznych raportów z testów, w postaci strony.
- Dynamiczne czekanie na elementy – umożliwia rozwiązanie problemów synchronizacji Selenium WebDriver z wolno ładującym się interfejsem użytkownika.
- Page Object Pattern – popularny wzorzec projektowy, który został użyty do podziału struktury kodu w naszych przykładach.
- Generatory danych – przy wykorzystaniu biblioteki ‘Bogus’ zaimplementowaliśmy prosty generator, dostarczający losowe dane użytkowników.
- Importer konfiguracji – element odpowiadający za pobieranie konfiguracji dla testów. Umożliwia ono przy użyciu prostej parametryzacji pliku JSON na konfiguracje zmiennych, wykorzystywanych w testach.
- Wsparcie przeglądarek – jest kluczowym elementem automatyzacji różnych przeglądarek. Stworzyliśmy fabrykę, która dostarcza drivery wraz z potrzebnymi opcjami dla najpopularniejszych przeglądarek, takich jak Chrome, Firefox, Internet Explorer oraz Edge.
Dlaczego warto skorzystać?
Szablon zawiera wiele przydatnych klas, ułatwiających korzystanie z Selenium WebDriver. Mogą być to podwaliny dla rozwiązania, z którego będziecie korzystać w codziennej pracy. Zachęcamy również do dodawania swoich pomysłów, dotyczących nowych funkcji, jak i również dodawania swoich pull requestów, które pozwolą nam na wspólne rozwijanie tej biblioteki.
Jakie mamy plany na przyszłość?
W przyszłości planujemy dalszy rozwój biblioteki, wzbogaconą o większą liczbę przykładów i przykładnych funkcji. Chcemy również stworzyć dokładniejszą dokumentację oraz przygotować paczkę Nugeta.
Kod dostępny jest na GitHubie:
https://github.com/sii-poland/csharp_page_object_pattern
Kontakt do autorów:
Mateusz Tadla – [email protected]
Michał Ślęzak – [email protected]
Chcesz lepiej zrozumieć aplikacje i systemy, które testujesz? Dołącz do ModernTester, poznaj najpotrzebniejsze narzędzia, frameworki oraz języki programowania i ćwicz na specjalnie przygotowanych środowiskach testowych: Platforma e-learningowa ModernTester
Zostaw komentarz