JMeter Elementy i komponenty: Grupa wątków, Próbniki

⚡ Inteligentne podsumowanie

JMeter elementy stanowią podstawowe bloki każdego planu testów: grupy wątków tworzą wirtualnych użytkowników, próbniki wysyłają żądania, nasłuchiwacze wyświetlają wyniki, a elementy konfiguracji dostarczają wartości domyślne i dane niezbędne tym żądaniom.

  • 🔘 Grupa wątków: Każdy wątek reprezentuje jednego wirtualnego użytkownika sterującego testowaną aplikacją.
  • Próbniki: Określ protokół żądania — FTP, HTTP, JDBC, SMTP i inne.
  • Słuchacze: Wyświetlaj wyniki w postaci wykresu, drzewa, tabeli lub pliku dziennika.
  • 🧪 Elementy konfiguracji: Ustaw wartości domyślne i zmienne, które samplery będą wykorzystywać ponownie w całym teście.
  • 🛠️. Uruchomienia oparte na danych: Konfiguracja zestawu danych CSV dostarcza różnych danych uwierzytelniających każdemu symulowanemu użytkownikowi.
  • Współczesne odpowiedniki: Próbnik BSF został usunięty; obecne wersje skryptu korzystają z JSR223 i Groovy.

JMeter Elementy: Grupa wątków, samplery, słuchacze i elementy konfiguracji

W czym jest Element JMeter?

Różne składniki JMeter nazywane są Elementami. Każdy Element jest przeznaczony do określonego celu.

Poniższy rysunek przedstawia kilka wspólnych elementów JMeter i pokazuje jak są one umieszczone w Grupie Wątków.

JMeter Diagram hierarchii elementów z grupą wątków powyżej: samplerów, kontrolerów logicznych, słuchaczy, elementów konfiguracji, asercji, timerów i procesorów

Uczenie się wszystkich komponentów na raz to zaproszenie do dezorientacji i nudy. Tutaj omówimy niezbędne elementy, zanim zaczniesz. testowanie in JMeter.

Pozostałe komponenty zostaną omówione w miarę ich wykorzystania w kolejnych samouczkach. Elementy omówione w tym samouczku są wymienione poniżej.

Grupa wątków

Grupa wątków to zbiór wątków. Każdy wątek reprezentuje jednego użytkownika korzystającego z testowanej aplikacji. Zasadniczo każdy wątek symuluje jedno rzeczywiste żądanie użytkownika skierowane do serwera.

Elementy sterujące grupą wątków umożliwiają ustawienie liczby wątków dla każdej grupy.

Na przykład, jeśli ustawisz liczbę wątków na 100, JMeter utworzy i symuluje 100 żądań użytkownika skierowanych do testowanego serwera, jak pokazano na poniższym diagramie.

Schemat a JMeter Grupa wątków symulująca Użytkownika 1 do Użytkownika 100, z których każdy wysyła żądanie do testowanej aplikacji

Panel Grupy wątków ma również okres rozruchu, który rozkłada uruchamianie wątków na przestrzeni czasu zamiast uruchamiania wszystkich wątków jednocześnie.

Próbniki

Jak już wiemy JMeter obsługuje testowanie HTTP, FTP, JDBC i wielu innych protokołów.

Wiemy również, że grupy wątków symulują żądania użytkownika kierowane do serwera.

Ale w jaki sposób grupa wątków wie, jaki typ żądania (HTTP, FTP itd.) ma wysłać?

Odpowiedź brzmi: Samplery.

Żądanie użytkownika może być żądaniem FTP, żądaniem HTTP, żądaniem JDBC itd. Poniższy rysunek przedstawia listę próbek omówionych w tym samouczku.

Wykaz diagramów drzewa JMeter samplery: żądanie FTP, żądanie HTTP, żądanie JDBC, sampler BSF, sampler dziennika dostępu i sampler SMTP

Żądanie FTP

Wyobraź sobie, że chcesz przetestować wydajność serwera FTP. Możesz użyć samplera żądań FTP w JMeter wykonać to zadanie. Ten kontroler umożliwia wysyłanie żądań FTP „pobierz plik” lub „prześlij plik” do serwera FTP.

Schemat pokazujący JMeter wysyłanie żądania FTP do serwera FTP w celu przesłania lub pobrania pliku

