![]()
Testy wydajności coraz częściej stają się nieodzownym elementem procesu wytwarzania oprogramowania, a ich automatyzacja pozwala szybciej wykrywać problemy z wydajnością aplikacji. Jednym z narzędzi, które zyskuje na popularności wśród testerów, jest Locust. Framework oparty na Pythonie, umożliwiający tworzenie scenariuszy testowych w prosty i czytelny sposób.
To pierwszy artykuł z serii „Locust bez tajemnic”, w której krok po kroku pokażę, jak rozpocząć pracę z tym narzędziem – od konfiguracji środowiska, przez tworzenie pierwszych scenariuszy, aż po bardziej zaawansowane zagadnienia związane z testami wydajnościowymi.
W artykule Locust bez tajemnic #1 konfiguracja środowiska krok po kroku dowiesz się:
- czym jest Locust i dlaczego warto go poznać
- jakie narzędzia należy zainstalować
- jak przygotować środowisko do pracy
- jak zainstalować i uruchomić Locusta
- jak zweryfikować, że wszystko zostało poprawnie skonfigurowane
Po wykonaniu wszystkich kroków będziesz mieć gotowe środowisko, które wykorzystamy w kolejnych częściach serii do tworzenia pierwszych testów wydajnościowych.
Czym jest Locust?
Locust to framework do testów wydajności napisany w Pythonie. Umożliwia tworzenie scenariuszy obciążeniowych dla aplikacji webowych, interfejsów REST API oraz innych usług opartych na protokole HTTP. Dzięki symulacji wielu jednoczesnych użytkowników możemy sprawdzić, jak system zachowuje się pod większym obciążeniem i wykryć potencjalne problemy z wydajnością jeszcze przed wdrożeniem na środowisko produkcyjne.
Największą zaletą Locusta jest sposób tworzenia scenariuszy testowych. Zamiast klikać w rozbudowanym interfejsie graficznym, piszemy zwykły kod w Pythonie. Dzięki temu scenariusze są czytelne, łatwe do utrzymania i można je przechowywać razem z kodem projektu, np. w repozytorium Git.
Za pomocą Locusta możemy wykonywać między innymi:
- testy obciążeniowe (Load Testing)
- testy przeciążeniowe (Stress Testing)
- testy wytrzymałościowe (Soak/Endurance Testing)
- testy skokowe (Spike Testing)
Locust posiada wbudowany dashboard, który jest dostępny z poziomu przeglądarki. Sam scenariusz testowy tworzymy w kodzie, natomiast interfejs webowy pozwala w prosty sposób uruchamiać testy, określać liczbę wirtualnych użytkowników oraz tempo ich uruchamiania. W trakcie wykonywania testów możemy na bieżąco obserwować najważniejsze statystyki, takie jak liczba żądań, czasy odpowiedzi, percentyle, przepustowość czy liczba błędów.
Locust bardzo dobrze integruje się również z popularnymi narzędziami wykorzystywanymi w procesie wytwarzania oprogramowania. Można uruchamiać go w Dockerze, integrować z pipeline’ami CI/CD (np. GitLab CI czy Jenkins) oraz generować raporty z wykonanych testów. Dzięki temu sprawdza się zarówno podczas lokalnego tworzenia scenariuszy, jak i w automatycznych testach wykonywanych w pipeline’ach.
Przygotujmy środowisko do pracy z narzędziem Locust
Zanim napiszemy pierwszy scenariusz testowy, musimy przygotować środowisko.
Wystarczy kilka minut i będziemy gotowi do pracy.
Na tym etapie wystarczą nam:
- Python 3.13,
pip(instalowany razem z Pythonem),- Visual Studio Code lub inne ulubione środowisko programistyczne,
- terminal (PowerShell, CMD lub Terminal).
Instalacja Pythona
Jeżeli nie masz jeszcze zainstalowanego Pythona, pobierz wersję 3.13 z oficjalnej strony:
👉 https://www.python.org/downloads/
Podczas instalacji w systemie Windows pamiętaj o zaznaczeniu opcji Add Python to PATH. Dzięki temu będziesz mógł uruchamiać Pythona z poziomu terminala bez wykonywania dodatkowej konfiguracji.
Po zakończeniu instalacji sprawdźmy, czy wszystko przebiegło pomyślnie.
Windows
python --version
Linux / macOS
python3 --version
Jeżeli instalacja zakończyła się sukcesem, w terminalu powinien pojawić się numer zainstalowanej wersji, na przykład:
Python 3.13.7
Jeżeli zamiast numeru wersji zobaczysz komunikat o błędzie, sprawdź, czy Python został dodany do zmiennej środowiskowej PATH. W systemach Linux i macOS może być również konieczne użycie polecenia python3 zamiast python.
Tworzymy projekt do pracy z Locust
Skoro środowisko jest już gotowe, możemy rozpocząć pracę nad naszym pierwszym projektem. Przez całą serię będziemy rozwijać właśnie ten katalog, dlatego warto od początku zadbać o jego uporządkowaną strukturę.
Na początek utwórz nowy katalog projektu:
mkdir locust-tutorial
Następnie przejdź do niego:
cd locust-tests
Na tym etapie struktura projektu jest bardzo prosta.
locust-tests/
Dlaczego warto utworzyć osobny katalog?
Na początku może wydawać się to zbędne, jednak wraz z kolejnymi artykułami projekt będzie się stopniowo rozrastał. Pojawią się scenariusze testowe, pliki konfiguracyjne oraz dodatkowe materiały. Trzymanie wszystkiego w jednym miejscu ułatwi pracę, a w przyszłości bez problemu umieścisz projekt w repozytorium Git lub przeniesiesz go na inny komputer.
Tworzymy środowisko wirtualne
Kolejnym krokiem jest utworzenie środowiska wirtualnego. Jeżeli wcześniej pracowałeś z Pythonem, z pewnością spotkałeś się z tym rozwiązaniem. Jeżeli nie, nie ma powodów do obaw. Jest to standardowa praktyka, która pozwala oddzielić biblioteki wykorzystywane przez projekt od tych zainstalowanych globalnie w systemie.
Dzięki temu każdy projekt może korzystać z własnych wersji bibliotek, a ich instalacja nie wpływa na pozostałe aplikacje.
Aby utworzyć środowisko wirtualne, wykonaj jedno z poniższych poleceń.
Windows
python -m venv .venv
Linux / macOS
python3 -m venv .venv
Po utworzeniu środowiska należy je aktywować.
Windows
.venv\Scripts\activate
Linux / macOS
source .venv/bin/activate
Jeżeli wszystko przebiegło poprawnie, przed ścieżką w terminalu powinien pojawić się prefiks:
(.venv)
Oznacza to, że pracujemy już wewnątrz środowiska wirtualnego i wszystkie kolejne biblioteki zostaną zainstalowane wyłącznie dla tego projektu.
Sprawdźmy, czy wszystko działa
Zanim przejdziemy do instalacji Locusta, upewnijmy się, że korzystamy z właściwego interpretera Pythona oraz że środowisko wirtualne zostało poprawnie aktywowane.
Najpierw sprawdźmy lokalizację interpretera.
Windows
where python
Linux / macOS
which python3
Jeżeli środowisko zostało aktywowane poprawnie, wyświetlona ścieżka powinna wskazywać interpreter znajdujący się w katalogu .venv.
Następnie sprawdźmy wersję programu pip:
pip --version
Przykładowy wynik:
pip 25.x.x from .../.venv/lib/python3.13/site-packages/pip (python 3.13)
Zwróć uwagę, że w ścieżce pojawia się katalog .venv. To oznacza, że pip będzie instalował biblioteki do naszego środowiska wirtualnego, a nie do globalnej instalacji Pythona.
Instalacja biblioteki Locust
Skoro środowisko jest już przygotowane, możemy przejść do instalacji Locusta. W aktywnym środowisku wirtualnym wykonaj poniższe polecenie:
pip install locust
Po chwili wszystkie wymagane biblioteki zostaną pobrane i zainstalowane.
Aby upewnić się, że instalacja zakończyła się powodzeniem, sprawdźmy wersję zainstalowanego narzędzia.
locust --version
Przykładowy wynik:
locust 2.37.14
Jeżeli w terminalu wyświetli się numer wersji, oznacza to, że Locust został poprawnie zainstalowany i możemy przejść do kolejnego kroku.
Tworzymy pierwszy plik projektu
Locust domyślnie szuka pliku o nazwie locustfile.py. To właśnie w nim będziemy definiować scenariusze testowe oraz zachowanie wirtualnych użytkowników.
Na razie nie będziemy analizować jego zawartości. Naszym celem jest jedynie przygotowanie minimalnego pliku, który pozwoli uruchomić Locusta i sprawdzić, czy środowisko zostało poprawnie skonfigurowane.
Utwórz w katalogu projektu plik o nazwie:
locustfile.py
Następnie wklej do niego poniższy kod:
from locust import HttpUser
class WebsiteUser(HttpUser):
pass
Jeśli plik jest niezrozumiały na tym etapie to naturalne. Na razie zależy nam jedynie na tym, aby Locust poprawnie wykrył plik locustfile.py i uruchomił swój interfejs webowy.
Pierwsze uruchomienie Locusta
Nie mamy jeszcze przygotowanego żadnego scenariusza testowego. Mimo to warto uruchomić Locusta i zobaczyć, jak wygląda jego interfejs.
W katalogu projektu wykonaj polecenie:
locust
Po chwili w terminalu powinna pojawić się informacja o uruchomieniu serwera.
Domyślnie panel Locusta jest dostępny pod adresem:
http://localhost:8089
Po otwarciu tego adresu w przeglądarce zobaczysz interfejs webowy Locusta.
To właśnie tutaj będziemy uruchamiać nasze scenariusze testowe, określać liczbę wirtualnych użytkowników, tempo ich uruchamiania oraz analizować wyniki testów.
Co znajduje się w panelu Locusta?
Po uruchomieniu aplikacji w przeglądarce zobaczysz panel konfiguracyjny Locusta. To właśnie z jego poziomu będziemy uruchamiać testy wydajnościowe oraz obserwować ich przebieg.
Już teraz warto zwrócić uwagę na kilka podstawowych pól:
- Host to adres aplikacji lub API, które będziemy testować,
- Number of users to liczba wirtualnych użytkowników, którzy będą wykonywać przygotowane scenariusze,
- Spawn rate to liczba użytkowników uruchamianych w ciągu sekundy.
Po rozwinięciu sekcji Advanced options dostępne są również dodatkowe ustawienia, między innymi:
- Run time to czas trwania testu,
- Profile to zapisane konfiguracje uruchamiania testów.
Na razie nie będziemy szczegółowo omawiać tych opcji. W kolejnej części serii wykorzystamy je podczas uruchamiania pierwszego scenariusza testowego oraz wyjaśnimy, jak wpływają na przebieg testów wydajnościowych.
Podsumowanie
W tym artykule przygotowaliśmy środowisko do pracy z Locustem. Zainstalowaliśmy Pythona, utworzyliśmy projekt, skonfigurowaliśmy środowisko wirtualne oraz zainstalowaliśmy framework. Przygotowaliśmy również bazowy plik locustfile.py i uruchomiliśmy panel webowy Locusta.
W następnym artykule stworzymy pierwszy scenariusz testowy, poznamy klasę HttpUser oraz dekorator @task. Dowiesz się również, jak uruchomić test wydajnościowy i zinterpretować podstawowe statystyki wyświetlane w panelu Locusta.
👩💻 Autor
Honorata Łyczak
Testerka automatyzująca oraz wykładowczyni akademicka na Uniwersytecie DSW Idees w Krakowie. Specjalizuje się w automatyzacji testów, Pythonie oraz testach wydajnościowych. Zwolenniczka praktycznego podejścia do nauki i entuzjastka Locusta 🐛⚡.
Linkedin
