[DajSięPoznać#20] JMeter i testy wydajnościowe

Wstęp

Testy wydajnościowe z wielu względów przeprowadzać warto. Pozwalają one stworzyć metryki responsywności systemu przy normalnym ruchu (load testy) oraz zbadać ograniczenia systemu i jego zachowanie w sytuacji nadmiernego obciążenia (stress testy). Popularnym darmowym narzędziem, które daje mnóstwo niskopoziomowych możliwości jest JMeter.

1a

Testy HTML

Testy w JMeter buduje się z gotowych komponentów.

abc2

Rozpoczynamy od dodania grupy wątków symulującej liczbę użytkowników. Komponent Gaussian Random Timer wprowadzi losowe opóźnienie symulujące pracę użytkowników.

Następnie z grupy Samplers wybieramy HTTP Request wykonujący żądanie HTTP. Poza podstawowymi opcjami takimi jak host, port, protokół czy metoda, warto skorzystać z zakładki Advanced.

adb

JMeter daje nam możliwość automatycznego pobrania wszystkich zasobów linkowanych z pobranego dokumentu HTML. Co więcej,  można ustawić zrównoleglenie takiego pobierania. Liczba 6 jest tu nieprzypadkowa, bowiem dokładnie tyle równoległych połączeń otwierają współczesne przeglądarki.

Widok danych zagregowanych pokazuje tabelarycznie czasy odpowiedzi serwera i % błędów, jeżeli takie występują (na podstawie wybranych asercji).

aaaaa

Testy API JSON-owego

json

HTTP Header Manager służy do dodania nagłówka content-type. Dane, które wysyłamy w body umieszczamy w bloczku HTTP Request:

jsom222

Komponent View Results Tree umożliwa podgląd każdego requestu i otrzymanej odpowiedzi.

loader.io

Istnieje sporo alternatyw dla JMetera. Coraz popularniejsze stają się rozwiązania chmurowe, gdzie można w prosty sposób uruchamiać testy w wielu maszyn, a w związku z tym generować mocne obciążenia na potrzeby stress testów. Większość takich rozwiązań jest płatna. Strona loader.io pozwala darmowo generować testy do 10 000 użytkowników dla pojedynczego hosta. Przed rozpoczęciem testów należy osadzić na testowanej stronie plik z tokenem autoryzacyjnym, tak, by strony mogły być poddawane testom obciążeniowym tylko przez ich autorów. Przykładowy wykres odpowiedzi serwera wygenerowany przez loadera poniżej:

222

 

Advertisements

One thought on “[DajSięPoznać#20] JMeter i testy wydajnościowe

  1. Pingback: [DajSięPoznać] Podsumowanie | When the smoke is going down

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s