Na przykład, jeśli chcesz pobrać plik „Test.txt” z testowanego serwera FTP, musisz skonfigurować niektóre parametry w JMeter jak na poniższym rysunku.

Panel przykładowy żądania FTP z serwerem ftp.example.com, portem 21, plikiem Test.txt jako plikiem zdalnym i logowaniem anonimowym

Panel ustawia serwer na ftp.example.com, port 21, plik zdalny do Test.txt i opcja get(RETR), więc JMeter wysyła polecenie FTP do tego serwera i pobiera plik.

Żądanie HTTP

Ten próbnik umożliwia wysłanie żądania HTTP/HTTPS do serwera internetowego.

Rozważ poniższy przykład. JMeter wysyła żądanie HTTP do Google witrynę internetową i pobiera z niej pliki HTML lub obrazy.

Schemat JMeter wysyłanie żądania HTTP do Google Witryny i odbieranie plików HTML i obrazów w zamian

W samouczku JMeter Test wydajności, wyjaśnimy więcej na temat tego żądania HTTP. To jest próbnik najczęściej testowanie aplikacji internetowych praca jest od tego uzależniona.

Żądanie JDBC

Ten sampler umożliwia wykonywanie bazy danych test wydajności. Wysyła żądanie JDBC (zapytanie SQL) do bazy danych.

Schemat JMeter wysyłanie zapytania SQL do serwera bazy danych i odbieranie wyniku

Na przykład serwer bazy danych ma pole test_result zapisane w tabeli o nazwie test_tbl. Chcesz pobrać te dane z serwera bazy danych, więc możesz skonfigurować JMeter wysłać a SQL zapytanie do tego serwera w celu pobrania danych.

Panel żądania JDBC z typem zapytania ustawionym na polecenie Select Statement i zapytaniem select test_result from test_tbl where id = 1

Typ zapytania w tym przypadku to polecenie SELECT, a zapytanie brzmi: select test_result from test_tbl where id = 1Element konfiguracji połączenia JDBC musi podawać pulę, na którą wskazuje pole Nazwa zmiennej.

Próbnik BSF

Ten próbnik umożliwia napisanie próbnika przy użyciu pliku a BSF język skryptowy.

Oto przykład próbnika BSF w JMeterz polami dla języka skryptowego, parametrów przekazywanych do skryptu oraz skryptu wbudowanego lub zewnętrznego pliku skryptu.

Panel BSF Sampler z polami dla języka skryptu, parametrów, zewnętrznego pliku skryptu i wbudowanej treści skryptu

Uwaga dotycząca wycofania: rodzina elementów BSF została wycofana na rzecz elementów JSR223 i nie pojawia się już w JMeter odniesienie do komponentu. W przypadku bieżących wydań użyj Próbnik JSR223 w Groovy, który kompiluje skrypt i działa znacznie lepiej pod obciążeniem. Powyższy panel został zachowany, ponieważ starsze plany testów nadal go zawierają.

Dostęp do próbnika dziennika

Ten sampler umożliwia odczyt logów dostępu i generowanie żądań HTTP. Wpisy w logach mogą zawierać obrazy, kod HTML, pliki CSS itd.

Panel Access Log Sampler pokazujący domyślne pola serwera i portu, klasę wtyczki TCLogParser i lokalizację pliku dziennika

Pole Parser ma wartość domyślną org.apache.jmeter.protocol.http.util.accesslog.TCLogParser, a pole Lokalizacja pliku dziennika wskazuje JMeter w dzienniku, który chcesz odtworzyć.

Próbnik SMTP

Jeśli chcesz przetestować serwer pocztowy, możesz skorzystać z narzędzia SMTP Sampler. Narzędzie to służy do wysyłania wiadomości e-mail za pomocą protokołu SMTP.

Panel SMTP Sampler z ustawieniami serwera, adresami e-mail, opcjami uwierzytelniania i bezpieczeństwa oraz ustawieniami wiadomości

Panel grupuje ustawienia serwera, adresy e-mail, ustawienia uwierzytelniania i wiadomości, a obok pola Port wyświetlane są domyślne porty: SMTP 25, SSL 465 i StartTLS 587.

Słuchacze

Słuchacze prezentują wyniki wykonania testu. Mogą prezentować wyniki w różnych formatach, takich jak drzewo, tabela, wykres lub plik dziennika.

