Питання на співбесіді з навантажувального тестування з відповідями
Навантажувальне тестування й продуктивність: load, stress, spike і soak-тести, перцентилі затримки й пропускна здатність, відкрита й закрита моделі навантаження, сценарії, перевірки й пороги k6, JMeter, Gatling і Locust, тестові дані й кореляція, вузькі місця й метод USE, coordinated omission, планування потужностей і SLO.
227 запитань для співбесіди з теми Навантажувальне тестування з відповідями й поясненнями - рівні Junior, Middle і Senior. Приклади запитань, онлайн-тести й задачі на код.
- k6
- Перцентилі
- Модель навантаження
- Пороги
- Потужність
Запитання за рівнями
Junior
Базові поняття та синтаксис · 50 запитань
Middle
Практика, нюанси й оптимізація · 50 запитань
Senior
Архітектура, внутрішня будова, edge cases · 50 запитань
Приклади запитань
Кілька запитань із кожного рівня з правильною відповіддю й поясненням.
Навантажувальне тестування · Junior
- Яка головна мета навантажувального тесту?
Показати відповідь
Правильна відповідь: Перевірити, як система поводиться за очікуваної кількості користувачів
Навантажувальний тест подає трафік, який очікують у продакшені, зазвичай звичайний пік, і перевіряє, що час відповіді й частка помилок лишаються в межах цілей.
- Чим стрес-тест відрізняється від навантажувального?
Показати відповідь
Правильна відповідь: Він виходить за очікуване навантаження, щоб побачити, де і як система ламається
Навантажувальний тест тримається очікуваного рівня. Стрес-тест іде вище, щоб знайти точку зламу й побачити, чи система деградує м'яко і чи відновлюється.
- Що перевіряє spike-тест?
Показати відповідь
Правильна відповідь: Як система витримує раптовий різкий стрибок трафіку
Spike-тест за секунди стрибає від низького навантаження до дуже високого, як під час розпродажу чи після пуш-сповіщення, і перевіряє, чи система виживе й відновиться.
- Для чого потрібен soak-тест (тест на витривалість)?
Показати відповідь
Правильна відповідь: Щоб знайти проблеми, які з'являються лише після годин сталого навантаження
Soak-тест годинами тримає звичайне навантаження. Він виявляє витоки пам'яті, черги, що ростуть, диски, що заповнюються, і з'єднання, які ніколи не звільняються.
Навантажувальне тестування · Middle
- У чому ключова різниця між закритою і відкритою моделлю навантаження?
Показати відповідь
Правильна відповідь: Закрита: нові запити чекають на старі. Відкрита: надходження не залежить від відповідей
У закритій моделі фіксована кількість користувачів, і кожен шле наступний запит після повернення попереднього. У відкритій запити надходять із заданим темпом, як справжній інтернет-трафік, хоч би яким був час відповіді.
- Чому закрита модель може сховати сповільнення?
Показати відповідь
Правильна відповідь: Коли сервер сповільнюється, користувачі шлють менше запитів, і навантаження падає саме
100 VU з відповіддю за 1 с дають ~100 RPS. Якщо відповідь триває 5 с, виходить ~20 RPS. Система отримує полегшення, якого справжній трафік ніколи б їй не дав.
- Який виконавець k6 тримає сталий темп запитів незалежно від часу відповіді?
Показати відповідь
Правильна відповідь:
constant-arrival-rateВиконавці arrival-rate запускають ітерації з заданим темпом і за потреби беруть VU з пулу.
constant-vus- закрита модель. - Про що каже ненульова метрика
dropped_iterationsу тесті з arrival-rate?Показати відповідь
Правильна відповідь: У k6 не було вільного VU для старту ітерації, тож цільового темпу не досягнуто
Якщо всі VU зайняті і
maxVUsдосягнуто, k6 пропускає ітерації. ЗбільштеmaxVUsабо зафіксуйте, що система була надто повільна для такого темпу.
Навантажувальне тестування · Senior
- Ви будуєте модель навантаження для публічного API. Яке джерело патерну надходження найкраще?
Показати відповідь
Правильна відповідь: Логи доступу продакшену: темпи за ендпоінтами, піки й сплески
Логи показують справжній мікс запитів, денні піки й наскільки трафік сплескоподібний. Модель на їхній основі відповідає на питання про реальний ризик.
- Коли закрита модель навантаження - правильний вибір?
Показати відповідь
Правильна відповідь: Коли клієнти справді фіксований пул, наприклад N воркерів чи кол-центр
Якщо в реальній системі фіксована кількість клієнтів, що чекають на відповіді, закрита модель їй відповідає. Публічний трафік надходить незалежно, тож там пасує відкрита.
- Як wrk2 уникає coordinated omission?
Показати відповідь
Правильна відповідь: Шле зі сталим темпом і міряє від запланованого часу надсилання
Затримку рахують від моменту, коли запит мав піти за розкладом. Тоді зависання видно як затримку, яку побачили б справжні користувачі.
- Сторінка паралельно викликає 100 бекенд-сервісів, у кожного p99 = 1 с. Яка приблизно частка завантажень сторінки має хоча б один виклик від 1 с?
Показати відповідь
Правильна відповідь: Близько 63%
1 − 0,99^100 ≈ 0,63. Розгалуження робить рідкісний хвіст звичайним, тому хвостова затримка така важлива у великих системах.
Задачі на код
Напишіть рішення просто в браузері - тести перевірять його одразу. Класика співбесід на JavaScript (debounce, deepClone, Promise.all, LRU-кеш), на TypeScript (дженерики, звуження й утилітні типи, перевіряє справжній компілятор), серверна логіка на Node.js (middleware, обмеження частоти, черги задач), SQL-запити в справжньому PostgreSQL і на React: компоненти й хуки на кшталт списку справ, вкладок, useDebounce та useInterval.
Відкрити задачі →