jmeter processors controllers
Przegląd preprocesorów i kontrolerów w JMeter (część III):
=> Skorzystaj z obszernej serii bezpłatnych samouczków JMeter tutaj
Ten artykuł poprowadzi użytkowników przez użycie preprocesorów, postprocesorów i kontrolerów w JMeter. Kontrolery są bardzo przydatne, ponieważ tworzą scenariusze testowe.
Możesz chcieć przetestować różne scenariusze, w których chcesz skonfigurować własną sekwencję żądań wysyłanych do serwera, aby monitorować czas odpowiedzi i inne czynniki wydajności.
Czego się nauczysz:
- Preprocesory
- Parametry użytkownika
- Przykładowy limit czasu
- Kontrolery
- Przykład czasu rzeczywistego
- Szablon nagrywania JMeter
- Wniosek
- rekomendowane lektury
Preprocesory
Są to elementy, które są wykonywane przed wykonaniem próbnika. Możesz dołączyć Pre-Processor z próbnikiem, dla którego chcesz wprowadzić pewne zmiany w żądaniu.
Najprostszym przypadkiem może być dodanie preprocesora „Sample Timeout” z żądaniem HTTP, tak aby to żądanie działało tylko przez określony czas. Zapewnia również, że ta modyfikacja jest wykonywana tylko dla nadrzędnego Samplera.
Poniżej znajduje się kilka preprocesorów używanych w JMeter:
- Wstępny procesor z łupin fasoli
- Parser linków HTML
- Ponowne zapisywanie adresu URL HTTP
- Preprocesor JDBC
- Przykładowy limit czasu
- Parametry użytkownika
Najczęściej używane są wyjaśnione poniżej z przykładami. Możesz potrzebować wszystkich w swoich projektach lub nie. Spróbuj zidentyfikować scenariusze związane z Twoim projektem i wdrożyć te, które pomogą Ci uwzględnić scenariusze wydajności w czasie rzeczywistym.
Parametry użytkownika
Parametry użytkownika służą do definiowania wartości zmiennych przed ich użyciem w próbnikach. Gdy JMeter wykonuje ten element Pre-Processor, przechowuje wartości w zmiennych, do których mogą się odwoływać dowolne Samplery w tej samej grupie wątków.
Jeśli masz więcej wątków niż liczba użytkowników w „Parametry użytkownika”, dodatkowe wątki będą ponownie sprawdzać wartości.
Na przykład, masz 5 użytkowników w swojej grupie wątków, ale tylko 3 w preprocesorze, a następnie 4thi 5thwątek będzie używał param1 i param2 .
jak przekonwertować znak na ciąg c ++
Przykładowy limit czasu
Ten preprocesor jest używany do definiowania limitu czasu dla żądań.
Na przykład, jeśli ustawiłeś czas próbkowania poza 400 milisekund, wszystkie żądania, które wymagają czasu> 400, będą miały nieudaną odpowiedź. Zobacz zrzuty ekranu poniżej.
Kontrolery
Kontrolery są bardzo ważne w tworzeniu planu testów JMeter w czasie rzeczywistym. Określa kolejność, w jakiej żądania są wysyłane do serwera.
Na przykład, Jeśli chcesz przetestować aplikację internetową, w której chcesz zalogować się raz i przeprowadzić wyszukiwanie, prośby o wybranie pozycji są wykonywane pojedynczo dla wszystkich iteracji. Umożliwiają to kontrolery, zarządzając przepływem żądań trafiających na testowany serwer.
Poniżej znajdują się najczęściej używane kontrolery w JMeter
- Prosty kontroler
- Kontroler modułu
- Tylko raz kontroler
- Kontroler przeplotu
- Kontroler pętli
- Jeśli kontroler
- Dla każdego kontrolera
- Kontroler nagrywania itp.,
Prosty kontroler
Prosty kontroler nie spełnia żadnej określonej funkcji. Jest to po prostu rodzaj pojemnika, w którym możesz przechowywać podobne żądania, aby plan testów był łatwo zrozumiały.
Kontroler pętli
Jeśli chcesz, aby określone żądanie uruchamiało więcej iteracji niż określono w grupie wątków, możesz umieścić je w kontrolerze pętli i wprowadzić liczbę pętli w ustawieniach kontrolera.
Przykład: Jeśli masz grupę wątków z 1 użytkownikiem i 3 iteracjami, wszystkie żądania w tej grupie będą uruchamiane 3 razy. Teraz, jeśli masz dwa próbniki HTTP pod kontrolerem pętli z liczbą pętli 2, oba te próbniki będą działać 1 * 3 * 2 = 6 razy.
jaka jest różnica między java i c ++
Zobacz poniższe zrzuty ekranu, które wyjaśniają to dokładniej
Tylko raz kontroler
Ten kontroler jest używany, gdy chcesz uruchomić określone żądanie tylko raz, nawet jeśli masz wiele wątków w grupie wątków. Najprostszym przykładem, jaki można wziąć pod uwagę, jest „Pobieranie strony głównej witryny internetowej” lub „Logowanie do aplikacji internetowej”. Scenariusz czasu rzeczywistego wymagałby, aby zdarzyło się to tylko raz, a inne żądania, takie jak wyszukiwanie lub edycja / usuwanie czegoś, wydarzyłyby się wiele razy.
Żądanie, które ma być wykonane tylko raz, można umieścić w kontrolerze Tylko raz. Zobacz poniższy zrzut ekranu w celach informacyjnych. Tylko raz ustawienia kontrolera pomijają ustawienia grupy wątków nadrzędnych.
Kontroler nagrywania
Podobnie jak Simple Controller, Recording Controller nie modyfikuje żadnej sekwencji żądań, które są wysyłane do serwera. Jest używany z rejestratorem skryptów HTTP (S). Wszystkie żądania, które są rejestrowane za pomocą tego elementu niebadanego, są zapisywane w kontrolerze nagrywania.
Musisz określić kontroler docelowy, aby zapisać zarejestrowane żądania wysyłane do serwera.
Kontroler nagrywania i rejestrator skryptów HTTP pojawia się, gdy testerzy nie mają informacji o adresach URL żądań i parametrach. Mogą po prostu nagrywać i przechwytywać wszystkie żądania trafiające do ich serwerów. Działa to zarówno w przypadku projektów mobilnych, jak i internetowych.
Kontroler przepustowości
Ten kontroler służy również do sterowania przepływem wykonania. Jak widać na poniższym wycięciu, ten kontroler jest dalej podzielony na dwie części:
Procent wykonania - Ten wybór spowoduje, że Jmeter wykona tylko pewien procent wszystkich iteracji dla Samplerów umieszczonych pod tym kontrolerem. Możesz również zaznaczyć pole wyboru „Na użytkownika”, aby kontrolować to na poziomie użytkownika.
Na przykład, Grupa wątków jest skonfigurowana tak, aby mieć 10 użytkowników, a liczba pętli wynosi 5. W związku z tym całkowita liczba iteracji wynosi 50. Jeśli% wykonania jest ustawione na 50%, wszystkie samplery w kontrolerze przepustowości wykonają tylko 25 iteracji (50% z 50).
Całkowita liczba wykonań - Pozwala to użytkownikom określić liczbę iteracji bezpośrednio dla próbników zawartych w tym kontrolerze.
Kontroler przeplotu
Ten kontroler umożliwia zwiększenie zakresu testów wydajności poprzez modyfikację sekwencji na wiele sposobów, dzięki czemu można przetestować obciążenie serwera, gdy aplikacje trafiają na żądania z różnymi sekwencjami. Kontroler przeplotu dokonuje alternatywnych wyborów z próbnikami pod nim.
W przypadku, gdy w tym bloku znajdują się inne kontrolery, takie jak Simple Controller, kontroler przeplotu daje przywilej wyboru jednego próbnika z kontenera dla każdej iteracji. Aby dokładniej to wyjaśnić, rozważ poniższy plan testów.
Tak więc Jmeter będzie iterował naprzemiennie między kontrolerami dla każdej iteracji. Dlatego kolejność zostanie wymieniona poniżej
Wniosek1 -> Wniosek3 -> Wniosek 5 - Wniosek2 -> Wniosek4 -> Wniosek6
Zobacz poniższe wyniki narzędzia JMeter z liczbą wątków = 2 i liczbą pętli = 2.
W powyższym przykładzie Jmeter przeplata z następną pętlą / iteracją. W kontrolerze przeplotu są ustawienia, które mogą spowodować, że narzędzie JMeter będzie wysyłać alternatywne żądania z każdym nowym wątkiem.
Zobacz wyniki poniżej. Jest to przydatne w scenariuszach, w których chcesz, aby obciążenie sekwencyjne lub współbieżne wpływało na serwery z inną sekwencją żądań z tej samej maszyny.
Losowy kontroler
Działa prawie jak kontroler Interleave, ale nie wybiera kolejności próbników. Po prostu wybiera losowo kontrolery podrzędne i samplery.
Jeśli kontroler
Jeśli kontroler działa w podobny sposób, wyrażenie IF jest traktowane w dowolnym języku programowania. Warunek jest najpierw sprawdzany, a następnie komponenty w tym kontenerze są wykonywane, jeśli warunek ma wartość TRUE, w przeciwnym razie zostaną wykonane elementy poza kontrolerem IF.
Przykład : Kontynuując jeden z wcześniejszych przykładów dotyczących kontrolera z przeplotem, teraz jeden z dwóch kontrolerów z przeplotem został utrzymany w kontrolerze IF i warunku „$ (COUNT)<10 is added as a condition. Variable COUNT is defined in config element “User Defined Variables” and is given a value equal to 11. Configuration is described below
Definiowanie i przypisywanie wartości do zmiennej COUNT.
Definiowanie warunku w Jeśli kontroler ustawienia. Jmeter zweryfikuje ten warunek i jeśli TRUE, wykona bloki w tym kontenerze.
Jak widać na poniższym planie testów, tylko Request3, Request4 i Request5 zostaną wykonane w przypadku, gdy warunek IF zostanie oceniony jako Fałszywy .
While Controllers
Ten kontroler wykonuje komponenty pod nim, dopóki warunek nie stanie się fałszywy.
Na przykład, powiedz, że mamy warunek, podczas gdy ($ (count)<10), it will execute the child elements until the condition is false. To test this, there should be a counter which gets increment or decrement on each iteration and then condition is evaluated. Config Element “Counter” can be used to serve this purpose.
Skonfiguruj element konfiguracyjny „Licznik”, aby rozpoczynał się od 1, a następnie zwiększał przy każdej iteracji. Zobacz poniżej, aby uzyskać więcej wyjaśnień:
qa lub ba, co jest lepsze
Resztę kontrolerów omówimy w naszych samouczkach wideo.
Przykład czasu rzeczywistego
Rozważmy scenariusz, w którym zespół testujący nie zna adresów URL i parametrów wszystkich żądań trafiających do testowanego serwera. Teraz, aby przetestować serwer, muszą rejestrować żądania, a następnie modulować obciążenie sekwencyjnie lub jednocześnie i tworzyć na ich podstawie scenariusze do testowania wydajności.
Kroki
- Dodaj szablon w Jmeter dla kontrolera nagrywania
- Ustaw serwer proxy w przeglądarce i wybierz ten sam port w rejestratorze skryptów HTTP (s)
- Zapisz prośby
- Zmodyfikuj plan testów i zwiększ obciążenie
- Pogrupuj odpowiednio transakcje
- Wypróbuj różne kombinacje żądań
Szablon nagrywania JMeter
JMeter ma również wstępnie zdefiniowany szablon. Wybierz opcję „Szablon” z menu Plik. Po wybraniu szablonu w oknie, które się otworzy, wybierz opcję „Nagrywanie” i kliknij Utwórz.
Zaraz po wybraniu tego szablonu rejestrowania zobaczysz, że niektóre składniki zostały już dodane do planu testów.
- Rejestrator skryptów HTTP (s) w obszarze Work Bench
- Domyślne ustawienia żądania HTTP i Menedżer plików cookie HTTP
- Kontroler nagrywania w grupie wątków.
Możesz albo skonfigurować ustawienia proxy w przeglądarce, aby komunikować się z serwerem proxy JMeter, albo użyć rozszerzenia CHROME Blazemeter, aby zarejestrować żądania, a następnie wyeksportować plik. jmx do Jmeter. Istnieje wiele innych rozszerzeń do nagrywania skryptu, a następnie eksportowania go do JMeter. Narzędzie BADBOY dobrze współpracuje również z Jmeterem do nagrywania hitów internetowych i mobilnych.
Kliknij. jmx, aby wyeksportować nagrane żądanie do Jmeter. Teraz z Jmeter otwórz plik. jmx i przejrzyj żądania i parametry powiązane z każdym żądaniem.
Wniosek
Zakłada się, że wszyscy musieliście już bardzo dobrze zapoznać się z podstawową logiką JMeter, jak symuluje ładowanie, jak grać z różnymi typami samplerów, jak sterować przepływem wykonania za pomocą kontrolera i za pomocą zmiennych i funkcje do uruchamiania pętli w iteracjach. To z pewnością nie koniec serii samouczków na temat JMeter.
Istnieje wiele samouczków wideo do naśladowania, które poprowadzą testerów z większą liczbą rąk do różnych scenariuszy w Jmeter i jak każdy komponent JMeter może być najlepiej wykorzystany.
=> Sprawdź pełną listę samouczków wideo JMeter tutaj
Prosimy o podzielenie się z nami swoimi uwagami lub pytaniami.
rekomendowane lektury
- Jmeter Controllers Część 1
- Jmeter Controllers Część 2
- Jak osiągnąć korelację JMeter na przykładzie
- Praca z żądaniami HTTP w JMeter
- Praca z żądaniem FTP w JMeter
- Korzystanie z postprocesora w narzędziu JMeter (ekstraktor wyrażeń regularnych)
- Top 5 wtyczek JMeter i jak ich używać (z przykładami)
- JMeter Timers: Constant, BeanShell i Guassian Random Timer