Trwa sprzedaż biletówTesting Ground Conference, bilety 30% taniej

Organizujemy Testing Ground Conference, jedną z największych konferencji QA w Polsce. Kod poniżej daje 30% na każdy bilet.

Kup bilety
Testy wydajnościowe: co to jest, rodzaje, metryki, narzędzia i jak je przeprowadzić przed sezonem

Czas czytania: około 13 minut

Sklep działa bez zarzutu przez jedenaście miesięcy, a w Black Friday, w dniu, który ma zrobić kwartał, strona ładuje się dwanaście sekund, koszyk gubi produkty, a płatność zwraca błąd 502. Nikt nie zmienił kodu. Zmieniła się liczba ludzi, którzy weszli naraz. Testy wydajnościowe istnieją po to, żeby ten dzień przećwiczyć wcześniej, na środowisku testowym, z ruchem sztucznym, ale w liczbach prawdziwych.

W tym tekście wyjaśniamy, czym są testy wydajnościowe według ISTQB, jakie mają rodzaje i czym różni się test obciążeniowy od przeciążeniowego, jakie problemy wykrywają, które metryki liczą się naprawdę, jak przeprowadzić je krok po kroku, jakie narzędzia wybrać, kiedy je uruchamiać, ile kosztują i jakie błędy popełniają zespoły. Piszemy z projektów, w których system klienta wytrzymał sezon przy ruchu większym o 120 procent, a liczba awarii w szczycie spadła o 72 procent.

Testy wydajnościowe w trzech zdaniach

Testy wydajnościowe sprawdzają, jak system zachowuje się pod obciążeniem: jak szybko odpowiada, ile użytkowników obsłuży, kiedy się degraduje i czy wraca do sprawności po szczycie. Należą do testów niefunkcjonalnych, bo nie pytają, czy funkcja działa, tylko czy działa wystarczająco szybko i stabilnie dla realnej liczby osób. Główne rodzaje to testy obciążeniowe, przeciążeniowe, skoków obciążenia, wytrzymałościowe, skalowalności i wolumenowe, a wykonuje się je narzędziami takimi jak JMeter, Gatling, k6 czy Locust, nigdy ręcznie.

Testy wydajnościowe: co to jest i co sprawdzają

Czym są testy wydajnościowe?

Testy wydajnościowe to testy sprawdzające, w jakim stopniu system spełnia wymagania dotyczące wydajności: czasu odpowiedzi, przepustowości i wykorzystania zasobów pod określonym obciążeniem; nie szukają błędów funkcjonalnych, tylko odpowiadają, czy system wytrzyma realny ruch.

Tak ujmuje to słownik ISTQB: testowanie wydajnościowe to testowanie mające określić wydajność produktu. Za tym krótkim zdaniem kryją się trzy pytania, które zadaje każdy, kto odpowiada za system: ile czasu użytkownik czeka na odpowiedź, ilu użytkowników naraz system obsłuży bez degradacji i co się dzieje, gdy będzie ich więcej, niż zakładano. Testy wydajnościowe odpowiadają na nie liczbami, nie przypuszczeniami.

Testy wydajnościowe należą do testów niefunkcjonalnych, obok testów bezpieczeństwa, użyteczności i dostępności. Wymagają dedykowanych narzędzi generujących ruch, środowiska zbliżonego do produkcyjnego i kompetencji do czytania wyników. Zespół, który „przetestował wydajność”, otwierając aplikację na pięciu laptopach naraz, nie wykonał testu wydajnościowego, tylko uspokoił sumienie.

Dlaczego testy wydajnościowe mają znaczenie biznesowe?

Wydajność jest cechą, która zamienia się w pieniądze najszybciej ze wszystkich cech jakości: każda dodatkowa sekunda ładowania obniża konwersję, każda awaria w szczycie to utracony przychód z najdroższego dnia w roku, a przewymiarowana infrastruktura kupiona „na wszelki wypadek” to koszt stały bez pokrycia.