Diagram przedstawiający słuchacza rozkładającego wyniki na wykresy, drzewa, tabele i raporty

Wyniki wykresu listener wyświetla czasy odpowiedzi serwera na wykresie, pod którym znajduje się liczba próbek, średnia, odchylenie, przepustowość i mediana.

Słuchacz wykresu wyników przedstawiający czasy reakcji na podstawie danych, średniej, mediany, odchylenia i serii przepustowości

Wyświetl drzewo wyników wyświetla wynik każdego żądania użytkownika w podstawowym formacie HTML, z kartą wyników Sampler, która podaje czas ładowania, opóźnienie, rozmiar i kod odpowiedzi.

Wyświetl drzewo nasłuchiwania wyników z listą żądań po lewej stronie i kartą wyników próbnika wyświetlającą kod odpowiedzi 200

Wyświetl wyniki w tabeli pokazuje podsumowanie wyników testu w formie tabeli, jeden wiersz na próbkę.

Wyświetlanie wyników w programie nasłuchującym tabeli z kolumnami dla numeru próbki, czasu rozpoczęcia, nazwy wątku, etykiety i czasu próbki

Plik dziennika zapisuje to samo podsumowanie w formie tekstowej, czyli to, co zapisujesz, gdy test jest uruchamiany bez interfejsu graficznego.

Podsumowanie zbiorczego dziennika zawierające etykiety próbników z liczbą próbek, średnimi i wierszem SUMA

Najlepsze praktyki: Słuchacze GUI zużywają pamięć i wypaczają wyniki, dlatego należy przeprowadzić prawdziwe testy obciążeniowe w trybie bez GUI i dopiero później otworzyć zapisany plik z wynikami.

Elementy konfiguracji

Elementy konfiguracji ustawiają wartości domyślne i zmienne do późniejszego wykorzystania przez próbniki.

Poniższy rysunek przedstawia niektóre powszechnie używane elementy konfiguracji w JMeter.

Schemat drzewa JMeter elementy konfiguracji: konfiguracja zestawu danych CSV, menedżer plików cookie HTTP, element konfiguracji logowania, domyślne ustawienia żądania HTTP i domyślne ustawienia żądania FTP

Konfiguracja zbioru danych CSV

Załóżmy, że chcesz przetestować witrynę dla 100 użytkowników logujących się przy użyciu różnych danych logowania. Nie musisz nagrywać skryptu 100 razy. Możesz sparametryzować skrypt, aby wprowadzał różne dane logowania. Te dane logowania (na przykład nazwę użytkownika i hasło) można zapisać w pliku tekstowym. JMeter Zawiera element, który umożliwia odczyt różnych parametrów z pliku tekstowego. Jest to „CSV Data Set Config”, który służy do odczytywania wierszy z pliku i dzielenia ich na zmienne.

JMeter drzewo planu testów z konfiguracją zestawu danych CSV wybraną w kontrolerze logowania obok domyślnych ustawień żądania HTTP

Oto przykład danych w formacie CSV. Jest to plik tekstowy zawierający nazwy użytkowników i hasła używane do logowania się do witryny docelowej.

Plik tekstowy csv_data.txt zawierający cztery wiersze oddzielone przecinkami zawierające nazwę użytkownika, hasło i długość pliku cookie

Menedżer plików cookie HTTP

Zrozummy to na przykładzie.

Korzystałeś z przeglądarki (Firefox, Chrome i tak dalej) do przeglądania www.google.com.

Logujesz się, podając swoją nazwę użytkownika i hasło.

Twoja nazwa użytkownika i hasło zostaną zapisane na Twoim komputerze w postaci plików cookie.

Następnym razem, kiedy odwiedzisz www.google.com, nie musisz się logować ponownie, ponieważ Twoja przeglądarka użyje plików cookie jako danych użytkownika, aby się zalogować.

Menedżer plików cookie HTTP ma tę samą funkcję co przeglądarka internetowa. Jeśli żądanie HTTP zawiera plik cookie, Menedżer plików cookie automatycznie go zapisuje i używa do wszystkich przyszłych żądań kierowanych do danej witryny.

Domyślne ustawienia żądań HTTP

Ten element umożliwia ustawienie wartości domyślnych używanych przez kontrolery żądań HTTP.

