Testy wydajnościowe - alternatywy JMetera - main

JMeter tworzenie raportów CSV

JMeter

Loading

JMeter tworzenie raportów CSV to zagadnienie ważne i potrzebne w pracy testera, który tworzy testy wydajnościowe. Podstawą do stworzenia tego wpisu, były rozmowy rekrutacyjne, które przeprowadzałem, podczas których kandydaci informowali, że analizy dokonywali przy użyciu listnerów w wersji GUI.

JMeter dobre praktyki

JMeter jak każde inne narzędzie można używać w różny sposób. Warto zapoznać się z dobrymi praktykami, aby nasze testy a także ich wyniki były jak najbardziej odzwierciedlające rzeczywistość i pozwoliły uzyskać jak najwięcej informacji na temat naszej aplikacji.

Tworzenie raportów

Jak przeczytaliście w dobrych praktykach, aby uzyskiwać bardziej wiarygodne wyniki, konieczne jest uruchamianie JMetera w poziomu wiersza poleceń. Żeby uzyskać raport csv wystarczy wprowadzić odpowiednią komendę, by taki raport z naszych testów został automatycznie wygenerowany:

jmeter -n -t test.jmx -l test -e -o C:\apache-jmeter-5.4\bin\Raports\wyniki.csv

lub na Linuxie:

/jmeter.sh -n -t test.jmx -l test -e -o /usr/local/inp/apache-jmeter-5.4/bin/Raports/wyniki

Taka krótka dodatkowa komenda pozwala na wygenerowanie w określonym przez nas miejscu raportu CSV. W przypadku problemów z raportem, zweryfikuj czy na pewno w pliku user.properties masz zahaszowaną linijkę:

#jmeter.save.saveservice.output_format=xml

Zawartość raportów

Główna strona raportu pokazuje nam wiele informacji na temat przeprowadzonego testu w podstawowej wersji.

JMeter tworzenie raportów CSV - dashdobard

Jak widzimy na dashoboardzie mamy datę testu, nazwę pliku i podsumowanie testu – ile requestów było prawidłowych a ile błędnych. Do błędnych zaliczono by wszystkie statusy nie zakończone 200 a także wszystkie inne które mielibyśmy zabezpieczone asercjami w teście – np. czas odpowiedzi.

JMeter tworzenie raportów CSV - dashdobard2

Tutaj mamy wyniki dla poszczególnych grup testowych z podziałem na ilość requestów, czasy minimalne/maksymalne i inne przydatne informacje.

JMeter tworzenie raportów CSV - errors

Errory – wykaz z jakich powodów były errory w naszej aplikacji, ile takich przypadków było.

JMeter tworzenie raportów CSV - top 5 errors

W przypadku dużej ilości różnych problemów w aplikacji warto udać się do TOP 5 errors i wyciągnięcie wniosków w tym zakresie aby zabezpieczyć aplikację, a następnie postarać się poprawić najczęstsze błędy, przeprowadzić testy ponownie i skupić się na innych.

Dokładniejsze informacje

Z lewej strony mamy rozwijane menu, z którego możemy wyczytać wiele informacji przydatnych w szczegółowej analizie wyników naszej aplikacji. Zakładki dzielą się na Charts – Over Time, Throughput i Response Time, a takżę Customs Graphs. W tym opisie skupimy się tylko na kilku elementach z tej listy.

Active Threads Over Time

Bardzo ważna rzecz. Czy rzeczywiście zaplanowana ilość wątków została wysłana w danym czasie do naszej aplikacji.

Bytes throughput Over Time

Latencies Over Time

Connect Time Over Time

Hits per second

Response codes per second

Transactions per second

Response Time vs Request per second

Latency vs Request per second

Times vs Threads

Dodatek

Wszystkie właściwości generowania raportów możemy znaleźć w pliku reportgenerator.properties. Jeżeli chcemy dostosować właściwości, należy przenieść je do pliku user.properties. W ostatnich wersjach JMetera raport csv działa poprawnie automatycznie. Gdybyś dokonywał zmian musisz mieć takie minimalne ustawienia by poprawnie generować raporty:

jmeter.save.saveservice.bytes = true
# Only available with HttpClient4
#jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.label = true
jmeter.save.saveservice.latency = true
jmeter.save.saveservice.response_code = true
jmeter.save.saveservice.response_message = true
jmeter.save.saveservice.successful = true
jmeter.save.saveservice.thread_counts = true
jmeter.save.saveservice.thread_name = true
jmeter.save.saveservice.time = true
jmeter.save.saveservice.connect_time = true
jmeter.save.saveservice.assertion_results_failure_message = true
# the timestamp format must include the time and should include the date.
# For example the default, which is milliseconds since the epoch:
jmeter.save.saveservice.timestamp_format = ms
# Or the following would also be suitable
# jmeter.save.saveservice.timestamp_format = yyyy/MM/dd HH:mm:ss

Podsumowanie

JMeter tworzenie raportów CSV szybka opcja dla osób testujących wydajność, aby uzyskać jak najwięcej infromacji z przeprowadzonego testu. Więcej o JMeterze stale piszemy w dziale dedykowanym dla tego narzędzia.