Test obciążenia (komputer)

Przez test obciążenia (tzw. tłumaczenie pożyczki testów obciążenia) rozumie się test oprogramowania, który zwykle generuje bardzo duże obciążenie testowanego systemu i sprawdza jego zachowanie. Symulacji mogą być wykorzystane do tego celu. celem jest

  1. wykrycie błędów nie znalezionych w teście systemu zorientowanego funkcjonalnie /teście integracyjnym,
  2. Spełnienie wymagań niefunkcjonalnych, takich jak: B. wymagane czasy reakcji, a także przetwarzanie ilościowe, które należy udowodnić dla działalności produkcyjnej .
  3. Sprawdź zwymiarowanie wyposażenia sprzętowego.

Test obciążenia jest zatem po teście funkcjonalnym, tj. H. (pod)system musi być w stanie funkcjonalnie stabilnym, aby można go było w ogóle przetestować pod kątem obsługi ładunku.

Wyrażenia

Obciążeniem może być to, że funkcje wykonywane są bardzo szybko jedna po drugiej lub że równoległe czynności wykonywane są przez wirtualnych użytkowników ( multiuser , vUser). Z reguły praca odbywa się bezpośrednio na poziomie protokołu ( protokół sieciowy ).

Można dokonać podstawowego rozróżnienia między (1) pomiarami wydajności i (2) testami obciążeniowymi. Pomiary wydajności powtarzają wybrane przypadki testowe lub poszczególne procesy z testu systemu pod obciążeniem podstawowym: oznacza to, że poszczególne funkcje są sprawdzane pod kątem ich właściwości wydajnościowych, tj. H. wszyscy użytkownicy przeprowadzają ten sam proces, który testuje skalowalność poszczególnych funkcji. Mówi się w tym kontekście transakcji. Testy obciążeniowe w węższym sensie testują całe łańcuchy procesów i mieszankę procesów pod kątem wydajności, tj. H. powiązania między poszczególnymi procesami; w ten sposób symulują konkretne procesy z rzeczywistej eksploatacji i stanowią krok w kierunku osiągnięcia przydatności operacyjnej, której nie należy lekceważyć.Tutaj również skalowalność ma decydujące znaczenie, ale teraz dla całego zestawu procesów. Zakleszczenia w dostępie do bazy danych, które w inny sposób trudno jest przetestować, to często występujący błąd .

Jeśli system jest celowo obciążony poza zdefiniowany limit obciążenia, określa się to jako test warunków skrajnych . Obciążenie (liczba wirtualnych użytkowników) powinno być stopniowo zwiększane poza zdefiniowany limit obciążenia.

Rozpatrywane są następujące pytania:

  • Jak zmienia się czas odpowiedzi w zależności od obciążenia?
  • Czy system może nadal działać w akceptowalny sposób nawet przy dużym obciążeniu?
  • Czy system wykazuje niezdefiniowane zachowanie (np. awaria)?
  • Czy jest jakaś niespójność danych ?
  • Czy system wraca do normy po zmniejszeniu przeciążenia?

W przeciwieństwie do tego, zastosowano testowanie niskiego obciążenia , które celowo jest obsługiwane z małą intensywnością, badanie zachowania interakcji wirtualnego użytkownika i wytwarzanego przez niego sygnału ruchu wiadomości w systemie.

Test obciążenia w dłuższym okresie czasu (np. 48-72 godziny) nazywany jest testem obciążenia ciągłego ; służy przede wszystkim do wykrywania wycieków pamięci .

Najbardziej destrukcyjną formą testu obciążenia jest test awaryjny . Chodzi o sprawdzenie zachowania systemu pod obciążeniem w przypadku awarii elementów systemu. Idealnie służy to do sprawdzania scenariuszy awaryjnych, takich jak: B. terminowe podłączenie dodatkowych zasobów, aby zapobiec całkowitej awarii systemu.

wykonanie

Generowanie danych testowych

Zachowanie testowe jest zwykle definiowane przy użyciu języka skryptowego . Wiele narzędzi umożliwia nagrywanie za pomocą przeglądarki internetowej, podobnie jak makra w Excelu. Odbywa się to głównie za pośrednictwem serwera proxy, który tłumaczy żądania itp. na język skryptowy. Ważnym kryterium jest tutaj łatwość tworzenia testu, ale także zmienność i obsługiwane protokoły (HTTP, HTTPS itp.). Stosowane są również tzw. generatory danych testowych , zwłaszcza w obszarach, w których ważniejsza jest ilość danych niż ich dokładna zawartość . Są to programy, które generują dużą ilość danych zgodnie z ustalonym wzorcem, dokładną wielkość ilości danych można zwykle skonfigurować. Częstym zastosowaniem jest tutaj pomiar szybkości baz danych.

