W tej sekcji dowiemy się o testowaniu wydajności, dlaczego go potrzebujemy, rodzajach testów wydajnościowych i procesie testowania wydajności.
Poniżej znajdują się tematy, które zrozumiemy w tej sekcji:
Co to jest testowanie wydajności?
Jest to najważniejsza część testów niefunkcjonalnych.
Sprawdzanie zachowania aplikacji poprzez zastosowanie pewnego obciążenia nazywa się testowaniem wydajności.
Ogólnie rzecz biorąc, test ten określa, jak szybko serwer odpowiada na żądanie użytkownika.
Podczas testowania wydajności aplikacji skoncentrujemy się na różnych czynnikach, takich jak Czas reakcji, obciążenie i stabilność aplikacji.
Czas odpowiedzi: Czas odpowiedzi to czas, jakiego potrzebuje serwer, aby odpowiedzieć na żądanie klienta.
Obciążenie: Tutaj Load oznacza, że kiedy Liczba N użytkowników korzystających z aplikacji jednocześnie lub wysyłających jednorazowo żądanie do serwera.
Stabilność: O współczynniku stabilności możemy powiedzieć, że gdy N-liczba użytkowników korzysta z aplikacji jednocześnie przez określony czas.
Kiedy używamy testów wydajnościowych?
Przeprowadzimy testy wydajności, gdy oprogramowanie będzie stabilne i przeniesione do wersji produkcyjnej, a dostęp do niego może uzyskać wielu użytkowników jednocześnie, dlatego mogą wystąpić pewne problemy z wydajnością. Aby uniknąć tych problemów z wydajnością, tester przeprowadza jedną rundę testów wydajnościowych.
Ponieważ są to testy niefunkcjonalne, co nie oznacza, że zawsze używamy testów wydajnościowych, przeprowadzamy je tylko wtedy, gdy aplikacja jest funkcjonalnie stabilna.
Uwaga: Testowania wydajności nie można przeprowadzić ręcznie, ponieważ nie można utrzymać jego kosztownych i dokładnych wyników.
Rodzaje testów wydajnościowych
Poniżej przedstawiono rodzaje testów wydajnościowych:
bin do bcd
Omówmy jeden po drugim, aby zapewnić pełne zrozumienie Obciążenie, stres, skalowalność, I Stabilność test wydajności.
Testowanie obciążenia
Testowanie obciążenia służy do sprawdzania wydajności aplikacji poprzez zastosowanie obciążenia mniejszego lub równego żądanemu obciążeniu, co nazywa się testowaniem obciążenia.
Na przykład: Na poniższym obrazku 1000 użytkowników są żądane obciążenie , które podaje klient, oraz 3/sekundę jest bramka co chcemy osiągnąć przeprowadzając testy obciążeniowe.
Test naprężeń
Testy obciążeniowe to testy, które sprawdzają zachowanie aplikacji poprzez zastosowanie obciążenia większego niż pożądane.
Na przykład: Jeśli weźmiemy powyższy przykład i zwiększymy pożądane obciążenie z 1000 do 1100 użytkowników, a celem będzie 4/sekundę. Test warunków skrajnych w tym scenariuszu zakończy się pomyślnie, ponieważ obciążenie jest większe (100 w górę) niż rzeczywiste pożądane obciążenie.
Testowanie skalowalności
Sprawdzanie wydajności aplikacji poprzez zwiększanie lub zmniejszanie obciążenia w poszczególnych wagach (liczba użytkownika) nazywa się testowanie skalowalności . Testowanie skalowalności w górę i w dół nazywane jest testowaniem skalowalności.
Testowanie skalowalności jest podzielone na dwie części, które są następujące:
Testowanie skalowalności w górę
Testuje tam, gdzie my zwiększyć liczbę użytkowników w określonej skali dopóki nie znajdziemy punktu krytycznego. Będziemy używać testów skalowalności w górę, aby znaleźć maksymalną pojemność aplikacji.
Testowanie skalowalności w dół
Testowanie skalowalności w dół jest stosowane, gdy test obciążenia nie został pomyślnie zakończony, a następnie rozpoczyna się zmniejszenie nr. użytkowników w określonym przedziale czasu aż do osiągnięcia celu. Aby łatwo było zidentyfikować wąskie gardło (błąd).
Testowanie stabilności
Sprawdzanie wydajności aplikacji przez przykładanie obciążenia przez określony czas jest znany jako Testowanie stabilności .
Przykład testu wydajności
Weźmy jeden przykład tam, gdzie to zrobimy przetestuj zachowanie aplikacji, gdy pożądane obciążenie jest mniejsze niż 1000 lub równe 1000 użytkowników .
Na poniższym obrazku widzimy, że 100 w górę liczba użytkowników stale rośnie, aby sprawdzić maksymalne obciążenie , co jest również tzw testowanie skalowalności w górę .
1200 → 3,5sek: [nie jest mniejsze lub równe pożądanemu obciążeniu, dlatego tak będzie Ponieść porażkę ]
1300 → 4sek: [nie jest mniejsze lub równe żądanemu obciążeniu. tj., Ponieść porażkę ]
1400 → Rozbił się
Uwaga 1: Testowanie objętości i nasiąkania jest rodzajem testów, ale nie testem wydajności.
Testowanie objętości
Testowanie woluminu to testowanie, które pomaga nam sprawdzić zachowanie aplikacji poprzez włożenie ogromnej ilości obciążenia pod względem danych, co jest znane jako testowanie wolumenu i tutaj skoncentrujemy się na liczbie szybkości transmisji danych niż na liczbie użytkowników .
Uwaga 2:
Objętość jest pojemnością, podczas gdy Obciążenie jest ilością, tj. testowanie obciążenia oznacza nie. użytkowników, a testowanie wolumenowe oznacza ilość danych.
Testowanie namaczania
W tego typu testach sprawdzamy zachowanie aplikacji w środowisku, które nie jest obsługiwane przez długi czas, co jest znane jako testowanie nasiąkania.
ciąg do json Java
Ogólnie rzecz biorąc, testowanie namaczania jest negatywnym typem testów, ponieważ już wiemy, że serwer lub środowisko nie jest wspierane.
Proces testowania wydajności
Testowania wydajności nie można przeprowadzić ręcznie, ponieważ:
- Potrzebujemy dużo zasobów, a podejście to stało się bardziej kosztowne.
- Dokładności nie da się utrzymać, jeśli ręcznie śledzimy czas reakcji.
Proces testowania wydajności będzie się składał z następujących kroków:
- Zidentyfikuj scenariusze wydajności
- Zaplanuj i zaprojektuj skrypt testu wydajności
- Skonfiguruj środowisko testowe i rozłóż obciążenie
- Wykonaj skrypty testowe
- Wynik
- Wynik analizy
- Zidentyfikuj wąskie gardło
- Uruchom ponownie test
Jeśli wykonamy a przepływ dodatni procesu testowania wydajności, może przebiegać według poniższego procesu:
Zidentyfikuj scenariusze wydajności
Po pierwsze, zidentyfikujemy scenariusze wydajności w oparciu o poniższe czynniki:
Najczęściej spotykane scenariusze: Oznacza to, że możemy znaleźć scenariusze wydajności w oparciu o scenariusze, które są powszechnie stosowane, jak w aplikacja Gmail; będziemy występować zaloguj się, skrzynka odbiorcza, wyślij elementy, utwórz wiadomość e-mail i wyloguj się .
Najbardziej krytyczne scenariusze: Scenariusze krytyczne oznaczają regularnie używane i ważne dla aplikacji biznesowej w Gmailu zaloguj się, utwórz, skrzynkę odbiorczą i wyloguj się .
Ogromna transakcja danych: Jeśli mamy ogromne dane, oznacza to, że n-liczba użytkowników korzystających z aplikacji w tym samym czasie.
Kiedy już zidentyfikujemy scenariusze wydajności, przejdziemy do następnego kroku.
Zaplanuj i zaprojektuj skrypt testu wydajności
Na tym etapie zainstalujemy narzędzia na Maszynie Inżyniera Testów i uzyskamy dostęp do serwera testowego, a następnie napiszemy skrypt zgodnie ze scenariuszami testowymi i uruchomimy narzędzie.
Kiedy już zakończymy pisanie scenariusza, przejdziemy do kolejnego kroku.
Skonfiguruj środowisko testowe i rozłóż obciążenie
Po napisaniu skryptów testowych, przed wykonaniem, aranżujemy środowisko testowe. A także zarządzaj narzędziami, innymi zasobami i rozdzielaj obciążenie zgodnie ze „Wzorem użytkowania” lub wspomnij o czasie trwania i stabilności.
Wykonaj skrypty testowe
Kiedy już zakończymy dystrybucję obciążenia, wykonamy, zweryfikujemy i będziemy monitorować skrypty testowe.
Wynik
Po wykonaniu skryptów testowych otrzymamy wynik testu. I sprawdź, czy wynik spełnia cel w podanym czasie reakcji, czy nie, a czas reakcji może być maksymalny, średni i minimalny.
Jeżeli odpowiedź nie spełnia wymaganego czasu reakcji, wówczas zastosujemy przepływ ujemny gdzie wykona poniższe kroki:
Wynik analizy
W pierwszej kolejności przeanalizujemy wynik testu, czy odpowiada on czasowi reakcji, czy też nie.
Zidentyfikuj wąskie gardło
Następnie zidentyfikujemy wąskie gardło (błąd lub problem z wydajnością ). Wąskie gardło może wystąpić z powodu takich aspektów jak problem w kodzie, problem ze sprzętem (dysk twardy, procesor RAM), problemy z siecią, i problem z oprogramowaniem (systemem operacyjnym) . A po znalezieniu wąskiego gardła wystąpimy strojenie (poprawka lub regulacja) aby rozwiązać to wąskie gardło.
Uruchom ponownie test
Po naprawieniu wąskich gardeł uruchom ponownie skrypty testowe i sprawdź wynik, czy spełnia wymagany cel, czy nie.
Problem występuje podczas testów wydajności
Podczas wykonywania testów wydajnościowych aplikacji mogą wystąpić pewne problemy, nazywane także problemami Problem z wydajnością .
Problemy z wydajnością są następujące:
Problem z czasem reakcji
Czas odpowiedzi oznacza, jak szybko serwer odpowiada na żądanie klienta. Jeżeli żądanie użytkownika nie zostanie zrealizowane w określonym czasie, może nastąpić utrata zainteresowania użytkownika konkretnym oprogramowaniem lub aplikacją. Dlatego aplikacja lub oprogramowanie powinno mieć idealny czas reakcji, aby szybko odpowiedzieć na żądanie użytkownika.
Problem ze skalowalnością
Problemy ze skalowalnością pojawiają się, gdy aplikacja nie jest w stanie obsłużyć jednocześnie n-liczby użytkowników i oczekiwanych żądań użytkowników. Dlatego to zrobimy testowanie skalowalności w górę (sprawdź maksymalną pojemność aplikacji) i testowanie skalowalności w dół (kiedy oczekiwany czas nie pokrywa się z czasem rzeczywistym).
sortowanie listy według Java
Wąskie gardło
Wąskie gardło to nieformalna nazwa błędu, który pojawia się, gdy aplikacja jest ograniczona przez jeden komponent i ma zły wpływ na wydajność systemu.
Głównymi przyczynami wąskiego gardła są problemy z oprogramowaniem (kwestia związana z systemem operacyjnym), problemy ze sprzętem (problemy związane z dyskiem twardym, pamięcią RAM i procesorem), I problem z kodowaniem, itp.
Poniżej przedstawiono najczęstsze wąskie gardła wydajności:
- Wykorzystanie pamięci
- Użycie dysku
- Zużycie procesora
- Ograniczenia systemu operacyjnego
- Wykorzystanie sieci
Problemy z szybkością
Kiedy przeprowadzamy testy wydajności aplikacji, powinna ona działać szybciej, aby przyciągnąć zainteresowanie i uwagę użytkownika, ponieważ jeśli prędkość aplikacji będzie niska, może ona stracić zainteresowanie użytkownika aplikacją.
Narzędzia do testowania wydajności
Na rynku dostępne są różne rodzaje narzędzi do testowania wydajności, niektóre z nich to narzędzia komercyjne i narzędzia typu open source.
Narzędzia komercyjne: LoadRunner[HP], WebLOAD, NeoLoad
Narzędzie typu open source: JMeter
LoadRunner
Jest to jedno z najpotężniejszych narzędzi do testowania wydajności, które służy do wspierania testów wydajności dla szerokiego zakresu protokołów, wielu technologii i środowisk aplikacji.
Szybko identyfikuje najczęstsze przyczyny problemów z wydajnością. A także dokładnie przewidzieć skalowalność i pojemność aplikacji.
JMeter
Oprogramowanie Apache JMeter to narzędzie typu open source, które jest w całości aplikacją Java zaprojektowaną do ładowania zachowań testów funkcjonalnych i pomiaru wydajności.
Ogólnie rzecz biorąc, został zaprojektowany do testowania aplikacji internetowych, ale teraz został rozszerzony również o inne funkcje testowe.
Kolejka priorytetowa Java
Apache JMeter służy do testowania wydajności zarówno zasobów statycznych, jak i dynamicznych oraz dynamicznych aplikacji internetowych.
Można go używać do odtworzenia dużego obciążenia serwera, sieci lub obiektu, grupy serwerów w celu przetestowania ich wytrzymałości lub analizy ogólnej wydajności przy różnych typach obciążenia.
WWWŁADUJ
Narzędzie testowe WebLOAD używane do testowania obciążenia, testowania wydajności i testów warunków skrajnych aplikacji internetowych.
Narzędzie WebLOAD łączy wydajność, skalowalność i integralność w ramach jednego procesu weryfikacji aplikacji internetowych i mobilnych.
NeoLoad
Neotys opracowuje narzędzie testowe o nazwie NeoLoad. NeoLoad służy do testowania scenariuszy testów wydajności. Za pomocą NeoLoad możemy znaleźć wąskie gardła w sieci i procesie tworzenia aplikacji mobilnych.
Narzędzie testowe NeoLoad jest szybsze w porównaniu do tradycyjnych narzędzi.
Oprócz nich istnieją inne narzędzia Obciążenie elektryczne, narzędzie do obciążania sieci, LoadUI Pro, StresStimulus, LoadView, LoadNinja i RedLine13, co pomaga przetestować wydajność oprogramowania lub aplikacji.