1. Strona główna
  2. Sylabus dla poziomu zaawansowanego – Techniczny analityk testowy (wersja z 19.10.2012)
  3. 6. Narzędzia testowe i automatyzacja testów
  4. 6.3 Kategorie narzędzi testowych
  5. 6.3.2 Narzędzia do testów wydajnościowych

6.3.2 Narzędzia do testów wydajnościowych

Narzędzia do testów wydajnościowych mają dwie główne funkcje:

  • generowanie obciążenia,
  • pomiar i analiza odpowiedzi systemu na zadane obciążenie.

Generowanie obciążenia odbywa się poprzez zaimplementowanie zdefiniowanego wcześniej profilu produkcyjnego (patrz punkt 4.5.4) w postaci skryptu. Skrypt może zostać zarejestrowany wstępnie dla jednego użytkownika (np. z wykorzystaniem narzędzia nagrywająco-odtwarzającego), a później zaimplementowany dla określonego profilu produkcyjnego przy użyciu narzędzia do testów wydajnościowych. Implementacja musi brać pod uwagę zróżnicowanie danych w poszczególnych transakcjach (lub zbiorach transakcji).

Narzędzia do testów wydajnościowych generują obciążenie przez symulowanie dużej liczby użytkowników („wirtualnych”) realizujących określone profile produkcyjne i generujących dane wejściowe o ustalonej wielkości. Skrypty testujące wydajność często odtwarzają interakcję użytkowników z systemem na poziomie protokołu komunikacyjnego, a nie przez symulowanie interakcji przy użyciu interfejsu GUI, jak to ma miejsce w przypadku standardowych skryptów automatyzacji. Zwykle pozwala to zmniejszyć liczbę odrębnych „sesji” niezbędnych w trakcie testowania. Niektóre narzędzia do generowania obciążenia sterują działaniem aplikacji również za pomocą interfejsu użytkownika, aby dokładniej zmierzyć czas odpowiedzi systemu w warunkach obciążenia.

Narzędzia do testów wydajnościowych dokonują wielu pomiarów, które można przeanalizować w trakcie wykonywania testów lub po ich zakończeniu. Typowe metryki i raporty to:

  • liczba symulowanych użytkowników;
  • liczba i typ transakcji generowanych przez symulowanych użytkowników oraz częstotliwość pojawiania się transakcji;
  • czasy odpowiedzi na poszczególne żądania transakcji zgłaszane przez użytkowników;
  • raporty i wykresy prezentujące obciążenie i czasy reakcji;
  • raporty dotyczące wykorzystania zasobów (np. w funkcji czasu, z podaniem wartości minimalnych i maksymalnych).

Głównymi czynnikami, które należy wziąć pod uwagę podczas wdrażania narzędzi do testów wydajnościowych, są:

  • sprzęt i przepustowość sieci wymagane do wygenerowania obciążenia;
  • kompatybilność narzędzia z protokołami komunikacyjnymi używanymi przez testowany system;
  • elastyczność narzędzia pozwalająca na implementowanie różnych profili produkcyjnych;
  • wymagane funkcje monitorowania, analizy i raportowania.

Ze względu na dużą pracochłonność wymaganą do wytworzenia narzędzi do testów wydajnościowych nie są one zwykle opracowywane w ramach projektu, tylko nabywane. Może jednak okazać się zasadne opracowanie konkretnego narzędzia do testowania wydajności, jeśli z powodu ograniczeń technicznych nie da się skorzystać z gotowego produktu lub jeśli profil obciążenia i realizowane przez niego funkcje są stosunkowo proste.