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.

Czytaj więcej ...

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.

Czytaj więcej ...

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.

Czytaj więcej ...

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.

Czytaj więcej ...

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.

Czytaj więcej ...

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.

Czytaj więcej ...

Narzędzia - system kontroli wersji Git i emulator konsoli cmder

Nieodzownymi elementami środowiska programistycznego są system kontroli wersji, umożliwiający zarządzanie zmianami w trakcie pisania kodu, oraz emulator konsoli, umożliwiający wykonywanie poleceń przy użyciu interfejsu linii komend (ang. command line interface, CLI). W tym artykule przedstawię system kontroli wersji Git oraz emulator konsoli dla Windows Cmder.

Czytaj więcej ...

Pytest - Pierwsze kroki

Pytest to nowoczesny framework do uruchamiania testów automatycznych w języku Python. Może być stosowany do testów jednostkowych, ale sprawdza się bardzo dobrze również przy tworzeniu rozbudowanych testów wyższego poziomu (integracyjnych, end-to-end) dla całych aplikacji czy bibliotek.

Jego przemyślana konstrukcja ułatwia uzyskanie pożądanych efektów w sytuacjach o wysokim poziomie skomplikowania, a mnogość dostępnych rozszerzeń oraz łatwość tworzenia własnych bibliotek pozwala zastosować go do testowania produktów działających w praktycznie dowolnej technologii. Nie trzeba dodawać, że Pytest radzi sobie bardzo dobrze również z testowaniem aplikacji webowych i usług sieciowych, a to dzięki wykorzystaniu bibliotek takich jak Selenium i requests.

Czytaj więcej ...

JUnit 5 - Pierwsze kroki

JUnit 5 to framework nowej generacji do tworzenia automatycznych testów jednostkowych w technologii Java, oferujący wiele ciekawych funkcji, takich jak np. testy parametryzowane, wstrzykiwanie zależności, całkowite wsparcie dla Javy 8, czy w końcu nowe API, umożliwiające łatwiejsze niż kiedykolwiek rozszerzanie możliwości frameworka i dostosowanie go do potrzeb projektowych.

Frameworki takie jak JUnit 5 wykorzystywane są dzisiaj nie tylko w testach jednostkowych. Mają również szerokie zastosowanie w testach wyższego poziomu, w tym w testach funkcjonalnych z użyciem takich bibliotek jak Selenium WebDriver czy REST Assured.

W tym wpisie przedstawię najważniejsze cechy JUnit 5, dzięki czemu nauczysz się samodzielnie przygotować projekt w oparciu o ten framework.

Czytaj więcej ...