Testowe uruchomienie

W przebiegu testowym zarejestrowane zachowanie (ewentualnie uzupełnione elementami losowymi lub zmiennymi zależnymi od liczników) jest wykonywane jednocześnie w dowolnej liczbie (użytkownicy wirtualni) za pomocą stworzonego skryptu, obciążając w ten sposób aplikację. Ważnym kryterium jest tutaj maksymalne obciążenie, jakie można wygenerować, a także związane z nim wymagania sprzętowe .

Przydatna jest również możliwość rozłożenia generowania obciążenia na kilka komputerów, co oferują niektóre narzędzia. W ten sposób można zminimalizować wpływ przepustowości sieci i ograniczeń sprzętowych komputera generującego obciążenie. W ostatnim czasie niektóre komercyjne narzędzia integrują możliwość integracji dodatkowych generatorów obciążenia w chmurze .

Narzędzie zbiera jak najwięcej danych podczas przebiegu testowego. Zasadniczo dzieje się to bezpośrednio po stronie aplikacji generującej obciążenie (czasy odpowiedzi, kody błędów itp.). Niektóre narzędzia oferują również dodatkowe opcje monitorowania niektórych serwerów WWW / baz danych (np. IIS, Apache, MSSQL) lub serwerów aplikacji (Tomcat itp.) w celu bezpośredniej identyfikacji relacji (np. wysoki czas odpowiedzi vs dostęp do bazy danych). Akwizycja danych może jednak również odbywać się w sposób modularny (programy pomocnicze np. na serwerze testowanej aplikacji). Ważne jest, aby oferować jak najwięcej opcji zbierania różnych danych.

ocena

Niektóre kluczowe dane (np. czas odpowiedzi w porównaniu z czasem, limity czasu w porównaniu z liczbą użytkowników itp.) są zwykle dostępne do oceny w plikach dziennika lub wykresach zależnych od czasu. Dobre (głównie komercyjne) narzędzia oferują również opcje, m.in. B. wykorzystanie funkcji (auto)korelacji do analizy zależności w zachowaniu (np. wysoki czas odpowiedzi vs wywołanie określonej strony itp.).

Normy

Jako przewodnik do planowania testu obciążenia i wydajności, DIN 66273 jest odpowiednim punktem wyjścia. Jest to zawarte w międzynarodowej normie ISO 14756 i standaryzuje terminy oraz procedury pomiaru i oceny wydajności złożonych systemów informatycznych.

Dla oprzyrządowania wniosków o wydajność i czas reakcji pomiaru Pomiar Response Application (ARM) standard został przyjęty w ramach Open Group . Ten standard definiuje interfejs programistyczny dla języków programowania C i Java .

Narzędzia programowe

Do przeprowadzania testów obciążeniowych dostępne są tak zwane narzędzia do testowania obciążenia. Ogólnie rzecz biorąc, serwer obciążenia jest instalowany w celu wygenerowania obciążenia testowanego systemu. Narzędzia do testowania obciążenia mogą być produkowane samodzielnie lub można korzystać ze standardowego oprogramowania, które oferuje bogactwo funkcji i opcji oceny.

linki internetowe

literatura

  • Röhrle, Jörg: Oparty na regułach generator danych testowych do szybkiego prototypowania aplikacji bazodanowych , Hamburg: Kovač, 1995
  • Stefan Asböck: Testy obciążeniowe dla eConfidence . Segue Software Deutschland GmbH, Hamburg 2001.
  • Mike Loukides, Gian-Paolo Musumeci: Dostrajanie wydajności systemu . Wydanie II. O'Reilly & Associates, Sewastopol 2002.
  • Harry Sneed , Manfred Baumgartner, Richard Seidl : Test systemu – od wymagań do potwierdzenia jakości . 3. Wydanie. Carl Hanser Verlag , 2011, ISBN 978-3-446-42692-4 .
  • Richard Seidl, Manfred Baumgartner, Thomas Bucsics: Podstawowa wiedza z zakresu automatyzacji testów - pojęcia, metody i techniki . Wydanie I. dpunkt.verlag, 2011, ISBN 978-3-89864-724-3 .