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.10http://localhost:8011
– działa na Pythonie 3.11http://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