stress testing guide
Kompleksowy przewodnik po testach warunków skrajnych dla początkujących:
Podkreślanie czegokolwiek poza punktem powoduje poważne konsekwencje dla ludzi, maszyny lub programu. Powoduje poważne uszkodzenia lub całkowicie je uszkadza.
Podobnie w tym samouczku dowiemy się, jak testować aplikacje internetowe w warunkach skrajnych wraz z jego efektami.
Aby uniknąć trwałego uszkodzenia twoich aplikacji lub stron internetowych, gdy są one zestresowane, tj. Mocno obciążone, musimy znaleźć punkt krytyczny i z kolei rozwiązanie, które pozwoli uniknąć takich warunków. Pomyśl tylko, jak by to było, gdyby Twoja witryna zakupów przestała działać podczas świątecznej wyprzedaży. Jaka byłaby strata?
Poniżej wymieniono kilka przykładów rzeczywistych przypadków, w których bardzo ważne jest przeprowadzenie testów warunków skrajnych aplikacji lub witryny:
jak otworzyć plik binarny
# 1) Komercyjne aplikacje do zakupów lub strony internetowe muszą przeprowadzać testy warunków skrajnych, ponieważ obciążenie staje się bardzo wysokie podczas festiwali, wyprzedaży lub okresu promocji.
#dwa) Aplikacje finansowe lub strony internetowe muszą przeprowadzać testy warunków skrajnych, ponieważ obciążenie wzrasta w momentach, gdy udział firmy rośnie, wiele osób loguje się na swoje konta, aby kupić lub sprzedać, witryny sklepów internetowych przekierowują „bankowców internetowych” do płatności itp.
# 3) Aplikacje internetowe lub e-mailowe muszą zostać poddane testom warunków skrajnych.
# 4) Witryny lub aplikacje społecznościowe, blogi itp. Muszą zostać poddane testom wytrzymałościowym itp.
Czego się nauczysz:
- Co to są testy warunków skrajnych i dlaczego przeprowadzamy testy warunków skrajnych?
- Strategia testów warunków skrajnych
- Testowanie warunków skrajnych dla aplikacji mobilnych
- Różnica między testami obciążenia a testami obciążeniowymi
- Przykładowe przypadki testowe
- 5 najlepszych programów do testów warunków skrajnych
- Wniosek
- rekomendowane lektury
Co to są testy warunków skrajnych i dlaczego przeprowadzamy testy warunków skrajnych?
Testowanie warunków skrajnych definiuje się jako proces testowania sprzętu lub oprogramowania pod kątem jego stabilności w warunkach dużego obciążenia. To testowanie ma na celu znalezienie numerycznego punktu, w którym system się zepsuje (pod względem liczby użytkowników i żądań serwera itp.) I związanej z tym obsługi błędów.
Podczas testów warunków skrajnych testowana aplikacja (AUT) jest bombardowana dużym obciążeniem przez określony czas, aby zweryfikować punkt zerwania i sprawdzić, jak dobrze rozwiązano obsługę błędów.
Przykład: Podczas próby skopiowania pliku o rozmiarze 7-8 GB program MS Word może wyświetlić komunikat o błędzie „Brak odpowiedzi”.
Bombardowałeś program Word plikiem o dużych rozmiarach i nie mógł on przetworzyć tak dużego pliku, w wyniku czego został zawieszony. Zwykle zabijamy aplikacje z Menedżera zadań, gdy przestają odpowiadać, powodem jest to, że aplikacje są zestresowane i przestają odpowiadać.
Oto kilka technicznych powodów, dla których warto przeprowadzić testy obciążeniowe:
- Aby zweryfikować zachowanie systemu w warunkach nietypowego lub ekstremalnego obciążenia.
- Aby znaleźć wartość liczbową użytkowników, żądań itp., Po których system może się zepsuć.
- Obchodź się z błędem łaskawie, wyświetlając odpowiednie komunikaty.
- Aby być dobrze przygotowanym na takie warunki i podjąć środki ostrożności, takie jak czyszczenie kodu, czyszczenie DB itp.
- Weryfikacja obsługi danych przed awarią systemu, tj. Sprawdzenie, czy dane zostały usunięte, zapisane czy nie itp.
- Aby zweryfikować zagrożenie bezpieczeństwa w takich warunkach itp.
Strategia testów warunków skrajnych
Jest to rodzaj testów niefunkcjonalnych, które zwykle przeprowadza się po zakończeniu testów funkcjonalnych witryny lub aplikacji. Przypadki testowe, sposób testowania, a nawet narzędzia do testowania mogą się czasami różnić.
Oto kilka wskazówek, które pomogą Ci zaplanować proces testowania:
- Zidentyfikuj scenariusze, funkcje itp., Które będą najczęściej używane i mogą powodować uszkodzenie systemu. Podobnie jak w przypadku aplikacji finansowej, najczęściej używaną funkcją jest przesyłanie pieniędzy.
- Zidentyfikuj obciążenie, jakie może wystąpić w systemie w danym dniu, tj. Zarówno maksymalne, jak i minimalne.
- Utwórz osobny plik plan testów , scenariusz, przypadek testowy i zestaw testów.
- Użyj 3-4 różnych systemów komputerowych do testowania z inną pamięcią, procesorem itp.
- Użytkownicy 3-4 różnych przeglądarek dla aplikacji internetowych w różnych wersjach.
- W idealnym przypadku znajdź wartość poniżej punktu przerwania, w punkcie przerwania i wartość po punkcie przerwania (gdy system w ogóle nie zareaguje), utwórz platformę testową i dane wokół nich.
- W przypadku aplikacji internetowych spróbuj również wykonać test obciążeniowy z wolną siecią.
- Nie przeskakuj do zakończenia testów w ciągu jednej lub dwóch rundy, wykonuj te same testy przez co najmniej 5 rund, a następnie podsumuj swoje wyniki.
- Znajdź idealny czas odpowiedzi serwera WWW i jaki jest czas w punkcie przerwania.
- Znajdź zachowanie aplikacji w punkcie zerwania w różnych punktach aplikacji, takich jak zwykłe uruchamianie aplikacji, logowanie, wykonywanie niektórych działań po zalogowaniu się itp.
Testowanie warunków skrajnych dla aplikacji mobilnych
Testy warunków skrajnych dla natywnych aplikacji mobilnych różnią się nieco od testów aplikacji internetowych. W aplikacjach natywnych przeprowadzany jest test warunków skrajnych dla powszechnie używanych ekranów poprzez dodanie ogromnych danych.
Poniżej przedstawiono weryfikację, która jest przeprowadzana w ramach tego testowania dla natywnych aplikacji mobilnych:
- Aplikacja nie ulega awarii, gdy wyświetlane są ogromne ilości danych. Podobnie jak w przypadku aplikacji do wysyłania e-maili, około 4-5 lakh otrzymanych kart e-mailowych, w przypadku aplikacji zakupowych, ta sama liczba kart przedmiotów itp.
- Przewijanie jest wolne od błędów, a aplikacja nie zawiesza się podczas przewijania w górę lub w dół.
- Użytkownik powinien mieć możliwość przejrzenia szczegółów karty lub wykonania jakiejś czynności na karcie z ogromnej listy.
- Wysyłanie setek tysięcy aktualizacji z aplikacji na serwer, np. Oznaczanie pozycji jako „Ulubiony”, dodawanie produktu do koszyka itp.
- Spróbuj załadować aplikację z ogromnymi danymi w sieci 2G, gdy aplikacja zawiesza się lub ulega awarii, powinna wyświetlić odpowiedni komunikat.
- Wypróbuj scenariusz od końca do końca, gdy są ogromne dane i wolna sieć 2G itp.
Oto Twoja strategia testowania w aplikacjach mobilnych:
- Zidentyfikuj ekrany z kartami, obrazami itp., Aby kierować reklamy na te ekrany z ogromnymi danymi.
- Podobnie, określ funkcje, które będą najczęściej używane.
- Tworząc łóżko testowe, staraj się używać telefonów ze średniej i niskiej półki.
- Spróbuj przeprowadzić testy jednocześnie na urządzeniach równoległych.
- Unikaj tego testowania na emulatorze i symulatorach.
- Unikaj testowania połączeń Wi-Fi, ponieważ są one silne.
- Spróbuj przeprowadzić co najmniej jeden test warunków skrajnych w terenie itp.
Różnica między testami obciążenia a testami obciążeniowymi
S.No. | Test naprężeń | Testowanie obciążenia |
---|---|---|
1 | To testowanie ma na celu ustalenie punktu krytycznego systemu. | Te testy są wykonywane w celu sprawdzenia wydajności systemu przy oczekiwanym obciążeniu. |
dwa | Testy te mają na celu sprawdzenie, czy system zachowa się zgodnie z oczekiwaniami, jeśli obciążenie przekroczy normalny limit. | To testowanie ma na celu sprawdzenie czasu odpowiedzi serwera na oczekiwane określone obciążenie. |
3 | W tym teście weryfikowana jest również obsługa błędów. | Obsługa błędów nie jest intensywnie testowana. |
4 | Sprawdza również pod kątem zagrożeń bezpieczeństwa, wycieków pamięci itp. | Żadne takie testy nie są obowiązkowe. |
5 | Sprawdza stabilność systemów. | Sprawdza niezawodność systemu. |
6 | Testowanie jest wykonywane przy więcej niż maks. możliwa liczba użytkowników, wniosków itp. | Testowanie odbywa się przy maksymalnej liczbie użytkowników, żądań itp. |
Testowanie obciążeniowe a testy obciążeniowe
Przykładowe przypadki testowe
Przypadki testowe, które utworzysz do testów, będą zależeć od aplikacji i jej wymagań. Przed utworzeniem przypadków testowych upewnij się, że znasz obszary zainteresowania, tj. Funkcje, które będą miały tendencję do awarii w warunkach nietypowego obciążenia.
Oto kilka przykładowych przypadków testowych, które możesz uwzględnić w swoich testach:
- Sprawdź, czy wyświetlany jest właściwy komunikat o błędzie, gdy system osiągnie punkt przerwania, tj. Przekroczy maksymalną liczbę. dozwolonych użytkowników lub żądań.
- Sprawdź powyższy przypadek testowy pod kątem różnych kombinacji pamięci RAM, procesora, sieci itp.
- Sprawdź, czy system działa zgodnie z oczekiwaniami, gdy maksymalna liczba wynosi. użytkowników lub wniosków jest przetwarzanych. Sprawdź również powyższy przypadek testowy dla różnych kombinacji pamięci RAM, procesora, sieci itp.
- Sprawdź, czy chociaż więcej niż dozwolone nie. użytkowników lub żądań wykonuje tę samą operację (np. kupowanie tych samych przedmiotów ze sklepu internetowego lub przelew pieniędzy itp.) i jeśli system przestanie odpowiadać, pojawi się odpowiedni komunikat o błędzie dotyczący danych (nie zapisano? - zależy od realizacja).
- Sprawdź, czy więcej niż dozwolone nie. użytkowników lub żądań wykonuje różne operacje (np. loguje się jeden użytkownik, jeden użytkownik uruchamia aplikację lub łącze internetowe, jeden użytkownik wybiera produkt itp.), a jeśli system przestanie odpowiadać, pojawi się odpowiedni komunikat o błędzie dotyczący danych (nie zapisano? - zależy od implementacji).
- Sprawdź, czy czas odpowiedzi dla użytkowników lub żądań przełomowych jest wartością akceptacji.
- Sprawdź działanie aplikacji lub witryny internetowej, gdy sieć działa bardzo wolno. W przypadku przekroczenia limitu czasu powinien pojawić się odpowiedni komunikat o błędzie.
- Sprawdź wszystkie powyższe przypadki testowe dla serwera, na którym działa więcej niż jedna aplikacja, aby sprawdzić, czy ma to wpływ na inną aplikację itp.
Przed wykonaniem testów upewnij się, że:
jak porównać dwa pliki w unixie
- Wszystkie awarie funkcjonalne testowanej aplikacji są naprawiane i weryfikowane.
- Kompletny system end-to-end jest gotowy i przetestowany pod kątem integracji.
- Nie są wykonywane żadne nowe wpisy kodu, które wpłyną na testowanie.
- Inne zespoły są informowane o Twoim harmonogramie testów.
- Systemy kopii zapasowych są tworzone w przypadku poważnych problemów.
5 najlepszych programów do testów warunków skrajnych
Wykonywanie ręcznych testów warunków skrajnych jest również bardzo skomplikowaną i żmudną pracą. Może również nie przynieść oczekiwanych rezultatów.
Narzędzia do automatyzacji mogą przynieść oczekiwane rezultaty, a za ich pomocą stosunkowo łatwo jest stworzyć wymagane stanowisko testowe. Może się zdarzyć, że narzędzia, których używasz do normalnych testów funkcjonalnych, mogą nie wystarczyć do testów warunków skrajnych.
Dlatego to Ty i Twój zespół możecie zdecydować, czy chcą mieć oddzielne narzędzie przeznaczone wyłącznie do tych testów. Dla innych korzystne jest również prowadzenie apartamentu w nocy, aby ich praca nie była utrudniona. Korzystając z narzędzi do automatyzacji, możesz zaplanować działanie pakietu w nocy, a wyniki będą gotowe następnego dnia.
Poniżej znajduje się lista najbardziej polecanych narzędzi:
# 1) Load Runner:
LoadRunner to narzędzie zaprojektowane przez HP do testów obciążeniowych, ale może być również używane do testów warunków skrajnych.
Wykorzystuje VuGen, czyli Virtual User Generator do tworzenia użytkowników i żądań testów obciążeniowych i obciążeniowych. To narzędzie ma dobre raporty analityczne, które mogą pomóc w rysowaniu wyników w postaci wykresów, wykresów itp.
# 2) Neoload:
Neoload to płatne narzędzie pomocne w testowaniu aplikacji internetowych i mobilnych.
Może symulować ponad 1000 użytkowników, aby zweryfikować wydajność systemu i znaleźć czas odpowiedzi serwera. Integruje się również z chmurą zarówno w przypadku testów obciążenia, jak i testów warunków skrajnych. Zapewnia dobrą skalowalność i jest bardzo łatwy w użyciu.
# 3) JMeter:
JMeter jest narzędziem typu open source, które działa z JDK 5 i nowszymi wersjami. Głównym celem tego narzędzia jest testowanie aplikacji internetowych. Może być również używany do testowania połączeń z bazami danych LDAP, FTP, JDBC itp.
# 4) Szlifierka:
Grinder to narzędzie typu open source i oparte na języku Java, które jest używane do testów obciążeniowych i obciążeniowych.
Parametryzację można przeprowadzić dynamicznie podczas wykonywania testów. Ma dobre raportowanie i asercje, które pomogą Ci lepiej analizować wyniki. Posiada konsolę, której można używać jako IDE do tworzenia i edytowania testów oraz agentów do tworzenia obciążenia do celów testowych.
# 5) WebLoad:
Webload narzędzie ma zarówno wersję bezpłatną, jak i płatną. Ta bezpłatna edycja umożliwia utworzenie do 50 użytkowników.
To narzędzie obsługuje sprawdzanie stresu w aplikacjach internetowych i mobilnych. Obsługuje różne protokoły, takie jak HTTP, HTTPS, PUSH, AJAX, HTML5, SOAP itp. Posiada IDE, konsolę generowania obciążenia, pulpit analityczny i integracje (do integracji z Jenkins, narzędziami APM itp.).
Wniosek
Testy warunków skrajnych całkowicie koncentrują się na testowaniu systemu w ekstremalnych warunkach obciążenia, aby znaleźć punkt zerwania i sprawdzić, czy wyświetlane są odpowiednie komunikaty, gdy system nie odpowiada. Podczas testowania kładzie nacisk na pamięć, procesor itp. I sprawdza, jak dobrze się regenerują.
Testowanie warunków skrajnych jest rodzajem testowania niefunkcjonalnego i jest zwykle wykonywane po testach funkcjonalnych. Jeśli istnieje również wymóg testowania obciążenia, to badanie to można przeprowadzić jako skrajny przypadek testu obciążenia. W 90% przypadków to samo narzędzie do automatyzacji może być używane zarówno do testów obciążeniowych, jak i obciążeniowych.
Mam nadzieję, że zyskałbyś świetny wgląd w koncepcję testów warunków skrajnych !!
rekomendowane lektury
- Testowanie obciążenia za pomocą samouczków HP LoadRunner
- Testy wydajnościowe a testy obciążeniowe a testy obciążeniowe (różnica)
- Kompletny przewodnik po testowaniu obciążenia dla początkujących
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Testy alfa i testy beta (kompletny przewodnik)
- Przewodnik dla początkujących po testach penetracyjnych aplikacji internetowych
- Testy obciążenia, obciążenia i wydajności aplikacji internetowych przy użyciu WAPT
- Testy funkcjonalne a testy niefunkcjonalne