Google w swoich wytycznych Core Web Vitals przyjmuje, że największy element strony powinien pojawić się w 2,5 sekundy lub szybciej, żeby doświadczenie było dobre, i mierzy to u 75 procent użytkowników, nie u najszybszych. To próg dla stron publicznych, ale logika jest ta sama w systemach wewnętrznych: pracownik obsługi klienta, który czeka osiem sekund na kartę klienta przy każdej rozmowie, obsłuży w ciągu dnia mniej rozmów, i to jest koszt, który da się policzyć.

+120%
ruchu w sezonie wakacyjnym wytrzymał system rezerwacji naszego klienta z branży automotive bez utraty stabilności
72%
mniej awarii w okresach szczytowych u klienta z e-commerce po uporządkowaniu testów
12%
wzrost konwersji w tym samym sklepie dzięki stabilnemu procesowi zakupowemu i płatnościom
55%
mniej błędów krytycznych w procesach rezerwacji u klienta z automotive

Liczby z projektów dla Autono (automotive i wynajem samochodów) oraz Argos (e-commerce), potwierdzone przez klientów. W obu przypadkach testy wydajnościowe nie były osobnym projektem, tylko częścią przygotowania do sezonu: najpierw test odzwierciedlający spodziewany ruch, potem naprawa wąskich gardeł, potem powtórka. Jak to wygląda w sklepie internetowym przed Black Friday, opisujemy w tekście o testowaniu e-commerce.

Jakie są rodzaje testów wydajnościowych?

ISTQB wyróżnia testy obciążeniowe (spodziewany ruch), przeciążeniowe (ruch ponad limit), skoków obciążenia (nagły wzrost), wytrzymałościowe (długi czas), skalowalności (czy da się dołożyć zasobów) i wolumenowe (duże ilości danych); każdy odpowiada na inne pytanie i żaden nie zastępuje pozostałych.

Rodzaj Pytanie Przykład Kiedy
Obciążeniowy (load) jak system działa przy spodziewanym, typowym i szczytowym ruchu czy w Black Friday przy 3 000 równoczesnych użytkowników czas odpowiedzi zostaje poniżej 2 sekund przed każdym większym wydaniem i sezonem
Przeciążeniowy (stress) co się dzieje powyżej limitu i jak system wraca do sprawności przy jakiej liczbie użytkowników system zaczyna odrzucać żądania i czy po spadku ruchu wraca sam przy planowaniu pojemności, przed kampaniami o nieznanym zasięgu
Skoków obciążenia (spike) reakcja na nagły, krótki wzrost ruchu co się dzieje, gdy w minutę po wysłaniu newslettera wchodzi 5 000 osób przed premierami, kampaniami, komunikatami do dużej bazy
Wytrzymałościowy (endurance, soak) stabilność przy stałym obciążeniu przez godziny lub dni czy po 12 godzinach pracy pamięć nie rośnie, a czas odpowiedzi nie pełznie w górę przed wdrożeniem systemów pracujących ciągle, po zmianach w zarządzaniu pamięcią
Skalowalności (scalability) czy dołożenie zasobów daje proporcjonalny wzrost wydajności czy drugi serwer aplikacyjny podwaja przepustowość, czy baza staje się wąskim gardłem przy projektowaniu architektury i planowaniu chmury
Wolumenowy (volume) działanie przy dużych ilościach danych czy raport miesięczny liczy się w tym samym czasie przy 10 milionach rekordów co przy 100 tysiącach przed migracjami danych, w systemach rosnących z czasem

Definicje w słowniku ISTQB: load testing, stress testing, spike testing, endurance testing, scalability testing i volume testing. W praktyce większość projektów zaczyna od testu obciążeniowego i przeciążeniowego, a pozostałe dokłada wtedy, gdy ryzyko tego wymaga: wytrzymałościowy w systemach pracujących bez restartu, skoków w e-commerce i mediach, wolumenowy tam, gdzie dane rosną szybciej niż ruch.

Czym różnią się testy obciążeniowe od przeciążeniowych?

Test obciążeniowy sprawdza, czy system spełnia wymagania przy ruchu, którego się spodziewacie, a test przeciążeniowy szuka punktu, w którym przestaje je spełniać, i sprawdza, jak się wtedy zachowuje; pierwszy mówi „zdaliśmy”, drugi mówi „mamy zapas do tej liczby”.

Kryterium Test obciążeniowy Test przeciążeniowy
Poziom ruchu spodziewany typowy i szczytowy, na przykład 100 procent i 150 procent prognozy rosnący aż do załamania, na przykład 200, 300, 500 procent prognozy
Kryterium zaliczenia czas odpowiedzi, błędy i zasoby w limitach z wymagań system degraduje się przewidywalnie i wraca do sprawności po spadku ruchu
Wynik tak lub nie wobec wymagań, plus wąskie gardła liczba: przy ilu użytkownikach albo żądaniach na sekundę zaczyna się degradacja
Typowe odkrycie wolne zapytanie do bazy, brak indeksu, zbyt mała pula połączeń brak limitów kolejek, brak mechanizmu odrzucania nadmiaru, system nie wraca bez restartu
Ryzyko pominięcia wolna aplikacja w normalny dzień awaria w najgorszym możliwym dniu i nieznany czas powrotu

Najczęstsza pomyłka to test obciążeniowy na poziomie ruchu z codziennego dnia zamiast z dnia szczytowego. Sklep, który ma średnio 200 użytkowników naraz, a w promocji 3 000, nie dowie się z testu na 200 niczego, co go uratuje. Poziom obciążenia w teście bierze się z prognozy najgorszego dnia, nie ze statystyki średniej, bo średnia nie psuje systemów.

Rodzaje testów wydajnościowych: obciążeniowe, przeciążeniowe, wytrzymałościowe

Jakie problemy wykrywają testy wydajnościowe?

Testy wydajnościowe wykrywają wąskie gardła (wolne zapytania, brak indeksów, zbyt małe pule połączeń), wycieki pamięci, złą konfigurację serwera i sieci, brak skalowalności architektury oraz błędy, które pojawiają się tylko przy współbieżności, takie jak blokady i wyścigi.

Wąskie gardła w bazie
Zapytanie, które przy 10 użytkownikach trwa 50 milisekund, a przy 500 blokuje tabelę. Brak indeksu widać dopiero pod obciążeniem
Wycieki pamięci
System działa poprawnie przez godzinę, a po dziesięciu pada. Wykrywa je tylko test wytrzymałościowy, nie krótki test obciążeniowy
Konfiguracja
Zbyt mała pula wątków serwera, limity połączeń, brak cache, kompresja wyłączona, limity czasu ustawione tak, że żądania czekają zamiast padać
Skalowalność
Dołożenie drugiego serwera nic nie daje, bo wszystkie żądania i tak czekają na jedną bazę albo jeden system zewnętrzny
Współbieżność
Dwóch użytkowników kupujących ostatnią sztukę w tej samej sekundzie, zablokowane rekordy, duplikaty zamówień. Błędy niewidoczne w testach funkcjonalnych
Systemy zewnętrzne
Bramka płatności odpowiada w 200 milisekund, a pod obciążeniem w 8 sekund, i cały koszyk czeka. Bez limitu czasu i obsługi błędu system staje razem z nią

Część z tych problemów to nie błędy w kodzie, tylko brak decyzji projektowych: co robić z nadmiarem ruchu, ile czekać na system zewnętrzny, kiedy odrzucić żądanie. Test wydajnościowy zadaje te pytania w środowisku testowym, zanim zada je produkcja. O tym, jak sprawdzać style z systemami zewnętrznymi, piszemy w tekście o testach integracyjnych.

Które metryki wydajności są najważniejsze?

Najważniejsze metryki to czas odpowiedzi w percentylach (p90, p95, p99, nie średnia), przepustowość w żądaniach na sekundę, odsetek błędów, liczba równoczesnych użytkowników oraz wykorzystanie zasobów (procesor, pamięć, połączenia do bazy, sieć); bez celu dla każdej z nich test nie ma kryterium zaliczenia.

