Pytania rekrutacyjne z testów obciążeniowych z odpowiedziami
Testy obciążeniowe i wydajnościowe: testy load, stress, spike i soak, percentyle opóźnień i przepustowość, otwarty i zamknięty model obciążenia, scenariusze, checki i progi w k6, JMeter, Gatling i Locust, dane testowe i korelacja, wąskie gardła i metoda USE, coordinated omission, planowanie pojemności i SLO.
227 pytań na rozmowę rekrutacyjną z tematu Testy obciążeniowe z odpowiedziami i wyjaśnieniami - poziomy Junior, Middle i Senior. Przykładowe pytania, testy online i zadania z kodu.
- k6
- Percentyle
- Model obciążenia
- Progi
- Pojemność
Pytania według poziomu
Junior
Podstawowe pojęcia i składnia · 50 pytań
Middle
Praktyka, niuanse i optymalizacja · 50 pytań
Senior
Architektura, mechanizmy wewnętrzne, przypadki brzegowe · 50 pytań
Przykładowe pytania
Kilka pytań z każdego poziomu z poprawną odpowiedzią i wyjaśnieniem.
Testy obciążeniowe · Junior
- Jaki jest główny cel testu obciążeniowego?
Pokaż odpowiedź
Poprawna odpowiedź: Sprawdzić, jak system działa przy oczekiwanej liczbie użytkowników
Test obciążeniowy podaje ruch oczekiwany na produkcji, zwykle normalny szczyt, i sprawdza, czy czasy odpowiedzi i odsetek błędów mieszczą się w celach.
- Czym test przeciążeniowy (stress) różni się od obciążeniowego?
Pokaż odpowiedź
Poprawna odpowiedź: Wychodzi ponad oczekiwane obciążenie, by zobaczyć, gdzie i jak system się psuje
Test obciążeniowy trzyma się oczekiwanego poziomu. Test przeciążeniowy idzie wyżej, by znaleźć punkt załamania i sprawdzić, czy system degraduje się łagodnie i wraca do normy.
- Co sprawdza test spike?
Pokaż odpowiedź
Poprawna odpowiedź: Jak system radzi sobie z nagłym, ostrym skokiem ruchu
Test spike w kilka sekund skacze z niskiego do bardzo wysokiego obciążenia, jak przy wyprzedaży czy po powiadomieniu push, i sprawdza, czy system przetrwa i się podniesie.
- Do czego służy test soak (wytrzymałościowy)?
Pokaż odpowiedź
Poprawna odpowiedź: Do problemów, które wychodzą dopiero po godzinach stałego obciążenia
Test soak trzyma normalne obciążenie przez wiele godzin. Ujawnia wycieki pamięci, rosnące kolejki, zapełniające się dyski i połączenia, które nigdy nie są zwalniane.
Testy obciążeniowe · Middle
- Jaka jest kluczowa różnica między zamkniętym a otwartym modelem obciążenia?
Pokaż odpowiedź
Poprawna odpowiedź: Zamknięty: nowe żądania czekają na stare. Otwarty: napływ nie zależy od odpowiedzi
W modelu zamkniętym stała liczba użytkowników wysyła kolejne żądanie po powrocie poprzedniego. W otwartym żądania napływają w zadanym tempie, jak prawdziwy ruch z internetu, niezależnie od czasu odpowiedzi.
- Dlaczego model zamknięty może ukryć spowolnienie?
Pokaż odpowiedź
Poprawna odpowiedź: Gdy serwer zwalnia, użytkownicy wysyłają mniej żądań i obciążenie samo spada
100 VU przy odpowiedzi 1 s daje ~100 RPS. Gdy odpowiedzi trwają 5 s, wychodzi ~20 RPS. System dostaje ulgę, której prawdziwy ruch nigdy by mu nie dał.
- Który executor k6 utrzymuje stałe tempo żądań niezależnie od czasów odpowiedzi?
Pokaż odpowiedź
Poprawna odpowiedź:
constant-arrival-rateExecutory arrival-rate uruchamiają iteracje w zadanym tempie i w razie potrzeby biorą VU z puli.
constant-vusto model zamknięty. - Co mówi niezerowa metryka
dropped_iterationsw teście arrival-rate?Pokaż odpowiedź
Poprawna odpowiedź: k6 nie miał wolnego VU, więc docelowego tempa nie osiągnięto
Jeśli wszystkie VU są zajęte, a
maxVUsosiągnięto, k6 pomija iteracje. ZwiększmaxVUsalbo odnotuj, że system był za wolny na takie tempo.
Testy obciążeniowe · Senior
- Budujesz model obciążenia dla publicznego API. Jakie jest najlepsze źródło wzorca napływu?
Pokaż odpowiedź
Poprawna odpowiedź: Logi dostępu z produkcji: tempo per endpoint, szczyty i serie
Logi pokazują prawdziwy miks żądań, dzienne szczyty i to, jak bardzo ruch przychodzi seriami. Model na ich podstawie odpowiada na pytania o realne ryzyko.
- Kiedy zamknięty model obciążenia jest właściwym wyborem?
Pokaż odpowiedź
Poprawna odpowiedź: Gdy klienci to naprawdę stała pula, np. N workerów lub call center
Jeśli prawdziwy system ma stałą liczbę klientów czekających na odpowiedzi, model zamknięty do niego pasuje. Ruch publiczny napływa niezależnie, więc tam pasuje model otwarty.
- Jak wrk2 unika coordinated omission?
Pokaż odpowiedź
Poprawna odpowiedź: Wysyła w stałym tempie i mierzy od zaplanowanego czasu wysłania
Opóźnienie liczy się od chwili, gdy żądanie powinno zostać wysłane według harmonogramu. Wtedy przestój widać jako opóźnienie, które odczuliby prawdziwi użytkownicy.
- Strona równolegle wywołuje 100 usług backendu, każda ma p99 = 1 s. Jaki mniej więcej odsetek ładowań strony ma co najmniej jedno wywołanie od 1 s?
Pokaż odpowiedź
Poprawna odpowiedź: Około 63%
1 − 0,99^100 ≈ 0,63. Rozgałęzienie zamienia rzadki ogon w częsty, dlatego opóźnienie ogona tak bardzo liczy się w dużych systemach.
Zadania z kodu
Napisz rozwiązanie prosto w przeglądarce, a testy od razu je sprawdzą. Klasyka rozmów rekrutacyjnych z JavaScriptu (debounce, deepClone, Promise.all, cache LRU), z TypeScriptu (generyki, zawężanie i typy narzędziowe, sprawdza prawdziwy kompilator), logika backendu w Node.js (middleware, limity żądań, kolejki zadań), zapytania SQL w prawdziwym PostgreSQL i z Reacta: komponenty i hooki, takie jak lista zadań, zakładki, useDebounce i useInterval.
Otwórz zadania →