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
.