Metryka Co mierzy Dlaczego Typowy cel
Czas odpowiedzi p95 czas, w którym mieści się 95 procent żądań średnia ukrywa ogony; p95 poniżej 2 sekund znaczy, że 1 na 20 użytkowników czeka dłużej p95 poniżej 2 s dla stron, poniżej 500 ms dla API, ustalane z biznesem
Przepustowość liczba żądań lub transakcji na sekundę przy zadanym obciążeniu mówi, ile system realnie przerabia, nie ilu użytkowników „wpuszczono” wyliczona z prognozy szczytu z zapasem
Odsetek błędów procent żądań zakończonych błędem lub przekroczeniem czasu pierwszy sygnał degradacji, często wcześniejszy niż wzrost czasu odpowiedzi poniżej 0,1 procent przy obciążeniu docelowym
Równocześni użytkownicy liczba sesji generujących ruch jednocześnie łączy prognozę biznesową z parametrem testu z analityki: szczyt historyczny razy zapas
Zasoby procesor, pamięć, połączenia do bazy, wątki, sieć pokazują, gdzie jest wąskie gardło i czy skalowanie ma sens procesor poniżej 70 do 80 procent przy obciążeniu docelowym, pamięć stabilna w czasie

Cele metryk ustala się przed testem, z biznesem, w wymaganiach niefunkcjonalnych. Bez nich test kończy się raportem z liczbami, o których nikt nie umie powiedzieć, czy są dobre. Najlepszy raport z testu wydajnościowego ma jedną tabelę: metryka, cel, wynik, zaliczone lub nie, i listę wąskich gardeł w kolejności od najdroższego. Jak takie cele wpisać w dokumentację, pokazujemy w tekście o planie testów.

Jak przeprowadzić testy wydajnościowe krok po kroku?

Testy wydajnościowe prowadzi się w sześciu krokach: wymagania i model ruchu, środowisko i dane, skrypty scenariuszy, wykonanie od małego obciążenia w górę, analiza wąskich gardeł oraz naprawa i powtórka; najwięcej czasu zabierają krok pierwszy i piąty, nie samo uruchomienie.

01. Wymagania i model ruchu
Skąd wchodzą użytkownicy, co robią, ile ich jest w szczycie, które ścieżki są krytyczne. Z analityki i z biznesu, nie z domysłów. Tu powstają cele metryk
02. Środowisko i dane
Środowisko zbliżone do produkcji wielkością i konfiguracją, dane w produkcyjnej skali. Test na środowisku cztery razy mniejszym mówi cztery razy mniej
03. Skrypty scenariuszy
Realne ścieżki: logowanie, wyszukiwanie, koszyk, płatność, w proporcjach z analityki, z czasem namysłu użytkownika. Nie sam „strzał” w stronę główną
04. Wykonanie
Od małego obciążenia w górę, w krokach, z monitoringiem serwerów w trakcie. Najpierw test obciążeniowy, potem przeciążeniowy, potem pozostałe według ryzyka
05. Analiza
Korelacja czasu odpowiedzi z zasobami: gdzie rośnie kolejka, które zapytanie trwa, który system zewnętrzny czeka. Wąskie gardła w kolejności od najbardziej kosztownego
06. Naprawa i powtórka
Po każdej poprawce ten sam test, żeby zmierzyć efekt. Skrypty zostają jako regresja wydajnościowa, uruchamiana przed każdym większym wydaniem

Krok szósty jest tym, który najczęściej ginie: test wykonany raz, przed premierą, a potem nigdy więcej, choć każde wydanie zmienia zapytania i konfigurację. Regresja wydajnościowa w pipeline, choćby w skróconej wersji, chroni przed powolnym psuciem się systemu między sezonami. O tym, jak układać testy w pipeline, piszemy w tekście o shift left testing.

Jakie narzędzia do testów wydajnościowych wybrać?

Do testów wydajnościowych wybiera się jedno z czterech narzędzi otwartych: JMeter (najszerszy, z interfejsem graficznym), Gatling (kod w Scali lub Javie, wydajny generator), k6 (skrypty w JavaScripcie, dobry w pipeline) albo Locust (Python, prosty do rozszerzania); wybór zależy od języka zespołu i miejsca uruchamiania, nie od rankingów.