Na przykład,

Wysyłasz 100 żądań HTTP do serwera google.com.

Musiałbyś ręcznie wprowadzić nazwę serwera google.com dla każdego ze 100 żądań.

Zamiast tego możesz dodać pojedynczy element HTTP Request Defaults z polem „Server Name or IP” ustawionym na google.com, jak pokazano poniżej.

Panel domyślnych żądań HTTP z google.com jako nazwą serwera, portem 80 oraz limitami czasu połączenia i odpowiedzi

Nie musisz tego wpisywać 100 razy. Ten element zostanie szczegółowo wyjaśniony w samouczku. JMeter Test wydajności.

Element konfiguracji logowania

Element konfiguracji logowania umożliwia dodawanie lub zastępowanie ustawień nazwy użytkownika i hasła w samplerach.

Na przykład chcesz symulować logowanie się jednego użytkownika do witryny www.facebook.com z nazwą użytkownika i hasłem. Możesz użyć elementu konfiguracji logowania, aby dodać to ustawienie nazwy użytkownika i hasła do żądania użytkownika.

Panel elementu konfiguracji logowania z nazwą użytkownika guru99 wprowadzoną jako nazwa użytkownika i polem maskowanego hasła

Element konfiguracji logowania a konfiguracja zestawu danych CSV

Element konfiguracji logowania Konfiguracja zbioru danych CSV
Służy do symulacji logowania jednego użytkownika Służy do symulacji logowania wielu użytkowników
Nadaje się wyłącznie do parametrów logowania (nazwa użytkownika i hasło) Nadaje się do dużej liczby parametrów

Łącznie te dwa elementy obejmują niemal każdy scenariusz dotyczący poświadczeń, z jakim się spotkasz narzędzia do testowania wydajności praca.

FAQ

Mówi JMeter Ile czasu musi upłynąć, zanim wszystkie wątki zaczną działać? Dziesięć wątków ze 100-sekundowym rozruchem rozpoczyna się w odstępie dziesięciu sekund. Zbyt krótki rozruch powoduje przeciążenie serwera i awarie, których żaden użytkownik by nie spowodował.

Timery wstawiają pauzę między żądaniami, dzięki czemu symulowane obciążenie przypomina rzeczywiste przeglądanie, a nie zalew. Asercje sprawdzają każdą odpowiedź, oznaczając próbkę jako niepomyślną, gdy kod statusu, tekst lub czas trwania nie zgadzają się z podanymi wartościami.

Grupują i rozgałęziają żądania znajdujące się pod nimi. Kontroler pętli powtarza swoje elementy podrzędne, kontroler warunkowy uruchamia je warunkowo, a kontroler transakcji raportuje całą grupę jako jeden krok czasowy w wynikach.

Nie. Programy nasłuchujące, takie jak View Results Tree, buforują każdą próbkę i zniekształcają raportowane liczby. Uruchom test w trybie bez graficznego interfejsu użytkownika, zapisz wyniki do pliku, a następnie załaduj ten plik do programu nasłuchującego po zakończeniu testu.

Najpierw stosowane są elementy konfiguracji i preprocesory, następnie uruchamiany jest sampler, a następnie postprocesory, asercje i nasłuchiwacze. Zakres również ma znaczenie: element umieszczony na poziomie planu ma zastosowanie do każdego żądania poniżej.

Jest to przydatne do wykrywania wzorców. Przekazanie pliku z wynikami asystentowi pozwala na wykrycie najwolniejszych etykiet, klastrów błędów i trendów czasu reakcji znacznie szybciej niż odczyt wierszy. Zawsze należy potwierdzić wynik na podstawie surowych próbek przed podjęciem działań.

Tak. To szkicuje Groovy na przykładtracwartości, budowanie ładunków i ustawianie zmiennych w elemencie JSR223. Sprawdź każdą sugestię, ponieważ często sięga ona do przestarzałego API BeanShell lub zmiennych, które… JMeter nie ujawnia.

Jedna grupa wątków i jeden sampler. Cała reszta jest opcjonalna. W praktyce dodawany jest nasłuchiwacz, aby wyniki były widoczne, a wartości domyślne lub plik danych są dodawane, gdy te same wartości zaczynają się powtarzać w różnych żądaniach.

Podsumuj ten post następująco: