detail description jmeter components
Przegląd komponentów Jmeter (część II):
=> To jest część serii szkoleń JMeter. Zobacz listę wszystkich samouczków z tej serii tutaj .
Mam nadzieję, że wszyscy musieli przejść przez Wprowadzenie i instalacja JMeter do tego czasu. Kontynuując kolejny z serii, zdecydowanie zalecamy, abyście wszyscy zainstalowali JMeter i ćwiczyli obok siebie.
W tym samouczku czytelnicy zapoznają się z wszystkie komponenty JMeter i jak ich używać w planie testów aby objąć wszystkie możliwe scenariusze testowania wydajności w celu przetestowania AUT (aplikacja w trakcie testowania).
jak odtworzyć plik flash Shockwave
Elementy Jmetera zostały wymienione w poprzednim artykule.
Czego się nauczysz:
- Składniki JMeter
Składniki JMeter
Ponownie zanotuj w celach informacyjnych:
- Plan testów
- ThreadGroup
- Próbniki
- Słuchacze
- Stoł warsztatowy
- Asercje
- Element konfiguracji
- Kontrolery logiczne
- Regulator czasowy
Wszystkie główne składniki Jmeter, takie jak grupa wątków, samplery, nasłuchiwacze i elementy konfiguracji, zostały szczegółowo wyjaśnione w dalszej części artykułu.
Proszę zapoznać się z poniższym schematem blokowym, aby zrozumieć każdy komponent i ich związek z określonymi modułami JMeter.
Teraz zaczęlibyśmy dotykać każdego komponentu Jmetera wraz z przypadkami użycia, aby wiedzieć, jak to działa i jak testerzy mogą je wdrożyć w swoich testach. Pamiętaj, że nie będziemy omawiać wszystkich samplerów, słuchaczy w tym artykule. Będziemy pracować nad najczęściej używanymi, a resztą zajmiemy się w następnym artykule, kiedy będziemy tworzyć plany testów w czasie rzeczywistym.
Plan testów
Tak jak prosty plan testów w testowaniu oprogramowania składa się ze wszystkich kroków, które wykonują skrypt, plan testów JMeter ma ten sam cel. Wszystko, co jest zawarte w planie testów, jest wykonywane w kolejności od góry do dołu lub zgodnie z sekwencją określoną w planie testów.
Plan testów może być tak prosty, jak tylko mógłby być, z Just ThreadGroup, Sampler i Listener i zaczyna być bardziej złożony, gdy tylko zaczniesz dodawać więcej elementów, takich jak elementy konfiguracyjne, preprocesory lub kontrolery.
Jak wszyscy wiemy, JMeter mierzy wydajność poprzez generowanie wirtualnych użytkowników lub wątków, które trafiają do testowanego serwera, tak jakby prawdziwi użytkownicy wysyłali żądania do serwera. Dlatego każdy plan testów powinien mieć wirtualnych użytkowników lub grupę wątków, jak je nazywamy w terminologii JMeter.
Ważne punkty dotyczące planu testów:
- Plan testów należy zapisać przed uruchomieniem
- Pliki Jmeter lub plany testów są zapisywane w postaci plików. Pliki rozszerzeń JMX
- Możesz również zapisać części planu testów jako inny wybór. Na przykład, Jeśli chcesz zapisać próbnik żądań HTTP z Listener, możesz zapisać go jako fragment testowy, aby można go było również używać w innych scenariuszach testowych
- Elementy WorkBench nie są zapisywane w planie testów
Grupa wątków
Grupa wątków to grupa użytkowników, którzy będą uderzać do testowanego serwera jednocześnie lub w określonej z góry kolejności. Grupę wątków można dodać do planu testów, klikając prawym przyciskiem myszy plan testów. JMeter to „rzeczy związane z prawym przyciskiem”, wszystkie opcje są dostępne po kliknięciu prawym przyciskiem myszy.
Możesz zmienić nazwę grupy wątków na własną. Po prostu zmień nazwę i kliknij gdziekolwiek poza oknem Test Plan, zobaczysz, że nazwa się zmienia.
Zobacz poniższy zrzut ekranu, aby dodać grupy wątków
(Uwaga: Kliknij dowolny obraz, aby wyświetlić powiększenie)
Bardzo ważne jest, aby skonfigurować grupę wątków zgodnie z warunkami testowymi.
Na przykład, jeśli chcesz sprawdzić, jak zachowuje się serwer WWW, gdy 100 użytkowników trafia na niego jednocześnie, możesz ustawić grupę wątków jak poniżej:
Zasadniczo istnieją trzy główne parametry, które należy skonfigurować, aby wygenerować rzeczywiste obciążenie lub wirtualnych użytkowników:
- Liczba wątków (użytkownicy) - Określa liczbę wirtualnych użytkowników. Do celów testowych powinniśmy generować tylko ograniczoną ilość obciążenia, ponieważ generowanie ogromnej ilości na raz oznaczałoby zużycie wielu wielu wątków, co ostatecznie może doprowadzić do wysokiego wykorzystania procesora.
- Okres wzrostu - To pole jest bardzo ważne w sterowaniu generowaniem obciążenia. Okres rozruchu określa czas, w którym zostanie wygenerowane całkowite obciążenie.
Przykład 1:
- Oznacza to, że wszystkich 10 użytkowników będzie jednocześnie korzystać z serwerów, gdy tylko zostanie uruchomiony test
Przykład 2:
- Wszyscy musieliście zauważyć pole wyboru „Harmonogram” na powyższym zrzucie ekranu. Jeśli chcesz, aby test został uruchomiony w określonym czasie później, możesz ustawić czasy, jak widać również na poniższym zrzucie ekranu. Oznacza to, że co 1 sekundę nowy użytkownik będzie odwiedzał serwer. Obciążenie nie będzie równoczesne, ale będzie się zwiększać. Do 10thpo drugie, wszyscy użytkownicy trafiliby na żądanie.
- Liczba pętli - Określa, ile razy zostanie wykonana grupa wątków. Jeśli zaznaczysz pole wyboru Zawsze, test będzie trwał wiecznie, chyba że ręcznie go zatrzymasz. Można to wykorzystać do przetestowania czegoś w rodzaju „Jeśli serwer nie ulega awarii przy ciągłym ładowaniu przez kilka minut”.
Próbniki
Skąd więc Jmeter wie, jaki typ żądania został wysłany do serwera ???
- To jest przez samplery. Samplery są koniecznością, aby dodać je do planu testów, ponieważ tylko one mogą poinformować Jmeter, jakiego typu żądanie musi zostać przesłane do którego serwera iz dowolnymi wstępnie zdefiniowanymi parametrami, czy nie. Żądania mogą być HTTP, HTTP (s), FTP, TCP, SMTP, SOAP itp.
Próbniki można dodawać tylko do grupy wątków, a nie bezpośrednio w planie testów, ponieważ grupy wątków muszą używać próbnika do wysyłania żądania na testowany adres URL serwera. Próbnik można dodać ścieżką Grupa wątków -> Sampler -> Żądanie HTTP.
Żądania HTTP
Są to najczęściej żądania wysyłane do serwerów. Mówić, na przykład, chcemy, aby trafiało 100 użytkowników https://www.google.com jednocześnie można to zrobić w sposób opisany na poniższym zrzucie ekranu:
testowanie usług internetowych za pomocą pytań do wywiadu soapui
- Ścieżka to nawigacja wewnątrz strony głównej. Na przykład, jeśli chcemy trafić na http://www.google.com/gmail, możemy ustawić „/ Gmail” w ścieżce, a reszta pozostaje taka sama
- Nie trzeba wpisywać „www” w nazwie serwera
- Numer portu jest używany, jeśli używasz dowolnego serwera proxy
- Można ustawić limit czasu połączenia i odpowiedzi, jeśli chcesz mieć test porównawczy czasu połączenia z serwerem i czasu odpowiedzi. Żądanie nie powiedzie się, jeśli serwer potrzebuje więcej czasu na wysłanie odpowiedzi niż skonfigurowany
- Możesz również skonfigurować parametry do wysłania wraz z żądaniem. Na przykład: W niektórych przypadkach może być konieczne wysłanie tokena autoryzacyjnego wraz z żądaniem, więc dodałeś je w żądaniu HTTP, jak poniżej:
Żądania FTP
Ścieżka-> Plan testu-> Grupa wątków-> Sampler-> Żądanie FTP
FTP to skrót od File Transfer Protocol i służy do przesyłania lub pobierania pliku z serwera. Wątki JMeter wysyłają żądania do serwerów FTP w celu przesłania lub pobrania plików stamtąd i mierzą wydajność.
- Plik lokalny to lokalizacja, w której należy zapisać pobrany plik
- Użyj opcji GET, jeśli pobierasz z serwera FTP
- Opcja POST użytkownika, jeśli przesyłasz dowolny plik na serwer FTP
Mamy wielu słuchaczy, które zostaną omówione, kiedy przejdziemy przez kilka prawdziwych planów testowych składających się z samplerów, słuchaczy, elementów konfiguracyjnych itp.
Słuchacze
Tak więc do tej pory widzieliśmy kilka samplerów wysyłających żądania do serwera, ale jeszcze nie przeanalizowaliśmy odpowiedzi. Testowanie wydajności polega na analizowaniu odpowiedzi serwera w różnych formach, a następnie przedstawianiu ich klientowi.
Słuchacze służą do wyświetlania wyników wykonania testów, dzięki czemu testerzy poznają statystyki. W Jmeter mamy około 15 słuchaczy, ale najczęściej używanymi są tabele, drzewa i wykresy.
Zobacz wyniki w tabeli:
Jest to najczęściej używana i łatwo zrozumiała forma słuchaczy. Wyświetla wynik w postaci tabeli z kilkoma ważnymi parametrami wydajności.
Słuchacze można dodawać bezpośrednio w planie testów lub w samplerze. Różnica polega na tym, że kiedy dodasz listener pod sampler, pokaże się tylko wyniki tego samplera. Jeśli dodamy sampler bezpośrednio pod planem testów, wyświetli się wynik dla wszystkich próbników wyżej w hierarchii.
Poniższy zrzut ekranu w celach informacyjnych:
Widzisz wyniki podobne do pokazanych poniżej:
- Czas oczekiwania : Jest to czas odebrania pierwszej informacji, tj. Odebrania pierwszego bajtu danych
- Czas połączenia : Jest to czas potrzebny na nawiązanie połączenia z serwerem
- Okres próbny : Jest to czas potrzebny na otrzymanie pełnych danych
- Próba - Sekwencja numeru próbki
- Bajty - Rozmiar otrzymanych danych.
Wyświetl wyniki w drzewie:
To kolejny najczęściej używany program nasłuchujący, który dostarcza szczegółowych informacji wraz z żądaniem i odpowiedzią. Oprócz przeglądania Json, XML, Text, RegEx można również wyświetlić stronę HTML renderowaną w odpowiedzi.
Jest to bardzo przydatne, ponieważ testerzy mogą dodawać potwierdzenia do otrzymanej odpowiedzi, aby upewnić się, że test przeszedł pomyślnie. Wyniki Jmeter nadal pokazują „Pass”, nawet jeśli odpowiedź nie jest pożądana.
Na przykład: Powiedzmy, że trafiliśmy na żądanie HTTP w dowolnej witrynie www.xyz.com iw odpowiedzi oczekujemy XYZ lub w prostych słowach, kiedy trafimy na tę stronę, strona główna firmy otwiera się z jej nazwą. Jeśli nie umieścimy asercji, Jmeter nadal będzie wyświetlał wyniki, ponieważ trafienie trafiło na serwer.
Poniżej przedstawiono format wyników:
Aby wyświetlić stronę HTML w odpowiedzi, kliknij menu rozwijane w lewym panelu, a następnie wybierz „HTML”, przejdź do karty odpowiedzi i sprawdź stronę, która jest zwracana jako odpowiedź serwera.
Stoł warsztatowy
Środowisko pracy to miejsce, w którym można przechowywać te elementy, które nie są używane w bieżącym planie testów, ale można je później skopiować i wkleić. Podczas zapisywania pliku JMeter komponenty obecne w środowisku roboczym nie są automatycznie zapisywane. Należy je zapisać oddzielnie, klikając prawym przyciskiem myszy i wybierając opcję „Zapisz jako”.
Wtedy wszyscy moglibyście pomyśleć, do czego służy warsztat, w każdym razie łatwo jest dodać dowolny komponent bezpośrednio do planu testów Jmetera.
Powodem posiadania warsztatu było to, że użytkownik mógł przeprowadzić kilka eksperymentów i wypróbować nowe scenariusze. Jak już wiemy, elementy w środowisku roboczym nie są zapisywane, więc użytkownik może dosłownie użyć wszystkiego, a następnie wyrzucić. Istnieje jednak kilka „komponentów niebadanych”, które są dostępne tylko w programie WorkBench.
Są one wymienione tutaj:
- Serwer lustrzany HTTP
- Rejestrator skryptów testowych HTTP (s)
- Wyświetlanie nieruchomości
Rejestrator skryptów testowych HTTP (s) jest najważniejszym elementem niebędącym elementem testowym używanym w narzędziu JMeter. Pomaga testerom w rejestrowaniu skryptu, a następnie konfigurowaniu obciążenia dla każdej transakcji.
Jmeter rejestruje tylko żądanie wysłane do serwera. Nie daj się zmylić funkcjonalnością „Record and Play” QTP / Selenium. Wszystkie żądania są rejestrowane, a testerzy mogą przyłożyć do nich żądane obciążenie, aby zobaczyć zachowanie.
Ten element jest bardzo ważny w scenariuszach, w których testerzy nie wiedzą, jakie są wszystkie żądania z ich aplikacji. Mogą używać rejestratora skryptów HTTP (s) do rejestrowania testowanej aplikacji.
Testowanie wydajnościowe aplikacji mobilnych można również przeprowadzić w ten sposób, konfigurując proxy JMeter, a następnie rejestrując żądania, które nasza aplikacja mobilna wysyła do serwera. Procedura krok po kroku dla testów wydajności urządzeń mobilnych zostanie wyjaśniona w następnym artykule.
Asercje
Do tej pory omówiliśmy, jak JMeter trafia na serwer i jak odpowiedzi są wyświetlane przez słuchaczy. Aby mieć pewność, że otrzymana odpowiedź jest poprawna i zgodna z oczekiwaniami, musimy dodać potwierdzenia. Twierdzenia to po prostu walidacje, które musimy umieścić na odpowiedziach, aby porównać wyniki.
Poniżej znajdują się typy często używanych stwierdzeń:
programy java pytania i odpowiedzi do rozmów kwalifikacyjnych
- Asercja odpowiedzi
- Asercja czasu trwania
- Asercja rozmiaru
- Asercja XML
- Asercja HTML
Asercja odpowiedzi
W Response Assertion możemy dodać własne ciągi wzorców, a następnie porównać je z odpowiedziami otrzymanymi z serwera. Na przykład, wszyscy wiecie, że kod odpowiedzi to 200, gdy jakiekolwiek żądanie zwróci pomyślnie jakąś odpowiedź. Jeśli więc dodamy ciąg wzorca „Kod odpowiedzi = 202”, przypadek testowy powinien zakończyć się niepowodzeniem.
Zobacz poniższe zrzuty ekranu, aby dodać potwierdzenie kodu odpowiedzi.
Teraz, gdy test jest uruchamiany, pokazuje wynik z kolorem czerwonym wskazującym, że wyniki Asercji nie powiodły się.
Asercja czasu trwania
Asercja czasu trwania jest bardzo ważna i sprawdza, czy serwer odpowiedział w określonym czasie. Można to wykorzystać w scenariuszach, w których musimy próbkować 100 żądań i zapewnić, że za każdym razem otrzymamy odpowiedź w ramach wyznaczonego limitu.
Walizka : 10 użytkowników jednocześnie odwiedza serwer „google.com”, a potwierdzenie czasu trwania jest ustawione na 1000 min. Zobacz zrzuty ekranu poniżej:
Asercja XML sprawdza, czy dane odpowiedzi zawierają poprawny dokument XML, a asercja HTML weryfikuje składnię HTML odpowiedzi otrzymanej z serwera.
Elementy konfiguracji
Żądania wysyłane do serwera mogą być dalej parametryzowane za pomocą niektórych elementów konfiguracyjnych, które są wykonywane przed właściwym żądaniem. Prostym przykładem może być odczyt wartości zmiennej z pliku CSV, dla którego jest używana konfiguracja zestawu danych CSV.
Poniżej znajduje się kilka ważnych elementów konfiguracyjnych używanych podczas testowania wydajności aplikacji internetowych i mobilnych
- Konfiguracja zbioru danych CSV.
- Zmienne zdefiniowane przez użytkownika
- Domyślne żądania HTTPS
- Menedżer pamięci podręcznej HTTPS
- Menedżer plików cookie HTTPS
Konfiguracja zbioru danych CSV
Konfiguracja zestawu danych CSV pomaga Jmeterowi w pobieraniu wartości niektórych parametrów z pliku CSV zamiast przekazywania różnych parametrów w każdym oddzielnym żądaniu. Na przykład, jeśli musimy przetestować funkcjonalność logowania z innym zestawem użytkowników i haseł, możemy utworzyć dwie kolumny w pliku CSV i wprowadzić tam wartości, aby JMeter mógł wybrać jedną dla każdego żądania wysyłanego do serwera.
Poniżej znajduje się opis korzystania z danych CSV w celu przetestowania interfejsu API pogody dla różnych miast w Indiach.
- Dodawanie elementu konfiguracji zestawu danych CSV do planu testów
- Tworzenie pliku CSV
- Przekazywanie zmiennej w parametrze żądania. Parametr APPID można generować dynamicznie z http://openweathermap.org/appid
- Uruchamianie testu i przeglądanie wyników.
Zmienne zdefiniowane przez użytkownika
Pomaga Jmeterowi wybrać wartości z predefiniowanej zmiennej. Na przykład, wsparcie, że musisz utworzyć plan testów, w którym musisz dodać wiele żądań HTTP pod tym samym adresem URL i może istnieć scenariusz, w którym klient planuje migrację później do innego adresu URL, aby uniknąć aktualizacji adresu URL w każdym żądaniu możemy powiedzieć JMeterowi, aby wybrał adres URL z UDV (zmiennej zdefiniowanej przez użytkownika), który może zostać później zaktualizowany, aby obsłużyć wszystkie żądania zaktualizowanego adresu URL.
Tak więc, aby uniknąć aktualizacji adresu URL w każdym żądaniu, możemy powiedzieć JMeterowi, aby wybrał adres URL z UDV (zmiennej zdefiniowanej przez użytkownika), który może być później aktualizowany, aby obsługiwał wszystkie żądania zaktualizowanego adresu URL.
Ustawienia domyślne żądania HTTP
Ten element konfiguracji jest bardzo przydatny do określania domyślnych wartości żądań https. Aby lepiej Cię poprowadzić, weź przykład, w którym musimy trafić 50 różnych żądań na serwerze Google.W tym scenariuszu, jeśli dodamy domyślne żądanie HTTP, nie musimy określać nazwy serwera, ścieżki ani żadnych innych właściwości, takich jak numer portu, połączenie właściwości limitu czasu. Cokolwiek określono w elemencie konfiguracji domyślnej żądania HTTP, jest dziedziczone przez wszystkie żądania HTTP.
W tym scenariuszu, jeśli dodamy domyślne żądanie HTTP, nie musimy określać nazwy serwera, ścieżki ani żadnych innych właściwości, takich jak numer portu, właściwości limitu czasu połączenia. Cokolwiek określono w elemencie konfiguracji domyślnej żądania HTTP, jest dziedziczone przez wszystkie żądania HTTP.
Zobacz poniżej, jak dodać domyślne żądanie HTTP i określić serwer i ścieżkę.
Menedżer pamięci podręcznej HTTP i Menedżer plików cookie HTTP są wykorzystywane do tego, aby JMeter zachowywał się jak przeglądarka czasu rzeczywistego. Menedżer pamięci podręcznej HTTP może wyczyścić pamięć podręczną po każdym żądaniu, podczas gdy drugi może zarządzać ustawieniami plików cookie.
Kontrolery logiczne i zegary
Kontrolery logiczne i timery pomagają Jmeterowi kontrolować przepływ transakcji. Zegary zapewniają opóźnienie w każdym wątku, jeśli trzeba przetestować dowolny serwer. Na przykład, jeśli potrzebujemy, aby żądanie FTP czekało 5 sekund po zakończeniu żądania HTTP, możemy dodać tam licznik czasu.
Kontrolery logiczne służą do definiowania przepływu żądań, które są wysyłane do serwera. Umożliwia również przechowywanie żądań dla każdego modułu osobno, takich jak logowanie i wylogowanie.
Wniosek
Do tej pory wszyscy musieliście już zapoznać się ze składnikami JMeter i próbować go używać i musieli stawić czoła pewnym problemom. W następnym artykule zajmiemy się niektórymi scenariuszami testowania wydajności w czasie rzeczywistym, obejmującymi dziedzinę mobilności, aby wszyscy mogli zdobyć więcej praktycznej wiedzy na temat JMeter.
Bądźcie czujni! Następny artykuł pomoże Ci zarządzać swoimi żądaniami, a także analizować wyniki i porównywać z wzorcami testów wydajności.
=>Czytaj dalej część III: Procesory i kontrolery JMeter
=> Kliknij tutaj, aby zapoznać się z samouczkami JMeter: Kompletne bezpłatne szkolenie na JMeter (ponad 20 filmów)
rekomendowane lektury
- Jak osiągnąć korelację JMeter na przykładzie
- Plan testów Jmeter i WorkBench
- Praca z żądaniem FTP w JMeter
- 5 najlepszych wtyczek JMeter i jak ich używać (z przykładami)
- JMeter Timers: Constant, BeanShell i Guassian Random Timer
- Praca z żądaniami HTTP w JMeter
- Jmeter Controllers Część 1
- Jmeter Controllers Część 2