Narzędzie Technologia Zalety Ograniczenia Dla kogo
JMeter Java, interfejs graficzny, skrypty w XML największa liczba protokołów i wtyczek, ogromna społeczność, darmowy ciężki przy bardzo dużym ruchu z jednej maszyny, skrypty w interfejsie trudno wersjonować zespoły testowe bez silnego programowania, testy HTTP, JDBC, JMS
Gatling Scala lub Java, kod bardzo wydajny generator ruchu, czytelne raporty, skrypty w repozytorium próg wejścia dla osób bez Javy zespoły blisko kodu, duże obciążenia
k6 JavaScript, kod, wiersz poleceń lekki, świetny w CI/CD, progi zaliczenia w skrypcie mniej protokołów niż JMeter, część funkcji w wersji płatnej regresja wydajnościowa w pipeline, testy API
Locust Python, kod prosty model użytkownika, łatwe rozszerzanie, rozproszone generowanie ruchu skromniejsze raporty, HTTP przede wszystkim zespoły pythonowe, scenariusze z niestandardową logiką

Strony narzędzi: Apache JMeter, Gatling, k6, Locust. Uczymy pracy z trzema z nich na szkoleniach Testowanie wydajnościowe JMeter, Gatling i Locust. Narzędzie to najmniejszy problem w testach wydajnościowych; największy to model ruchu i środowisko, których żadne narzędzie nie zrobi za Was.

Przykład progów zaliczenia w skrypcie k6 (fragment)

export const options = {
  stages: [
    { duration: '5m',  target: 500  },   // rozgrzewka do 500 uzytkownikow
    { duration: '20m', target: 3000 },   // szczyt: prognoza Black Friday
    { duration: '5m',  target: 0    },   // wygaszenie, czy system wraca
  ],
  thresholds: {
    http_req_duration: ['p(95)<2000'],   // 95% zadan ponizej 2 s
    http_req_failed:   ['rate<0.001'],   // bledy ponizej 0,1%
  },
};

Kiedy w projekcie uruchamiać testy wydajnościowe?

Testy wydajnościowe uruchamia się przed każdym większym wydaniem i sezonem, po zmianach architektury, bazy danych lub infrastruktury, przed kampaniami o dużym zasięgu oraz w skróconej formie w pipeline; najgorszy moment to tydzień przed premierą, bo na naprawę wąskich gardeł nie ma już czasu.

  • Wcześnie, na prototypie architektury. Test skalowalności na szkielecie systemu pokazuje, czy wybrana architektura w ogóle udźwignie cel, zanim powstanie kod, którego nie da się przepisać.
  • Przed każdym większym wydaniem. Regresja wydajnościowa krytycznych ścieżek, porównana z poprzednim wynikiem. Wzrost p95 o 30 procent to sygnał, nawet jeśli nadal mieści się w limicie.
  • Kilka tygodni przed sezonem. Pełny test obciążeniowy i przeciążeniowy na prognozie szczytu. Tygodnie, nie dni, bo wąskie gardła w bazie i architekturze naprawia się dłużej niż błędy w kodzie.
  • Po zmianie infrastruktury. Migracja do chmury, nowa wersja bazy, zmiana dostawcy hostingu. Kod bez zmian, wydajność niekoniecznie.
  • Przed kampanią o nieznanym zasięgu. Test skoków obciążenia na wielokrotności prognozy, bo kampania, która „wypali”, to ta, która położy system.

Ile kosztują testy wydajnościowe i kiedy zlecić je na zewnątrz?

Testy wydajnościowe pojedynczej aplikacji webowej wyceniamy od 7 500 zł; na koszt wpływa liczba scenariuszy, złożoność środowiska, liczba iteracji naprawy i powtórki oraz to, czy testy mają zostać w pipeline; na zewnątrz warto je zlecić, gdy zespół nie ma kompetencji do budowy modelu ruchu i analizy wyników albo gdy sezon jest bliżej niż czas potrzebny na ich zdobycie.

Ta sama kwota, którą podajemy w tekście o zamówieniach publicznych na testy, to punkt wyjścia dla jednej aplikacji z kilkoma ścieżkami krytycznymi. Umowa ramowa na cykliczne testy przed każdym sezonem to inna skala, bo obejmuje wielokrotne przebiegi i utrzymanie skryptów. Najdroższą opcją jest zawsze brak testów, bo jedna awaria w szczycie kosztuje więcej niż roczny cykl testów.

