Zdarza się, że test automatyczny potrzebuje tymczasowych struktur na dysku maszyny, na której jest wykonywany, na przykład katalogu na pliki zapisywane w trakcie pracy przez testowany program. Tego typu obiekty należy tworzyć w przemyślany sposób, żeby uniknąć niepotrzebnych zakłóceń wykonania testów, spowodowanych na przykład przez błędy pochodzące od systemu operacyjnego przy próbie utworzenia katalogu o nazwie, która już istnieje. Na szczęście język Python oraz framework Pytest posiadają mechanizmy, które bardzo takie zadanie ułatwiają.
Selenium WebDriverManager dla projektów w Java - pierwsze kroki
WebDriver API jest protokołem definiującym niezależny od technologii interfejs do kontrolowania przeglądarek. Producenci popularnych przeglądarek często dostarczają własną implementację WebDriver API, nazywaną sterownikiem (ang. driver), która do komunikacji z przeglądarką używa API dostarczonego przez jej producenta. Przykładami takich sterowników są geckodriver dla Mozilla Firefox oraz chromedriver dla Google Chrome.
Manualne zarządzanie wersjami sterowników w projektach jest czasochłonne i podatne na błędy, dlatego też zalecam używanie narzędzi automatyzujących ten proces. Najpopularniejszym narzędziem wykorzystywanym w projektach opartych o technologię Java jest WebDriverManager - biblioteka umożliwiająca automatyczne zarządzanie binariami sterowników wymaganymi przez Selenium WebDriver.
JUnit 5 i Selenium - Wprowadzenie do wzrorca Page Object
W artukule JUnit 5 i Selenium - Odpowiedzialność metod testowych wprowadziłem zmiany, które poprawiły podział odpowiedzialności metod testowych w projekcie testów automatycznych dla aplikacji TodoMVC. Kolejnym ulepszeniem będzie wydzielenie odpowiednich metod prywatnych do oddzielnych klas i wprowadzenie wzorca Page Object.
JUnit 5 i Selenium - Odpowiedzialność metod testowych
W artukule JUnit 5 i Selenium - Wprowadzenie do projektu automatycznych testów aplikacji internetowej rozpocząłem tworzenie projektu testów automatycznych dla aplikacji TodoMVC. Mimo że aplikacja jest bardzo prosta, stworzyłem sporo kodu, którego utrzymanie i modyfikacja to nie lada wyzwanie. W tym artykule spróbuję usprawnić projekt poprzez eliminację powtarzającego się kodu oraz prawidłowe określenie odpowiedzialności metod testowych.
Pytest - zakres dla fixture i kroki teardown
W poprzednim artykule na temat frameworku Pytest opisałem koncepcję fixtures oraz omówiłem podstawy statycznej i dynamicznej parametryzacji testów. Tym razem chciałbym się zająć wykorzystaniem funkcjonalności definiowania zakresu (scope) dla fixtures oraz wykonania kroków kończących (teardown) po zakończeniu testów. Jest to też okazja do zmierzenia się z prostymi testami REST API, wykonywanymi w języku Python z wykorzystaniem biblioteki requests.
Narzędzia - Python i PyCharm
Python to popularny język programowania o licznych zastosowaniach. Przydaje się między innymi w testowaniu i prototypowaniu. Jest językiem wysokiego poziomu, zorientowanym obiektowo, z silnym i dynamicznym typowaniem (nie wymaga deklarowania typów zmiennych), automatycznym zarządzaniem pamięcią (ma garbage collector), wspieranym na wielu platformach sprzętowych i systemowych. W tym artykule opiszę kroki potrzebne do skonfigurowania środowiska programistycznego, pobrania repozytorium z prostym testem napisanym we frameworku Pytest oraz uruchomienia go na dwa sposoby.
Narzędzia - środowisko dla Java i Selenium na macOS
Tworzenie testów automatycznych jest możliwe na różnych platformach. Do tej pory przedstawialiśmy konfigurację środowiska i uruchomienie testów na komputerze z systemem Windows, ale w zależności od osobistych preferencji lub dostępności odpowiednich maszyn z takim samym powodzeniem można pracować na urządzeniach pracujących pod kontrolą systemu Linux lub macOS. W tym artykule przedstawię skróconą instrukcję przygotowania środowiska do automatyzacji testów aplikacji internetowych w technologii Java i Selenium WebDriver na ostatnim z wymienionych systemów.
JUnit 5 i Selenium - Wprowadzenie do projektu automatycznych testów aplikacji internetowej
Po artykule opisującym podstawowe funkcjonalności frameworka JUnit 5 oraz serii trzech artykułów na temat konfiguracji środowiska na potrzeby testowania aplikacji internetowych, przyszedł wreszcie czas na zmierzenie się z automatyzacją testów prawdziwej aplikacji. Zaprezentuję praktyczne połączenie elementów dostarczanych przez technologię Java, framework JUnit 5, narzędzie automatyzacji procesu budowania aplikacji Gradle i bibliotekę Selenium WebDriver w rzeczywistym projekcie. Zacznę od podstaw, w kolejnych tekstach stopniowo wprowadzając bardziej zaawansowane koncepcje, tworząc tym samym zestaw profesjonalnych testów automatycznych.
Narzędzia - Java, Gradle i IntelliJ
Java jest jednym z najpopularniejszych języków programowania, cechującym się obiektowością, silnym typowaniem, przenośnością oraz prostotą. Programy napisane w języku Java kompilowane są do tzw. bytecode’u, a następnie uruchamiane są w tak zwanej wirtualnej maszynie, w dowolnym systemie operacyjnym.
Zacznij przygodę z programowaniem w technologii Java od przygotowania środowiska programistycznego w systemie Windows.
Narzędzia - Selenium i przeglądarki internetowe
Automatyzacja testów aplikacji internetowych odbywa się zazwyczaj z wykorzystaniem biblioteki Selenium WebDriver, a do ich przygotowania i uruchomienia wykorzystywane są różne przeglądarki internetowe. W tym artykule przedstawię przygotowanie środowiska do testów w oparciu o Selenium WebDriver oraz przeglądarki Chrome i Firefox.