Jak Docker może ułatwić życie testerowi?

Inne narzędzia

Loading

Docker jest świetnym narzędziem które znacznie ułatwi życie testerowi i sprawi, że testowanie będzie prostsze i ogólnodostępne. Zacznijmy od wstępu dotyczącego tego czym jest Docker i dlaczego będąc testerem warto się z nim zaprzyjaźnić :). W ramach naszego tekstu zastanowimy się Jak Docker może ułatwić życie testerowi?

🐳 Wstęp

Docker jest narzędziem do zarządzania kontenerami. A czym właściwie są te kontenery?
Kontenery to przenośne środowiska uruchomieniowe, zawierają wszystko co jest potrzebne do uruchomienia aplikacji. Działają one w izolacji od reszty systemu, pełnią rolę „mini komputerów” wewnątrz komputera, są jednak dużo lżejsze i szybsze.
Dla testera oznacza to, że:

  • Można łatwo „czyścić” środowisko – po prostu usuwa się kontener i startuje nowy, czysty
  • Można przygotować kontener z wersją aplikacji do testów i mieć pewność, że będzie działać identycznie u wszystkich
  • Można szybko „odpalić” bazę danych, serwer API lub inną usługę potrzebną do testów

Poniżej zostanie podane kilka przykładów w jaki sposób Docker może ułatwić testowanie, testerom manualnym, automatycznym a nawet deweloperom 🙂

🐳 Docker – jak tester manualny może zyskać własne środowisko testowe

Narzędzie pozwala testerom uruchomić pełne środowisko testowe (np. frontend, backend, bazy danych) w izolowanych kontenerach – bez potrzeby instalowania czegokolwiek lokalnie (z wyjątkiem Dockera :)) oraz bez konieczności wdrażania zmian na serwerach testowych.
Ułatwia odtwarzanie zgłoszonych błędów w konkretnych konfiguracjach, testowanie różnych wersji aplikacji czy sprawdzanie działania usług zewnętrznych, jak Redis czy RabbitMQ.
Idealny do szybkiego resetowania środowiska i testów w „czystych” warunkach.

Jeśli posiadamy aplikację zaimplementowaną za pomocą pythona i biblioteki FLASK możemy posłużyć się poniższym przykładem pliku Dockerfile

Plik Dockerfile

FROM python:3.13

WORKDIR /flask

COPY requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 5000

CMD ["python", "-m", "flask", "run", "--host=0.0.0.0"]
📌 Ten plik:
  • pobiera obraz z najnowszym Pythonem 3.13
  • instaluje zależności z pliku requirements.txt
  • kopiuje kod aplikacji do kontenera
  • uruchamia serwer Flask dostępny na porcie 5000

Jak uruchomić aplikację w Dockerze:

🚀 Budowanie i uruchamianie kontenerów:

docker build -t flask-app-dla-testerow .
docker run -d -p 5000:5000 flask-app-dla-testerow
Przejdź do aplikacji w przeglądarce:
http://localhost:5000

Po uruchomieniu kontenera Twoje środowisko testowe działa w tle.

🔬Konteneryzacja testów zapewnia wsparcie dla metodologi
TDD (Test-Driven Development)

TDD opiera się na stworzeniu w pierwszej kolejności testów, a następnie rozpoczęcia procesu dewelopmentu. W takim podejściu testerzy przygotowują obrazy z narzędziami testowymi (np. testy E2E), które następnie deweloperzy wykorzystują w swoim cyklu TDD.
Zmniejsza to ryzyko błędów środowiskowych („u mnie działa”) – testy działają tak samo na każdym komputerze.

Plik Dockerfile

FROM python:3.13-slim

WORKDIR /tests

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["pytest"]

🚀 Budowanie kontenera z testami i uruchamianie testów

docker build -t pytest-tests .
docker run --rm pytest-tests

Kontener uruchomi pytest i wykona testy.

Po zakończeniu działania – kontener zostanie automatycznie usunięty dzięki przekazanej fladze --rm.

🧪 Jak Docker może ułatwić życie testerowi? => Docker ułatwia testowanie konfiguracji systemowych

Można łatwo sprawdzić, jak aplikacja zachowuje się w nietypowych warunkach, bez potrzeby posiadania wielu maszyn czy systemów. Przydaje się szczególnie w testowaniu globalnych aplikacji lub specyficznych środowisk klienckich.

W tym przypadku przygotowujemy trzy różne pliki Dockerfile – każdy z inną wersją Pythona.

Dzięki temu możemy porównać działanie aplikacji i upewnić się, że zmiany nie wprowadzają niezgodności.

🚀 Budowanie i uruchamianie kontenerów

docker build -t app-python-3.10 .
docker build -t app-python-3.11 .
docker build -t app-python-3.13 .
docker run -d -p 8010:8000 app-python-3.10
docker run -d -p 8011:8000 app-python-3.11
docker run -d -p 8013:8000 app-python-3.13

💥I teraz:

  • http://localhost:8010 – działa na Pythonie 3.10
  • http://localhost:8011 – działa na Pythonie 3.11
  • http://localhost:8013 – działa na Pythonie 3.13

Świetna praktyka podczas przeprowadzania testów regresji migracji technologicznej, aktualizacji bibliotek czy weryfikacji zależności środowiskowych.

📈 Docker zapewnia środowisko w testowaniu skalowalności aplikacji

Docker umożliwia łatwe uruchamianie wielu instancji tej samej usługi, co pozwala symulować scenariusze obciążeniowe i skalowania poziomego. Testerzy mogą sprawdzić, jak aplikacja zachowuje się przy większej liczbie użytkowników, czy poprawnie działa load balancing oraz czy mikroserwisy komunikują się ze sobą zgodnie z oczekiwaniami.

Testowanie wydajności i skalowalności – uruchamianie wielu instancji aplikacji dzięki unikalnym nazwom kontenerów

docker run -d --name service1 -p 8001:5000 flask-app-dla-testerow
docker run -d --name service2 -p 8002:5000 flask-app-dla-testerow

📌 Podsumowanie

Artykuł Jak Docker może ułatwić życie testerowi? miał na celu przybliżenie Wam specyfiki tego potężnego wspomagacza codziennej pracy. Docker to potężne narzędzie, które powinno znaleźć się w zestawie każdego testera – niezależnie od tego, czy zajmujesz się testami manualnymi, automatycznymi czy pracujesz blisko deweloperów.

💻 Dzięki konteneryzacji możesz:

🔵 szybko tworzyć i niszczyć środowiska testowe,

🔵 uruchamiać różne wersje aplikacji równolegle,

🟢 testować w odizolowanych konfiguracjach systemowych,

🔵 budować i uruchamiać testy automatyczne w spójnym środowisku,

🔵 wspierać procesy TDD i CI/CD bez ryzyka „u mnie działa”,

🟢 testować skalowalność aplikacji i symulować realne scenariusze użycia.

To narzędzie nie tylko usprawnia codzienną pracę – ono pozwala testować mądrzej, szybciej i skuteczniej. Wcale nie musisz „znać się na backendzie”, aby korzystać z tego narzędzia.

🧰 Jeśli jeszcze nie zaprzyjaźniłeś się z Dockerem – to idealny moment, żeby zacząć!

👩‍💻 Autor
Honorata Łyczak

Testerka automatyzująca, pasjonatka jakości oprogramowania.
Specjalizuje się w testach automatycznych, a szczególną sympatią darzy testy wydajnościowe — entuzjastka Locusta 🐛⚡
Linkedin