Zespołom, które chcą budować te kompetencje u siebie, oprócz szkoleń z narzędzi proponujemy Optymalizację wydajności aplikacji webowych, bo test bez umiejętności naprawy daje tylko raport. Firmom przed sezonem albo wdrożeniem prowadzimy testy wydajnościowe od modelu ruchu po powtórkę po naprawach. Wiedzę dla liderów jakości publikujemy na portalu Strefa QA.

Jakie są najczęstsze błędy w testach wydajnościowych?

Najczęstsze błędy to test na ruchu średnim zamiast szczytowym, środowisko wielokrotnie mniejsze od produkcji, scenariusze bez czasu namysłu i bez proporcji z analityki, czytanie średniej zamiast percentyli, brak monitoringu serwerów w trakcie testu, test wykonany raz i nigdy więcej oraz generator ruchu, który sam jest wąskim gardłem.

  1. Ruch średni zamiast szczytowego. Test na 200 użytkownikach nie mówi nic o dniu z 3 000. Poziom bierze się z najgorszego dnia z zapasem.
  2. Środowisko cztery razy mniejsze. Wynik przeskalowany „w głowie” nie jest wynikiem. Jeśli środowisko musi być mniejsze, musi być mniejsze proporcjonalnie i z tą samą konfiguracją.
  3. Scenariusz bez namysłu. Skrypt, który klika bez przerwy, generuje ruch, jakiego nie ma. Czas namysłu użytkownika i proporcje ścieżek z analityki zmieniają wynik kilkukrotnie.
  4. Średnia zamiast p95. Średnia 800 milisekund może ukrywać 5 procent użytkowników czekających 9 sekund. To oni piszą do obsługi klienta.
  5. Brak monitoringu w trakcie. Bez metryk procesora, pamięci i bazy w czasie testu wiadomo, że jest wolno, ale nie wiadomo dlaczego.
  6. Test jednorazowy. Wykonany przed premierą, a po roku wydań nikt nie wie, ile system dziś wytrzymuje.
  7. Generator jako wąskie gardło. Jedna maszyna generująca 3 000 użytkowników sama się dławi i raport pokazuje jej limity, nie limity systemu. Ruch rozproszony z kilku maszyn albo z chmury.

Skrypty do testów wydajnościowych piszą coraz częściej testerzy automatyzujący, bo to ten sam warsztat: kod, repozytorium, pipeline. Jak wejść w tę specjalizację, opisujemy w tekście o ścieżkach rozwoju w testowaniu.

Najczęstsze pytania o testy wydajnościowe

Co to są testy wydajnościowe?

Testy wydajnościowe sprawdzają, jak system zachowuje się pod obciążeniem: jak szybko odpowiada, ilu użytkowników obsłuży, kiedy się degraduje i czy wraca do sprawności po szczycie. Należą do testów niefunkcjonalnych i wymagają narzędzi generujących ruch, nie da się ich wykonać ręcznie.

Jakie są rodzaje testów wydajnościowych?

Według ISTQB: obciążeniowe (spodziewany ruch), przeciążeniowe (ruch ponad limit), skoków obciążenia (nagły wzrost), wytrzymałościowe (długi czas), skalowalności (czy dołożenie zasobów pomaga) i wolumenowe (duże ilości danych). Większość projektów zaczyna od obciążeniowego i przeciążeniowego.

Czym różnią się testy obciążeniowe od przeciążeniowych?

Test obciążeniowy sprawdza, czy system spełnia wymagania przy spodziewanym ruchu, w tym szczytowym. Test przeciążeniowy zwiększa ruch ponad limit, żeby znaleźć punkt załamania i sprawdzić, jak system się degraduje i czy wraca do sprawności.

Które metryki są najważniejsze w testach wydajnościowych?

Czas odpowiedzi w percentylach (p95, p99), przepustowość w żądaniach na sekundę, odsetek błędów, liczba równoczesnych użytkowników i wykorzystanie zasobów serwera. Średnia czasu odpowiedzi jest myląca, bo ukrywa użytkowników czekających najdłużej.

Jakie narzędzia do testów wydajnościowych wybrać?

Najczęściej jedno z czterech otwartych: JMeter (interfejs graficzny, najwięcej protokołów), Gatling (kod, wydajny generator), k6 (JavaScript, dobry w pipeline) albo Locust (Python). Wybór zależy od języka zespołu i miejsca uruchamiania.

