← Wszystkie tematy

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.

Pytania według poziomu

Przykładowe pytania

Kilka pytań z każdego poziomu z poprawną odpowiedzią i wyjaśnieniem.

Testy obciążeniowe · Junior

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Wszystkie 75 pytań z odpowiedziami →

Testy obciążeniowe · Middle

  1. 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.

  2. 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ł.

  3. Który executor k6 utrzymuje stałe tempo żądań niezależnie od czasów odpowiedzi?
    Pokaż odpowiedź

    Poprawna odpowiedź: constant-arrival-rate

    Executory arrival-rate uruchamiają iteracje w zadanym tempie i w razie potrzeby biorą VU z puli. constant-vus to model zamknięty.

  4. Co mówi niezerowa metryka dropped_iterations w 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 maxVUs osiągnięto, k6 pomija iteracje. Zwiększ maxVUs albo odnotuj, że system był za wolny na takie tempo.

Wszystkie 76 pytań z odpowiedziami →

Testy obciążeniowe · Senior

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Wszystkie 76 pytań z odpowiedziami →

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 →