Kiedy przeprowadzać testy wydajnościowe?

Przed każdym większym wydaniem i sezonem, po zmianach architektury lub infrastruktury, przed kampaniami o dużym zasięgu oraz w skróconej formie w pipeline. Najgorszy moment to tydzień przed premierą, bo na naprawę wąskich gardeł nie ma już czasu.

Ile kosztują testy wydajnościowe?

W naszym cenniku testy wydajnościowe pojedynczej aplikacji webowej zaczynają się od 7 500 zł. Na koszt wpływa liczba scenariuszy, złożoność środowiska, liczba iteracji naprawy i powtórki oraz to, czy testy mają zostać w pipeline jako regresja.

Czy testy wydajnościowe można wykonać ręcznie?

Nie. Wymagają narzędzi generujących setki lub tysiące równoczesnych sesji, środowiska zbliżonego do produkcji i monitoringu zasobów w trakcie. Otwarcie aplikacji na kilku komputerach naraz nie jest testem wydajnościowym.

Co zabrać z tego artykułu

01Testy wydajnościowe odpowiadają liczbami na trzy pytania: jak szybko, ilu naraz i co przy nadmiarze. Bez celów dla metryk test nie ma kryterium zaliczenia.

02Poziom obciążenia bierze się z prognozy najgorszego dnia, nie ze średniej. Średnia nie psuje systemów.

03Obciążeniowy mówi „zdaliśmy”, przeciążeniowy mówi „mamy zapas do tej liczby”. Oba są potrzebne, żaden nie zastępuje drugiego.

04Czytajcie p95 i p99, nie średnią. Monitorujcie serwery w trakcie, bo bez tego wiadomo, że wolno, ale nie dlaczego.

05Narzędzie to najmniejszy problem. Model ruchu i środowisko decydują o tym, czy wynik cokolwiek znaczy.

06Test wykonany raz przed premierą starzeje się z każdym wydaniem. Skrypty zostają jako regresja wydajnościowa w pipeline.

Macie sezon, premierę albo kampanię przed sobą? Zbudujemy model ruchu z Waszej analityki, przeprowadzimy testy obciążeniowe i przeciążeniowe na środowisku zbliżonym do produkcji i oddamy listę wąskich gardeł w kolejności od najdroższego, z powtórką po naprawach.

Porozmawiajmy o wydajności


Powiązane na blogu Quality Island

Pełna lista źródeł

Co o tym sądzisz?

Dodaj komentarz

Bądź na bieżąco
Bądź na bieżąco
Automatyzacja testów z narzędziem Playwright (Python)
Automatyzacja testów z narzędziem Playwright (C#)

2657,00 PLN

14.09.26, 12.10.26, 02.11.26, 23.11.26, 14.12.26, 18.01.27
2 dni
Automatyzacja testów z narzędziem Playwright (Python)
Automatyzacja testów z narzędziem Playwright (Python)

Pierwotna cena wynosiła: 2670,00 PLN.Aktualna cena wynosi: 2399,00 PLN.Ta cena wzrośnie za 2 dni!

16.09.26, 08.10.26, 27.10.26, 17.11.26, 09.12.26, 14.01.27
2 dni
Automatyzacja testów z narzędziem Playwright
Automatyzacja testów z narzędziem Playwright (Java)

2661,00 PLN

03.09.26, 23.09.26, 15.10.26, 05.11.26, 26.11.26, 17.12.26, 20.01.27
2 dni
Popularne artykuły
Język Gherkin: co to jest i jak go używać w testowaniu oprogramowania
Smoke test: co to jest, kiedy go uruchamiać i czym różni się od sanity testu
Jak zostać testerem oprogramowania: ścieżka krok po kroku bez dyplomu informatyka
Najnowsze artykuły
AI Act: obowiązki testowania systemów wysokiego ryzyka, termin przesunięty na 2027
Konferencje testerskie w Polsce 2026: terminy, miasta, ceny i jak wybrać
Rozporządzenie DORA a testy: kto musi, jak często i dlaczego niezależnie
Popularne kategorie