Українська версія
Performance Testing: питання для співбесіди
Практичні питання з performance testing українською: workload modelling, load і stress testing, percentiles, throughput, JMeter, k6, distributed load generation, bottleneck analysis, endurance, spike testing і CI performance gates.Metrics & objectivesMiddleOccasionalTheoryЧим відрізняються базова лінія продуктивності (baseline), бенчмарк і навантажувальний тест (load test)?
Відповідь
Базова лінія фіксує поточний стан системи за визначених умов, щоб пізніше порівнювати з нею результати. Бенчмарк порівнює систему, версію чи конфігурацію за допомогою стандартизованого навантаження й метрики. Навантажувальний тест оцінює поведінку системи під репрезентативним навантаженням відносно явних цілей рівня сервісу. Жоден з них не має сенсу без контрольованих даних, середовища та припущень щодо навантаження.
Сильна відповідь включає
- точка для порівняння проти порівняльного тесту проти перевірки під навантаженням
- вимагає контрольованих умов
- використовує цілі рівня сервісу, а не розмиті поняття швидкості
Практичний приклад
Перед міграцією бази даних команда фіксує час відповіді для 20 найпопулярніших API-ендпоінтів за звичайного навантаження як базову лінію. Після міграції вони знову прогонюють той самий трафік і порівнюють із базовою лінією, щоб виявити регресію: ендпоінт пошуку став на 40 відсотків повільнішим. Окремо вони порівнюють два варіанти конфігурації бази даних між собою за допомогою фіксованого синтетичного навантаження (бенчмарк), щоб обрати швидший, а пізніше проводять навантажувальний тест, що симулює трафік Чорної п'ятниці, аби переконатися, що p99-затримка лишається нижче 500 мс при десятикратному звичайному обсязі.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceWorkload modellingJuniorVery commonTheoryЩо таке performance testing і що саме ми намагаємося з нього дізнатися?
Відповідь
Performance testing перевіряє, як система поводиться під визначеним навантаженням. Корисний результат — не просто одне число response time, а докази щодо швидкодії, throughput, стабільності, використання ресурсів і місткості системи відносно явних цілей, плюс телеметрія, яка допомагає пояснити причину обмеження або регресії.
Сильна відповідь включає
- визначає workload і вимірювані цілі
- охоплює responsiveness, throughput, stability і capacity
- розглядає діагностику як частину результату, а не звіт лише про середнє
Практичний приклад
Для checkout API задаємо очікуваний traffic mix і вимогу, щоб p95 latency залишався нижче узгодженої межі при прийнятному error rate. Під час прогону збираємо application, database та infrastructure telemetry, щоб порушення цілі можна було пояснити, а не лише зафіксувати.
Джерела
Performance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionPerformance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisTop 50 JMeter Interview QuestionsArtOfTesting · Independent recurrence signal for performance test types, activities, parameterization, correlation, ramp-up, CLI mode, percentiles, distributed load and troubleshooting scenariosISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisReliability & recoveryJuniorVery commonTheoryЯкі типи performance testing ви використовуєте і на яке питання відповідає кожен тип?
Відповідь
Load testing перевіряє поведінку під очікуваним реалістичним навантаженням. Stress testing доводить систему до межі або за неї, щоб знайти breaking point і поведінку при дефіциті ресурсів. Spike testing перевіряє різкі стрибки навантаження та повернення до steady state. Endurance або soak testing перевіряє довготривалу стабільність і витоки ресурсів. Scalability testing перевіряє здатність системи масштабуватися без порушення вимог. Volume testing робить великий обсяг даних основним фактором навантаження.
Сильна відповідь включає
- розрізняє ціль кожного типу тесту
- включає load, stress, spike, endurance і scalability
- вибирає тип тесту за ризиком, а не вважає назви синонімами
Практичний приклад
Для checkout на Black Friday можуть бути потрібні окремо normal peak-load test, spike test для flash promotion і endurance test на всю тривалість розпродажу. Це різні питання, навіть якщо в усіх трьох прогонах використовується той самий базовий скрипт.
Джерела
Performance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionPerformance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisTop 50 JMeter Interview QuestionsArtOfTesting · Independent recurrence signal for performance test types, activities, parameterization, correlation, ramp-up, CLI mode, percentiles, distributed load and troubleshooting scenariosISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisReliability & recoveryJuniorVery commonComparisonУ чому різниця між load testing і stress testing?
Відповідь
Load test відповідає на питання, чи виконує система performance objectives під очікуваним реалістичним workload. Stress test навмисно наближає або перевищує очікувані межі чи зменшує доступні ресурси, щоб знайти поріг відмови, характер деградації та відновлення. Тому відрізняється не лише кількість користувачів, а й саме питання, на яке відповідає тест.
Сильна відповідь включає
- очікуваний workload проти навантаження на межі або за межею
- перевірка SLO проти пошуку failure threshold і recovery
- не зводить stress testing просто до більшого числа користувачів
Практичний приклад
Запускаємо checkout на прогнозованому піку й перевіряємо p95 та error-rate goals — це load test. Потім підвищуємо arrival rate, доки ростуть черги, помилки або saturation, і перевіряємо recovery після зняття навантаження — це stress test.
Джерела
Performance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionPerformance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisTop 50 JMeter Interview QuestionsArtOfTesting · Independent recurrence signal for performance test types, activities, parameterization, correlation, ramp-up, CLI mode, percentiles, distributed load and troubleshooting scenariosISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisBottlenecks & diagnosisMiddleVery commonPracticalЯкі метрики ви моніторите під час performance test?
Відповідь
Починаємо з user-visible outcomes: розподілу response time, throughput або request/transaction rate і errors. Потім корелюємо їх із saturation та resource signals: CPU, memory, garbage collection, thread/connection pools, disk, network, а також database і dependency metrics. Конкретний набір залежить від архітектури й performance objective; графік load-generator без server telemetry не пояснює bottleneck.
Сильна відповідь включає
- використовує latency distribution, throughput і error rate як outcome metrics
- додає resource та saturation metrics системи під тестом
- корелює метрики між шарами, а не читає один графік ізольовано
Практичний приклад
Якщо p95 зростає, а throughput виходить на plateau, дивимося в той самий часовий інтервал на application CPU, worker/thread pools, database connection pools, slow queries і downstream latency. Саме кореляція в часі перетворює симптом на гіпотезу.
Джерела
Performance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionPerformance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisJMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisGrafana k6 documentation — ThresholdsGrafana Labs · Technical authority for percentile/error-rate pass-fail criteria, SLO encoding and automated performance gatesMetrics & objectivesMiddleCommonAnalysisЧому в performance reports використовують percentiles на кшталт p90, p95 або p99, а не покладаються лише на average response time?
Відповідь
Average стискає весь розподіл в одне число й може приховати невелику частку дуже повільних запитів. Percentile відповідає на інше питання: p95 — це значення response time, не вище якого завершилися 95% спостережень, а 5% були повільнішими. Тому percentiles показують tail behavior і зручні для явних service objectives, але їх усе одно треба читати разом із throughput, error rate, sample size і workload model.
Сильна відповідь включає
- пояснює percentile як межу розподілу
- розуміє, що average може приховувати повільний tail
- не інтерпретує p95 без контексту workload, errors і sample size
Практичний приклад
Десять дуже повільних запитів можуть майже не змінити average серед тисяч швидких. p99 target показує, чи slow tail порушує узгоджений latency budget, навіть коли mean виглядає нормально.
Джерела
Performance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisJMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDTop 50 JMeter Interview QuestionsArtOfTesting · Independent recurrence signal for performance test types, activities, parameterization, correlation, ramp-up, CLI mode, percentiles, distributed load and troubleshooting scenariosGrafana k6 documentation — ThresholdsGrafana Labs · Technical authority for percentile/error-rate pass-fail criteria, SLO encoding and automated performance gatesMetrics & objectivesJuniorOccasionalComparisonЧим latency відрізняється від response time у performance test?
Відповідь
Треба дивитися на точне визначення метрики в конкретному інструменті, а не припускати, що всі продукти однаково використовують ці слова. Концептуально latency зазвичай описує затримку до початку надходження корисної відповіді, а end-to-end response time — повний виміряний інтервал request-to-response. На співбесіді варто явно назвати measurement boundary і конкретну метрику інструмента.
Сильна відповідь включає
- визначає measurement boundary, а не використовує нечіткі синоніми
- враховує tool-specific terminology
- пов'язує метрику з тим, що реально відчуває користувач або протокол
Практичний приклад
Якщо інструмент окремо показує time-to-first-byte і total HTTP duration, прямо називаємо, про яку метрику йдеться. Це не дає команді порівнювати два числа з різними початковими або кінцевими точками вимірювання.
Джерела
Performance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisPerformance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionBottlenecks & diagnosisSeniorCommonTest designЯк ви проєктуєте реалістичний workload для load test?
Відповідь
Модель виводимо з production або business evidence: важливі user journeys, їхній traffic mix, arrival/transaction rates, concurrency, session length, think time або pacing, data distribution, форма піку й тривалість тесту. Окремо задаємо ramp-up, steady state і ramp-down та вибираємо user-count чи arrival-rate model відповідно до реального трафіку. Під час прогону перевіряємо фактичний throughput: сама кількість configured virtual users не доводить, що потрібний workload справді створено.
Сильна відповідь включає
- починає з operational traffic і business journeys
- моделює traffic mix, timing, data та load shape
- перевіряє фактичний request/transaction rate, а не довіряє лише configured VUs
Практичний приклад
Якщо production показує 60% browse, 25% search і 15% checkout при відомому peak arrival rate, зберігаємо цей mix і timing у тесті, а не змушуємо кожен VU без пауз безкінечно проходити всі дії.
Джерела
JMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDTop 20 JMeter Interview QuestionsQAPractices · Independent scenario-based signal for JMeter components, timers, assertions, correlation, distributed testing and result analysisPerformance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisGrafana k6 documentation — ScenariosGrafana Labs · Technical authority for VU-based and arrival-rate workload executors and multi-scenario testsGrafana k6 documentation — Open and closed modelsGrafana Labs · Technical authority for open versus closed workload models and coordinated-omission implicationsWorkload modellingMiddleCommonPracticalЯк ви визначаєте, скільки concurrent users треба симулювати?
Відповідь
Не беремо кругле число навмання. Використовуємо production analytics, прогноз або business volumes разом із session duration і transaction rates, щоб оцінити одночасну активність, а потім звіряємо модель із фактичним peak throughput. Concurrency є прямим input лише в user-based workload; для open workload реалістичніше інколи задати arrivals per second, а необхідна concurrency виникне з response time та iteration duration.
Сильна відповідь включає
- використовує production або business evidence, а не довільний VU count
- пов'язує concurrency із session duration та transaction rate
- розрізняє user-count і arrival-rate workload models
Практичний приклад
Для сервісу з відомою peak кількістю завершених sessions per minute використовуємо session length і transaction frequency для оцінки active users, а потім перевіряємо, що скрипт реально відтворює очікувані endpoint rates.
Джерела
Performance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisJMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDPerformance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisGrafana k6 documentation — Open and closed modelsGrafana Labs · Technical authority for open versus closed workload models and coordinated-omission implicationsWorkload modellingMiddleCommonComparisonУ чому різниця між concurrent users, requests/hits і throughput?
Відповідь
Concurrent users показує, скільки симульованих або реальних користувачів активні одночасно. Request або hit — це окрема одиниця трафіку, створена цими користувачами. Throughput — це rate, наприклад requests або business transactions per second. Ці числа пов'язані, але не взаємозамінні: think time, response time, parallel requests і структура journey визначають, який throughput фактично дає конкретна concurrency.
Сильна відповідь включає
- розрізняє population count, event count і event rate
- пояснює, чому однакова кількість VU може давати різний throughput
- використовує business transaction rate, коли він змістовніший за raw HTTP requests
Практичний приклад
Сто користувачів, які чекають 20 секунд між діями, створюють значно менше трафіку, ніж сто користувачів у tight loop. Звіт лише '100 users' без фактичного request/transaction rate приховує цю різницю.
Джерела
Performance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionPerformance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisJMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisBottlenecks & diagnosisSeniorOccasionalComparisonЧим performance testing відрізняється від performance engineering?
Відповідь
Performance testing — це activity з вимірювання й оцінювання: змоделювати workload, виконати тести, зібрати evidence і порівняти поведінку з objectives. Performance engineering ширше й безперервніше: воно включає architecture, observability, profiling, capacity decisions, code/database optimization, infrastructure tuning і design changes для досягнення performance goals протягом усього lifecycle. Тестування постачає evidence для цього engineering loop.
Сильна відповідь включає
- testing вимірює й оцінює, а engineering також змінює систему
- розміщує performance work по всьому lifecycle, а не лише перед release
- пов'язує test evidence з profiling, tuning і architecture decisions
Практичний приклад
Load test показує saturation connection pool. Performance engineering далі змінює pool sizing або request behavior, профілює сервіс, за потреби коригує infrastructure і повторює той самий контрольований workload, щоб довести ефект.
Джерела
Performance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionPerformance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisJMeter, k6 & LocustMiddleCommonToolingЯкі основні компоненти JMeter Test Plan і як вони працюють разом?
Відповідь
Thread Group визначає execution context віртуальних користувачів. Samplers відправляють protocol requests. Configuration elements задають defaults, credentials, cookies або test data. Timers формують timing і pacing. Assertions перевіряють correctness. Pre- та post-processors готують requests або витягують dynamic values. Controllers організовують flow, а listeners/result writers зберігають evidence. Для реального load test план має бути легким без важких GUI listeners.
Сильна відповідь включає
- пояснює роль Thread Groups, samplers, timers і assertions
- включає configuration та pre/post-processing для data і dynamic values
- відокремлює scripting/debug listeners від resource-efficient load execution
Практичний приклад
Login-and-search plan може містити Thread Group, HTTP samplers, CSV credentials, JSON extractor для token, timer для user pacing, response assertions і легкий result file для подальшого аналізу.
Джерела
Performance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisJMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDTop 20 JMeter Interview QuestionsQAPractices · Independent scenario-based signal for JMeter components, timers, assertions, correlation, distributed testing and result analysisTop 50 JMeter Interview QuestionsArtOfTesting · Independent recurrence signal for performance test types, activities, parameterization, correlation, ramp-up, CLI mode, percentiles, distributed load and troubleshooting scenariosApache JMeter User's Manual — Getting StartedApache JMeter · Technical authority for GUI versus CLI use, injector sizing, execution and HTML result analysisJMeter, k6 & LocustMiddleCommonScriptingЩо таке correlation у performance script і чим воно відрізняється від parameterization?
Відповідь
Correlation захоплює dynamic value, створене системою, наприклад session token, CSRF value або generated ID, і використовує його в наступних requests того самого flow. Parameterization підставляє різні input data, які контролює тест: users, products, search terms. У JMeter correlation зазвичай робиться через response extractors/post-processors, а parameterization — через variables і CSV Data Set Config.
Сильна відповідь включає
- розрізняє dynamic server-produced value і test-controlled input data
- наводить приклади session/token і CSV
- перевіряє, що extracted values належать правильному user або iteration
Практичний приклад
Читаємо username/password pairs із CSV — parameterization. Витягуємо access token з login response і передаємо його в наступному API request — correlation.
Джерела
Performance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisJMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDTop 20 JMeter Interview QuestionsQAPractices · Independent scenario-based signal for JMeter components, timers, assertions, correlation, distributed testing and result analysisTop 50 JMeter Interview QuestionsArtOfTesting · Independent recurrence signal for performance test types, activities, parameterization, correlation, ramp-up, CLI mode, percentiles, distributed load and troubleshooting scenariosApache JMeter HTTP(S) Test Script RecorderApache JMeter · Technical authority for script validation, parameterization, dynamic correlation and command-line executionDistributed load generationMiddleCommonToolingЧому JMeter load test треба запускати в CLI mode, а не в GUI?
Відповідь
GUI призначений для побудови, валідації та дебагу Test Plan. Під час load run GUI і важкі listeners споживають CPU, memory та rendering resources на injector і можуть спотворити або обмежити generated load. Apache рекомендує CLI mode для load execution, зберігаючи лише потрібні results і вже з них будуючи report.
Сильна відповідь включає
- GUI для authoring/debugging, CLI для load execution
- захищає ресурси load generator від UI/listener overhead
- зберігає лише потрібний result data
Практичний приклад
Перевіряємо малий sample у View Results Tree, вимикаємо його для реального прогону, потім запускаємо `jmeter -n -t test.jmx -l result.jtl` і аналізуємо збережені results або HTML report.
Джерела
Performance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisTop 50 JMeter Interview QuestionsArtOfTesting · Independent recurrence signal for performance test types, activities, parameterization, correlation, ramp-up, CLI mode, percentiles, distributed load and troubleshooting scenariosJMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDApache JMeter User's Manual — Getting StartedApache JMeter · Technical authority for GUI versus CLI use, injector sizing, execution and HTML result analysisApache JMeter User's Manual — Best PracticesApache JMeter · Technical authority for load-generator sizing, coordinated omission, CLI execution, listener cost, CSV data and large-scale executionDistributed load generationSeniorCommonArchitectureКоли потрібна distributed load generation і які проблеми вона може створити?
Відповідь
Розподіляємо generation, коли один injector не може створити потрібний request rate або concurrency без упору в CPU, memory чи network. Генератори мають бути узгоджені, правильно розміщені відносно target, мати test data на кожному worker, однакову configuration і власний monitoring. У JMeter remote mode кожен server запускає configured plan, тому total load треба рахувати по всіх workers, а не припускати, що controller автоматично ділить один thread count.
Сильна відповідь включає
- масштабує генератори лише після вимірювання injector capacity
- моніторить CPU, memory і network на load generators
- розуміє вплив distributed topology та per-worker data
Практичний приклад
Якщо шість JMeter workers кожен виконують plan на 1,000 threads, target може отримати приблизно 6,000 threads, а не 1,000, поділені на шість. Фактичний traffic усе одно залежить від pacing і response time.
Джерела
JMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDTop 20 JMeter Interview QuestionsQAPractices · Independent scenario-based signal for JMeter components, timers, assertions, correlation, distributed testing and result analysisTop 50 JMeter Interview QuestionsArtOfTesting · Independent recurrence signal for performance test types, activities, parameterization, correlation, ramp-up, CLI mode, percentiles, distributed load and troubleshooting scenariosApache JMeter User's Manual — Remote (Distributed) TestingApache JMeter · Technical authority for distributed load generation, controller/worker behavior, data files and generator-side bottlenecksApache JMeter User's Manual — Best PracticesApache JMeter · Technical authority for load-generator sizing, coordinated omission, CLI execution, listener cost, CSV data and large-scale executionLocust documentation — Distributed load generationLocust · Technical authority for master/worker load generation and generator CPU constraintsBottlenecks & diagnosisSeniorCommonScenarioСистема сповільнюється зі зростанням load. Як ви знаходите bottleneck?
Відповідь
Спочатку підтверджуємо, що потрібний workload справді генерується і injector не є bottleneck. Знаходимо load level та timestamp, де змінюються latency, errors або throughput, і корелюємо цю точку з application/infrastructure telemetry: CPU, memory/GC, queues, worker/connection pools, database waits або slow queries, disk/network, caches та downstream services. Потім змінюємо один обґрунтований constraint і повторюємо той самий контрольований workload, щоб довести причинність.
Сильна відповідь включає
- спочатку виключає load generator і помилку workload model
- корелює client symptoms із server-side telemetry за часом і load level
- доводить bottleneck контрольованим rerun
Практичний приклад
Якщо throughput перестає рости на 700 RPS, p95 зростає, а database pool у той самий момент постійно повний і його wait time росте, це сильніша bottleneck hypothesis, ніж просто високий CPU на іншому часовому відрізку.
Джерела
Performance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionPerformance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisJMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDTop 20 JMeter Interview QuestionsQAPractices · Independent scenario-based signal for JMeter components, timers, assertions, correlation, distributed testing and result analysisTop 50 JMeter Interview QuestionsArtOfTesting · Independent recurrence signal for performance test types, activities, parameterization, correlation, ramp-up, CLI mode, percentiles, distributed load and troubleshooting scenariosISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisReliability & recoveryMiddleCommonScenarioЩо таке endurance або soak test і які проблеми ви шукаєте?
Відповідь
Endurance test утримує репрезентативний workload достатньо довго, щоб проявилася time-dependent degradation. Шукаємо висхідні resource trends і exhaustion: memory leaks, погіршення heap/GC, leakage connection/thread pools, file handles, queues, cache growth, вплив росту database та scheduled/background work. Нормальний average на початку прогону не доводить стабільність протягом кількох годин.
Сильна відповідь включає
- фокусується на long-running stability, а не peak capacity
- шукає resource trends і leaks у часі
- використовує representative steady workload і достатню duration
Практичний приклад
Тримаємо normal peak traffic кілька годин і дивимося, чи memory повертається до steady range після GC, connection pools звільняють ресурси, queue depth не росте безмежно, а latency distribution залишається стабільним.
Джерела
Performance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionPerformance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisTop 50 JMeter Interview QuestionsArtOfTesting · Independent recurrence signal for performance test types, activities, parameterization, correlation, ramp-up, CLI mode, percentiles, distributed load and troubleshooting scenariosISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisReliability & recoveryMiddleCommonScenarioЯк ви спроєктуєте spike test?
Відповідь
Починаємо з відомого steady workload, різко піднімаємо arrivals до рівня ризику, тримаємо достатньо для спостереження, потім знижуємо load і вимірюємо recovery. Success criteria задаємо і для burst, і для повернення до steady state: latency, errors, queue depth, rejected work, autoscaling/throttling behavior, data correctness і відновлення ресурсів без ручного втручання.
Сильна відповідь включає
- моделює sudden transition, а не повільний stress ramp
- визначає очікувану overload behavior і recovery
- перевіряє correctness та queues разом із latency
Практичний приклад
Продаж квитків відкривається о 10:00. П'ять хвилин тримаємо normal traffic, різко стрибаємо до expected opening burst, потім повертаємо normal traffic і перевіряємо, що service drains queues та повертається до початкових latency і resource levels.
Джерела
Performance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionPerformance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisTop 50 JMeter Interview QuestionsArtOfTesting · Independent recurrence signal for performance test types, activities, parameterization, correlation, ramp-up, CLI mode, percentiles, distributed load and troubleshooting scenariosISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisJMeter, k6 & LocustMiddleCommonToolingЩо таке k6 thresholds і як вони допомагають автоматизувати performance testing?
Відповідь
k6 thresholds — це явні pass/fail conditions для metrics, наприклад maximum error rate та p95/p99 response-time limit. Порушений threshold робить run failed, тому performance objective або SLO можна перетворити на автоматичний quality gate, а не графік для ручного перегляду. Межі треба виводити з реальних requirements або узгодженого baseline, а не вибирати довільні числа, щоб CI був green.
Сильна відповідь включає
- визначає thresholds як metric pass/fail criteria
- наводить приклади percentile latency та error rate
- виводить limits із SLO, requirements або controlled baseline
Практичний приклад
Checkout gate може вимагати `http_req_failed` нижче 1% і `p(95)` менше узгодженого latency budget. Pipeline автоматично падає, якщо порушена будь-яка з цих цілей.
Джерела
Performance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisGrafana k6 documentation — ThresholdsGrafana Labs · Technical authority for percentile/error-rate pass-fail criteria, SLO encoding and automated performance gatesCI/CD & regressionSeniorCommonDeliveryЯк інтегрувати performance testing у CI/CD, не зробивши pipeline повільним і нестабільним?
Відповідь
Використовуємо шари. У частому CI залишаємо малий deterministic performance smoke/regression check із контрольованим environment, fixed workload і explicit thresholds. Великі load, endurance або capacity tests запускаємо за доречним schedule чи в pre-release environment. Зберігаємо baselines і results для порівняння регресій у часі, а noisy environment досліджуємо замість послаблення gates. Для великих тестів одного pass/fail недостатньо — потрібні metrics і telemetry для diagnosis.
Сильна відповідь включає
- розділяє test sizes і cadence, а не запускає full load на кожен commit
- вимагає stable workload, environment і automated thresholds для frequent checks
- зберігає trends та diagnostic evidence, а не тільки pipeline status
Практичний приклад
Запускаємо двохвилинний API performance regression у pull-request CI на isolated environment, representative peak-load suite — nightly, а endurance test — перед major releases. Для них задаємо різні objectives.
Джерела
JMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDPerformance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisTop 20 JMeter Interview QuestionsQAPractices · Independent scenario-based signal for JMeter components, timers, assertions, correlation, distributed testing and result analysisGrafana k6 documentation — ThresholdsGrafana Labs · Technical authority for percentile/error-rate pass-fail criteria, SLO encoding and automated performance gatesJMeter, k6 & LocustSeniorOccasionalStrategyЯк ви обираєте performance-testing tool?
Відповідь
Починаємо із system і test objective, а не популярності. Перевіряємо protocol support, workload model, expected scale, scripting і correlation needs, test-data handling, distributed execution, CI integration, result export та observability integration, team skills, licensing і operational constraints. Перед остаточним вибором робимо representative proof of concept і вимірюємо capacity самого injector.
Сильна відповідь включає
- обирає за protocol, workload та scale requirements
- враховує scripting, CI, reporting, distributed execution і team constraints
- робить proof of concept і вимірює generator capacity
Практичний приклад
Для Python-heavy команди, яка тестує HTTP APIs через user-behavior tasks, може добре підійти Locust; для code-first JavaScript workflow з arrival-rate executors і native thresholds — k6; для mature JMeter estate з широкими protocol needs заміна може не мати сенсу. Рішення йде від requirements.
Джерела
Performance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionPerformance Testing Interview Questions: JMeter, k6 & LoadRunner (2026)SoftwareTestPilot · Current recurrence signal for load versus stress, performance metrics, JMeter, k6, correlation, CI/CD, baselines and bottleneck analysisISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisApache JMeter User's Manual — Best PracticesApache JMeter · Technical authority for load-generator sizing, coordinated omission, CLI execution, listener cost, CSV data and large-scale executionGrafana k6 documentation — ScenariosGrafana Labs · Technical authority for VU-based and arrival-rate workload executors and multi-scenario testsLocust documentation — ConfigurationLocust · Technical authority for concurrent users, spawn rate, run time and headless executionDistributed load generationSeniorOccasionalScenarioЯк довести, що load generator не є bottleneck?
Відповідь
Моніторимо generator CPU, memory, network, process limits і фактичний request rate під час росту load. Використовуємо lightweight execution mode і прибираємо дорогі listeners або зайву роботу в script. Якщо injector saturates раніше за target, масштабуємо його vertical/horizontal і повторюємо тест. Healthy target при injector, який уперся в CPU або не досягає requested arrival rate, не дає валідного висновку про capacity SUT.
Сильна відповідь включає
- моніторить injector resources і achieved traffic
- використовує efficient CLI/headless execution
- масштабує generators і повторює тест до висновку про target
Практичний приклад
Якщо requested traffic росте з 1,000 до 1,500 RPS, але actual traffic залишається 1,050 RPS, а generator CPU біля saturation, спочатку додаємо generator capacity і лише потім робимо висновок про application limit.
Джерела
JMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDTop 50 JMeter Interview QuestionsArtOfTesting · Independent recurrence signal for performance test types, activities, parameterization, correlation, ramp-up, CLI mode, percentiles, distributed load and troubleshooting scenariosApache JMeter User's Manual — Best PracticesApache JMeter · Technical authority for load-generator sizing, coordinated omission, CLI execution, listener cost, CSV data and large-scale executionApache JMeter User's Manual — Remote (Distributed) TestingApache JMeter · Technical authority for distributed load generation, controller/worker behavior, data files and generator-side bottlenecksLocust documentation — Distributed load generationLocust · Technical authority for master/worker load generation and generator CPU constraintsMetrics & objectivesSeniorOccasionalPlanningЯкі entry та exit criteria ви визначите для performance test?
Відповідь
Entry criteria підтверджують, що тест може дати довірливі evidence: deployable build, stable і зрозумілий environment, representative data, validated scripts, відомий workload profile, monitoring, synchronized clocks за потреби та достатня load-generator capacity. Exit criteria — вимірювані objectives: percentile latency, throughput, error rate, resource/saturation limits, stability і recovery expectations, а також правило для unresolved anomalies. Числа мають походити з requirements, SLO, risk або agreed baseline.
Сильна відповідь включає
- entry criteria захищають validity тесту та observability
- exit criteria кількісні й прив'язані до explicit workload
- не вигадує SLA numbers без джерела
Практичний приклад
Не заявляємо 'p95 under 500 ms', якщо 500 ms не є реальною requirement або agreed baseline-derived gate. Criterion має сенс лише разом із traffic level і scenario, до яких він застосовується.
Джерела
Performance Testing Interview Questions with AnswersGeeksforGeeks · Current recurrence signal for performance-testing fundamentals, test types, workload design, metrics, bottlenecks, test process and tool selectionJMeter Interview QuestionsAssertHired · Independent interview-pattern signal for realistic load design, test-plan structure, correlation, distributed testing, percentiles, SLOs and CI/CDISTQB Certified Tester Foundation Level Specialist Syllabus — Performance TestingISTQB · Authoritative performance-testing terminology, test types, metrics, load generation, operational profiles, planning, execution and result analysisGrafana k6 documentation — ThresholdsGrafana Labs · Technical authority for percentile/error-rate pass-fail criteria, SLO encoding and automated performance gatesClient & browser performanceMiddleCommonTest designЯк тестувати і моніторити Core Web Vitals?
Відповідь
Вимірюйте LCP, INP і CLS для критичних користувацьких флоу, сегментуючи дані реальних користувачів за сторінкою, пристроєм і з'єднанням на рівні 75-го перцентиля. Використовуйте контрольовані лабораторні тести для відтворюваного регресійного фідбеку і польову телеметрію (field telemetry) для реального користувацького досвіду; лабораторні проксі не можуть повністю відтворити INP чи варіативність популяції користувачів. Встановлюйте бюджети для окремих сторінок, зберігайте діагностичні трейси, і досліджуйте регресії, а не оптимізуйте лише один агрегований показник.
Сильна відповідь включає
- називає LCP, INP і CLS та їхній вплив на користувача
- використовує і лабораторні, і польові дані
- сегментує на рівні 75-го перцентиля замість усереднення всього
Практичний приклад
Лабораторний показник Lighthouse команди виглядає чудово після релізу, але польові дані показують серйозну регресію INP для користувачів на середньорівневих Android-пристроях з повільними процесорами; швидке апаратне забезпечення лабораторного середовища так і не виявило блокування main thread, яке проявляється лише за реальної варіативності пристроїв і мережі.
Джерела
Web VitalsGoogle · LCP, INP, CLS, lab measurement, field measurement and performance thresholdsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceClient & browser performanceSeniorOccasionalStrategyЧому лабораторні та польові (field) результати вимірювання продуктивності вебу можуть розходитись, і як команді використовувати обидва підходи?
Відповідь
Лабораторні тести контролюють апаратне забезпечення, мережу, кеш і дії, тому вони відтворювані й корисні перед релізом; польові дані включають реальні пристрої, географію, довгі завдання, стани кешу та поведінку користувачів. Порівнюйте еквівалентні визначення сторінки та когорти, використовуйте лабораторні трейси для діагностики регресій, помічених у польових перцентилях, і уникайте оголошення успіху на основі швидкого синтетичного прогону, коли значущий сегмент користувачів усе ще працює повільно.
Сильна відповідь включає
- пояснює популяції та контрольовані умови кожного джерела даних
- використовує польові дані для результатів, а лабораторні — для діагностики
- сегментує користувачів, а не приховує повільні когорти
Практичний приклад
Синтетичний лабораторний тест, запущений з дата-центру зі швидким фіксованим з'єднанням, показує LCP 1.2 секунди, тоді як польові дані з CrUX показують, що 75-й перцентиль LCP для користувачів на 3G-з'єднанні на цільовому ринку становить 4.8 секунди; команда використовує лабораторний профіль з обмеженою швидкістю, що відповідає реальним мережевим умовам цього ринку, щоб відтворити й виправити регресію, а не довіряти оптимістичному лабораторному числу.
Джерела
Web VitalsGoogle · LCP, INP, CLS, lab measurement, field measurement and performance thresholdsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceFundamentals & test typesSeniorOccasionalRelease decisionЯк визначити бюджет продуктивності фронтенду, корисний у CI?
Відповідь
Обирайте орієнтовані на користувача метрики флоу плюс контрольовані складові — розмір JavaScript, зображень і шрифтів, кількість запитів та навантаження на main thread. Встановіть стабільний базовий рівень (baseline), задайте пороги для репрезентативного пристрою і сторінки, і падайте на значущій регресії, а не на шумовому абсолютному відхиленні. Дозволяйте явний рецензований виняток з терміном дії, і перевіряйте, що бюджети CI корелюють з реальним польовим досвідом після релізу.
Сильна відповідь включає
- поєднує користувацькі результати з практичними лімітами ресурсів
- контролює середовище та статистичний шум
- використовує рецензовані винятки та кореляцію з польовими даними
Практичний приклад
Бюджет CI, що валить збірку через будь-яке збільшення розміру бандла, змушує розробників постійно обходити його нерецензованими перевизначеннями; перехід на бюджет, що падає лише при регресії, яка перевищує статистично значущий поріг, з явним процесом винятків, що має термін дії, для легітимних збільшень, справді дотримується, а не ігнорується щоразу.
Джерела
Web VitalsGoogle · LCP, INP, CLS, lab measurement, field measurement and performance thresholdsDORA research programGoogle Cloud · Software delivery performance (current five-metric model) and organizational capabilitiesReliability & recoveryMiddleOccasionalTheoryЯк навантажувальні, стрес, спайк та soak-тести відповідають на різні питання?
Відповідь
Навантажувальні тести перевіряють очікуваний попит, стрес-тести знаходять поведінку понад межу можливостей, спайк-тести — раптову зміну навантаження, а soak-тести — тривалу роботу та витоки ресурсів. Кожному потрібне репрезентативне навантаження, явні цілі рівня обслуговування та вузькі місця, наближені до продакшну.
Сильна відповідь включає
- чіткі окремі цілі
- репрезентативне навантаження
- цілі рівня обслуговування
Практичний приклад
Команда проганяє навантажувальний тест на очікуваному трафіку Чорної п'ятниці, і він проходить, але окремий soak-тест з тим самим помірним навантаженням протягом 48 годин виявляє повільний витік пам'яті у фоновому завданні, який на третій день реального розпродажу обвалив би сервіс — короткий навантажувальний тест такого ніколи б не виявив.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsDOU — QA interview: 250+ questionsDOU · Coverage signal across Junior, Middle, Senior, AQA, web, mobile and practical topicsWorkload modellingSeniorOccasionalScenarioЯк перетворити продакшн-використання на обґрунтовану модель навантаження для перформанс-тестування?
Відповідь
Використовуйте обсяги трафіку, мікс операцій, конкурентність, патерни надходження запитів, розміри payload, стан кешу та розподіл даних. Враховуйте припущення щодо зростання та пікових навантажень, документуйте невизначеність і моделюйте час обдумування (think time) й асинхронну роботу, а не масштабуйте один ендпоінт рівномірно.
Сильна відповідь включає
- мікс операцій і темп надходження
- реалістичність даних і кешу
- документує припущення
Практичний приклад
Замість того щоб просто бомбардувати ендпоінт пошуку великою кількістю запитів на секунду, команда відтворює вибірковий тиждень реального продакшн-трафіку з фактичним міксом переглядів, пошуку та оформлення замовлень, з реалістичними паузами між запитами, і виявляє, що флоу оформлення замовлення деградує під час спайку пошукового навантаження — те, що рівномірний навантажувальний тест ніколи б не показав.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceMetrics & objectivesMiddleOccasionalTheoryЧому перцентилі латентності, пропускна здатність і рівень помилок разом корисніші за середній час відповіді?
Відповідь
Середні значення приховують повільних користувачів і форму розподілу. Перцентилі показують хвостову (tail) латентність, пропускна здатність показує обсяг виконаної роботи, а рівень помилок виявляє перевантаження чи збій залежності. Інтерпретуйте їх разом із насиченням ресурсів і точною моделлю навантаження.
Сильна відповідь включає
- хвостова латентність
- обсяг роботи та рівень збоїв
- співвідносить із насиченням ресурсів
Практичний приклад
Дашборд показує середній час відповіді 120 мс і виглядає здоровим, але p99-латентність — 4 секунди, тобто 1% користувачів (потенційно тисячі під час піку) мають жахливий досвід, який середнє значення повністю приховує; переведення порогу алертів команди із середнього на p95/p99 виявляє реальні деградації на тижні раніше.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceBottlenecks & diagnosisSeniorOccasionalScenarioЯкі докази допомагають відрізнити вузьке місце застосунку від вузького місця бази даних чи залежного сервісу?
Відповідь
Зіставляйте наскрізні трейси, час у черзі, латентність сервісу, плани виконання й блокування бази даних, пули з'єднань, CPU, пам'ять, I/O та помилки залежностей. Змінюйте одну контрольовану змінну або обходьте залежність, щоб перевірити гіпотезу.
Сильна відповідь включає
- крос-шарова кореляція
- черги й пули
- контрольована перевірка гіпотез
Практичний приклад
Трейс повільного ендпоінта показує, що 90% часу йде на очікування виклику до бази даних, тож замість здогадок інженер перевіряє план виконання запиту й знаходить відсутній індекс, що спричиняє повне сканування таблиці; додавання індексу скорочує p95-латентність ендпоінта з 800 мс до 40 мс, підтверджуючи, що вузьким місцем була саме база даних, а не код застосунку.
Джерела
Google SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceGrafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsReliability & recoverySeniorOccasionalScenarioЯк команда може протестувати відмовостійкість, не створюючи неконтрольований збій?
Відповідь
Визначте сигнал стійкого стану (steady state) та гіпотезу, обмежте радіус ураження, впровадьте один реалістичний збій, моніторте автоматичні захисні механізми та зупиняйтеся за узгодженими порогами. Починайте в контрольованих середовищах і просувайте експерименти лише тоді, коли доведені спостережуваність і можливість відкату.
Сильна відповідь включає
- стійкий стан і гіпотеза
- обмежений радіус ураження
- критерії зупинки й відкату
Практичний приклад
Перш ніж впроваджувати реальний збій у продакшні, команда спершу проганяє той самий chaos-експеримент — вбиває один інстанс платіжного сервісу — в staging, підтверджує, що автомасштабування замінює його за 30 секунд без втрачених запитів, налаштовує автоматичне переривання, якщо рівень помилок перевищить 1%, і лише потім планує невеликий, заздалегідь оголошений запуск у продакшні в години низького трафіку.
Джерела
Google SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceMetrics & objectivesLeadOccasionalTheoryЯк SLO та бюджети похибок (error budgets) можуть впливати на пріоритети тестування?
Відповідь
SLO визначає прийнятну ціль надійності для показника, видимого користувачу; бюджет похибок — це дозволена ненадійність. Тести мають захищати сценарії й режими відмов, які витрачають цей бюджет, і перевіряти виявлення, пом'якшення та відновлення.
Сильна відповідь включає
- показник, видимий користувачу
- дозволена ненадійність
- пов'язує тести з операційним ризиком
Практичний приклад
Маючи SLO доступності 99,9% для оформлення замовлення, команда помічає, що вже витратила 80% місячного бюджету похибок до десятого дня через нестабільну інтеграцію з платіжним провайдером, тож відкладає заплановану UI-фічу й натомість пріоритизує набір тестів на відмовостійкість навколо повторів і circuit breaker-ів саме для цієї залежності.
Джерела
Google SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoveryMiddleOccasionalScenarioЯк би ви підійшли до моделей навантаження за звичайного та пікового трафіку?
Відповідь
Почніть з того, що ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на моделі навантаження за звичайного та пікового трафіку. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для моделей навантаження
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
Навантажувальний тест, побудований виключно на середньодобовому трафіку, пропустив те, що трафік у піковий час мав зовсім інший мікс типів запитів — значно більше пошукових запитів і менше оформлень замовлень. Підхід полягав у побудові двох окремих моделей навантаження з реальних вибірок продакшн-трафіку — для звичайної та для історично пікової години — і прогоні обох перед кожним значним релізом.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resiliencePrometheus alerting practicesPrometheus · Symptom-based actionable alerts, metamonitoring and noise reductionReliability & recoveryMiddleOccasionalRisk analysisЯкі ризики та тестові оракули найважливіші для моделей навантаження під час сповільнення низхідного сервісу?
Відповідь
Визначте пріоритетність ризиків, які можуть звести нанівець результат для користувача або бізнесу, ще до того, як ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на моделі навантаження під час сповільнення низхідного сервісу. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для моделей навантаження
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
Коли downstream-сервіс рекомендацій сповільнився, пул потоків сервісу вище за потоком заповнився очікуванням на нього й повністю перестав обслуговувати непов'язані запити. Головним ризиком стало каскадне вичерпання ресурсів через одну повільну залежність, а оракулом — навантажувальний тест, що штучно затримує downstream-мок і перевіряє, що сервіс продовжує обслуговувати інші ендпоінти в межах SLO.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoverySeniorOccasionalTest designЯк би ви розробили сфокусовану тестову стратегію для моделей навантаження з пульсуючим надходженням запитів?
Відповідь
Побудуйте найменшу корисну модель поведінки, спираючись на те, що ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на моделі навантаження з пульсуючим надходженням запитів. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для моделей навантаження
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
Навантажувальний тест із рівним нарощуванням так і не виявив баг переповнення черги, який проявлявся лише тоді, коли маркетингова розсилка надсилала тисячі запитів за кілька секунд. Стратегія перейшла на модель навантаження з короткими різкими сплесками трафіку поверх рівного базового рівня, спеціально змодельовану під форму розпродажу-блискавки чи сплеску від пуш-сповіщень.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoverySeniorOccasionalTroubleshootingЯкі варіанти відмов ви б досліджували першими щодо моделей навантаження після відмови регіону або інстансу?
Відповідь
Зробіть розслідування відтворюваним, спираючись на те, що ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на моделі навантаження після відмови регіону або інстансу. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для моделей навантаження
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
Після відмови однієї зони доступності інші зони прийняли перенаправлений трафік, але затримка деградувала значно сильніше, ніж передбачала проста математика подвоєного навантаження. Першим перевірили, чи враховувала модель навантаження витрати на повторне встановлення з'єднань і прогрів кешу на інстансах, що вижили, — і виявилося, що ні.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoveryLeadOccasionalAutomationЩо б ви автоматизували для моделей навантаження, коли черга запитів зростає швидше, ніж встигає розвантажуватися, а що залишили б ручним?
Відповідь
Перш ніж автоматизувати, почніть з того, що ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на моделі навантаження, коли черга запитів зростає швидше, ніж встигає розвантажуватися. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для моделей навантаження
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
Команда автоматизувала навантажувальний тест, що поступово підвищує частоту надходження запитів понад відому пропускну спроможність і перевіряє, що глибина черги й затримка обробки видно на дашборді, а не зростають непомітно. Рішення про фактичне збільшення потужності чи політику скидання навантаження у відповідь залишили ручним, залежним від бізнес-контексту.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resiliencePrometheus alerting practicesPrometheus · Symptom-based actionable alerts, metamonitoring and noise reductionReliability & recoverySeniorOccasionalRelease decisionЯкі докази вам потрібні, щоб ухвалити рішення про реліз щодо перцентилів затримки за звичайного та пікового трафіку?
Відповідь
Сформулюйте рішення про реліз на основі того, що ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на перцентилі затримки за звичайного та пікового трафіку. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для перцентилів затримки
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
Перед релізом нового алгоритму ранжування пошуку команда вимагала показників затримки p50, p95 і p99 як зі звичайного, так і з пікового навантажувального прогону, бо p50 нового алгоритму виглядав нормально, а от p99 під пік майже потроївся через повільний резервний шлях.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoveryMiddleOccasionalScenarioЯк би ви підійшли до перцентилів затримки під час сповільнення низхідного сервісу?
Відповідь
Почніть з того, що ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на перцентилі затримки під час сповільнення низхідного сервісу. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для перцентилів затримки
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
Коли downstream-сервіс складу сповільнився, середня затримка сервісу майже не змінилася, бо більшість запитів не зверталися до складу, зате p99 різко підскочив саме для запитів, які до нього зверталися. Підхід полягав у відстеженні перцентилів затримки в розрізі по кожному шляху залежності, а не однієї усередненої цифри, щоб локальний вплив був видимий, а не прихований у середньому.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoveryMiddleOccasionalRisk analysisЯкі ризики та тестові оракули найважливіші для перцентилів затримки з пульсуючим надходженням запитів?
Відповідь
Визначте пріоритетність ризиків, які можуть звести нанівець результат для користувача або бізнесу, ще до того, як ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на перцентилі затримки з пульсуючим надходженням запитів. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для перцентилів затримки
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
Під час сплеску трафіку p50 затримки лишався стабільним, тоді як p99 підскочив майже на хвилину, бо запити в черзі чекали за сплеском, — патерн, який рівномірний навантажувальний тест ніколи не показував. Головним ризиком стало те, що середні значення й навіть p50 можуть приховувати «хвостову» затримку через сплески, тож оракулом став навантажувальний тест у формі сплеску, що перевіряє утримання p99 у межах бюджету під час і одразу після сплеску.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoverySeniorOccasionalTest designЯк би ви розробили сфокусовану тестову стратегію для перцентилів затримки після відмови регіону або інстансу?
Відповідь
Побудуйте найменшу корисну модель поведінки, спираючись на те, що ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на перцентилі затримки після відмови регіону або інстансу. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для перцентилів затримки
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
Стратегія перевірки поведінки при failover включала вбивання частини інстансів посеред тесту з безперервним записом перцентилів затримки протягом усього вікна відновлення, а не лише до й після, бо найгірші сплески p99 насправді траплялися за ті кілька секунд активного перебалансування, а не в новому стабільному стані.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resiliencePrometheus alerting practicesPrometheus · Symptom-based actionable alerts, metamonitoring and noise reductionReliability & recoverySeniorOccasionalTroubleshootingЯкі варіанти відмов ви б досліджували першими щодо перцентилів затримки, коли черга запитів зростає швидше, ніж встигає розвантажуватися?
Відповідь
Зробіть розслідування відтворюваним, спираючись на те, що ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на перцентилі затримки, коли черга запитів зростає швидше, ніж встигає розвантажуватися. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для перцентилів затримки
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
У міру зростання черги під час навантажувального тесту p50 затримки виглядав оманливо стабільним, бо більшість вибраних запитів усе ще були швидкими й проходили чергу через пріоритетну смугу, тоді як p99 зростав для запитів із низьким пріоритетом, застряглих за зростаючою чергою. Першим перевірили, чи обчислюється метрика перцентиля по всіх запитах, чи випадково виключає ті, що застрягли в черзі.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoveryLeadOccasionalAutomationЩо б ви автоматизували для меж місткості за звичайного та пікового трафіку, а що залишили б ручним?
Відповідь
Перш ніж автоматизувати, почніть з того, що ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на межі місткості за звичайного та пікового трафіку. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для меж місткості
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
Команда автоматизувала запланований навантажувальний тест, що нарощує трафік до задокументованої межі місткості й провалює білд, якщо частка помилок зростає до досягнення цієї точки, — це виявило регресію місткості через непов'язану зміну в залежності. А от підвищення самого офіційно задокументованого числа місткості лишили ручним рішенням, що вимагає підпису чергового ліда.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoverySeniorOccasionalRelease decisionЯкі докази вам потрібні, щоб ухвалити рішення про реліз щодо меж місткості під час сповільнення низхідного сервісу?
Відповідь
Сформулюйте рішення про реліз на основі того, що ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на межі місткості під час сповільнення низхідного сервісу. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для меж місткості
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
Перед релізом зміни, що додавала новий downstream-виклик у гарячий шлях коду, команда хотіла доказів того, що станеться із загальною межею місткості сервісу, коли саме цей downstream-виклик сповільниться, бо здорове на вигляд число місткості за звичайних умов раніше приховувало значно нижчу фактичну межу після деградації залежності під час одного з минулих інцидентів.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoveryMiddleOccasionalScenarioЯк би ви підійшли до меж місткості з пульсуючим надходженням запитів?
Відповідь
Почніть з того, що ви перетворюєте бізнес-попит і очікування щодо надійності на репрезентативне навантаження й вимірювану гіпотезу. Зосередьтеся на межі місткості з пульсуючим надходженням запитів. Як оракул використовуйте цілі рівня обслуговування (SLO), телеметрію ресурсів і коректність роботи під навантаженням. Охопіть рівне, пікове, стрес-, тривале (soak) навантаження, а також поведінку при деградації та відновленні. Тримайте дані й залежності під контролем настільки, щоб можна було відтворити збій. Випускайте реліз лише тоді, коли пороги дотримано без прихованих помилок, втрати даних чи небезпечного посилення повторних спроб (retry amplification).
Сильна відповідь включає
- чіткий ризик і тестовий оракул для меж місткості
- моделює реалістичне навантаження
- пов'язує затримку з використанням ресурсів і коректністю
- наводить вимірювані докази та констатацію залишкового ризику
Практичний приклад
Задокументована межа місткості сервісу передбачала рівномірну частоту надходження запитів, але одного разу маркетингове сповіщення спричинило сплеск, який за загальним обсягом був значно нижчим за задокументовану межу, але все одно призвів до перевантаження, бо сплеск надійшов швидше, ніж автоскейлер устиг відреагувати. Підхід полягав у визначенні межі місткості як функції і стійкої частоти, і частоти сплесків, з подальшим тестуванням проти обох.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resiliencePrometheus alerting practicesPrometheus · Symptom-based actionable alerts, metamonitoring and noise reductionReliability & recoveryMiddleOccasionalRisk analysisЯкі ризики та тестові оракули найважливіші для обмежень пропускної спроможності після регіонального збою або відмови окремого інстансу?
Відповідь
Визначте пріоритетність ризиків, здатних звести нанівець результат для користувача чи бізнесу, ще до перетворення бізнес-попиту та очікувань щодо надійності на репрезентативне навантаження і вимірювану гіпотезу. У фокусі — обмеження пропускної спроможності, після регіонального збою або відмови окремого інстансу. Як оракул використовуйте service-level objectives (SLO), телеметрію ресурсів і коректність поведінки під навантаженням. Охопіть рівномірне навантаження, сплески (spike), стрес-тест, тривале навантаження (soak), деградацію та відновлення після збою. Тримайте дані та залежності під контролем настільки, щоб збої можна було відтворити. Випускайте реліз, лише коли порогові значення дотримано без прихованих помилок, втрати даних чи небезпечного лавиноподібного зростання повторних спроб.
Сильна відповідь включає
- явно визначені ризики та тестовий оракул для обмежень пропускної спроможності
- моделює реалістичне навантаження
- пов'язує затримку з ресурсами та коректністю результату
- вимірювані докази та чітко сформульований залишковий ризик
Практичний приклад
Сервіс оформлення замовлень зазвичай працює на 40% CPU на трьох інстансах, але коли під час деплою один інстанс у eu-west-1 було завершено, два інші вийшли на 95% CPU і почали обривати з'єднання вже за дві хвилини. Команда визначила головний ризик — відсутність нижньої межі автоскейлінгу, яка неявно припускала, що всі три інстанси завжди справні, і додала до навантажувального набору тест зі штучним 'вбивством' інстансу, який вимірює частку помилок і p99-затримку протягом десяти хвилин після події.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoverySeniorOccasionalTest designЯк би ви розробили точкову тест-стратегію для обмежень пропускної спроможності, коли черга завдань (backlog) росте швидше, ніж встигає розвантажуватися?
Відповідь
Побудуйте найменшу корисну модель поведінки, почавши з перетворення бізнес-попиту та очікувань щодо надійності на репрезентативне навантаження і вимірювану гіпотезу. У фокусі — обмеження пропускної спроможності, коли черга завдань (backlog) росте швидше, ніж встигає розвантажуватися. Як оракул використовуйте service-level objectives (SLO), телеметрію ресурсів і коректність поведінки під навантаженням. Охопіть рівномірне навантаження, сплески (spike), стрес-тест, тривале навантаження (soak), деградацію та відновлення після збою. Тримайте дані та залежності під контролем настільки, щоб збої можна було відтворити. Випускайте реліз, лише коли порогові значення дотримано без прихованих помилок, втрати даних чи небезпечного лавиноподібного зростання повторних спроб.
Сильна відповідь включає
- явно визначені ризики та тестовий оракул для обмежень пропускної спроможності
- моделює реалістичне навантаження
- пов'язує затримку з ресурсами та коректністю результату
- вимірювані докази та чітко сформульований залишковий ризик
Практичний приклад
Для черги звірки платежів команда побудувала сценарій у k6, який публікує повідомлення зі швидкістю в 1.5 раза вищою за виміряну пропускну здатність споживачів протягом 20 хвилин, а потім повертається до норми, відстежуючи глибину черги, лаг споживачів і завантаження CPU воркерів як оракул. Тест виявив, що лаг споживачів так і не відновлювався, бо повторні спроби для неопрацьованих повідомлень поверталися в ту саму чергу, тільки посилюючи затор замість того, щоб його розвантажувати.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoverySeniorOccasionalTroubleshootingЯкі режими відмов ви б досліджували найпершими щодо тайм-аутів і повторів за звичайного та пікового навантаження?
Відповідь
Зробіть розслідування відтворюваним, почавши з перетворення бізнес-попиту та очікувань щодо надійності на репрезентативне навантаження і вимірювану гіпотезу. У фокусі — тайм-аути і повтори, за звичайного та пікового навантаження. Як оракул використовуйте service-level objectives (SLO), телеметрію ресурсів і коректність поведінки під навантаженням. Охопіть рівномірне навантаження, сплески (spike), стрес-тест, тривале навантаження (soak), деградацію та відновлення після збою. Тримайте дані та залежності під контролем настільки, щоб збої можна було відтворити. Випускайте реліз, лише коли порогові значення дотримано без прихованих помилок, втрати даних чи небезпечного лавиноподібного зростання повторних спроб.
Сильна відповідь включає
- явно визначені ризики та тестовий оракул для тайм-аутів і повторів
- моделює реалістичне навантаження
- пов'язує затримку з ресурсами та коректністю результату
- вимірювані докази та чітко сформульований залишковий ризик
Практичний приклад
Під час навантажувального тесту в стилі 'чорної пʼятниці' p99-затримка API інвентаризації зросла з 200 мс до 4 секунд, хоча CPU лишалося нижче 60%. Розслідування показало, що тайм-аут HTTP-клієнта за замовчуванням був коротшим за час очікування пулу з'єднань бази даних під навантаженням, тому запити спрацьовували в тайм-аут і повторювалися, подвоюючи реальне навантаження; проблему вирішили, збільшивши розмір пулу і узгодивши значення тайм-аутів.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoveryLeadOccasionalAutomationЩо б ви автоматизували для тайм-аутів і повторів під час уповільнення низхідного (downstream) сервісу, а що залишили б ручним?
Відповідь
Перш ніж автоматизувати, почніть із перетворення бізнес-попиту та очікувань щодо надійності на репрезентативне навантаження і вимірювану гіпотезу. У фокусі — тайм-аути і повтори, під час уповільнення низхідного (downstream) сервісу. Як оракул використовуйте service-level objectives (SLO), телеметрію ресурсів і коректність поведінки під навантаженням. Охопіть рівномірне навантаження, сплески (spike), стрес-тест, тривале навантаження (soak), деградацію та відновлення після збою. Тримайте дані та залежності під контролем настільки, щоб збої можна було відтворити. Випускайте реліз, лише коли порогові значення дотримано без прихованих помилок, втрати даних чи небезпечного лавиноподібного зростання повторних спроб.
Сильна відповідь включає
- явно визначені ризики та тестовий оракул для тайм-аутів і повторів
- моделює реалістичне навантаження
- пов'язує затримку з ресурсами та коректністю результату
- вимірювані докази та чітко сформульований залишковий ризик
Практичний приклад
Команда автоматизувала chaos-тест, який вносить 3-секундну затримку в замокану downstream-службу ціноутворення й перевіряє, що circuit breaker викликача спрацьовує в межах налаштованого порогу, а кількість повторних спроб лишається обмеженою — і запускає цей тест на кожній збірці пайплайна. Дослідницьке тестування реальної поведінки відмов сторонньої служби ціноутворення свідомо залишили ручним, оскільки sandbox-середовище вендора нестабільне і потребує людської оцінки результатів.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resiliencePrometheus alerting practicesPrometheus · Symptom-based actionable alerts, metamonitoring and noise reductionReliability & recoverySeniorOccasionalRelease decisionЯкі докази вам потрібні, щоб ухвалити рішення про реліз щодо тайм-аутів і повторів за сплесків (burst) вхідних запитів?
Відповідь
Сформулюйте рішення про реліз, почавши з перетворення бізнес-попиту та очікувань щодо надійності на репрезентативне навантаження і вимірювану гіпотезу. У фокусі — тайм-аути і повтори, за сплесків (burst) вхідних запитів. Як оракул використовуйте service-level objectives (SLO), телеметрію ресурсів і коректність поведінки під навантаженням. Охопіть рівномірне навантаження, сплески (spike), стрес-тест, тривале навантаження (soak), деградацію та відновлення після збою. Тримайте дані та залежності під контролем настільки, щоб збої можна було відтворити. Випускайте реліз, лише коли порогові значення дотримано без прихованих помилок, втрати даних чи небезпечного лавиноподібного зростання повторних спроб.
Сильна відповідь включає
- явно визначені ризики та тестовий оракул для тайм-аутів і повторів
- моделює реалістичне навантаження
- пов'язує затримку з ресурсами та коректністю результату
- вимірювані докази та чітко сформульований залишковий ризик
Практичний приклад
Перед релізом оновлення сервісу сповіщень команда вимагала доказів на основі burst-тесту, що імітує 500 запитів, які надходять за 2-секундне вікно, і показує, що backoff між повторними спробами лишається експоненційним із джитером, а жоден запит не повторюється більш ніж 3 рази. Без таких доказів попередній реліз спричинив 'шторм' повторних запитів, що поклав сервіс на 12 хвилин.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoveryMiddleOccasionalScenarioЯк би ви підійшли до тайм-аутів і повторів після регіонального збою або відмови окремого інстансу?
Відповідь
Почніть із перетворення бізнес-попиту та очікувань щодо надійності на репрезентативне навантаження і вимірювану гіпотезу. У фокусі — тайм-аути і повтори, після регіонального збою або відмови окремого інстансу. Як оракул використовуйте service-level objectives (SLO), телеметрію ресурсів і коректність поведінки під навантаженням. Охопіть рівномірне навантаження, сплески (spike), стрес-тест, тривале навантаження (soak), деградацію та відновлення після збою. Тримайте дані та залежності під контролем настільки, щоб збої можна було відтворити. Випускайте реліз, лише коли порогові значення дотримано без прихованих помилок, втрати даних чи небезпечного лавиноподібного зростання повторних спроб.
Сильна відповідь включає
- явно визначені ризики та тестовий оракул для тайм-аутів і повторів
- моделює реалістичне навантаження
- пов'язує затримку з ресурсами та коректністю результату
- вимірювані докази та чітко сформульований залишковий ризик
Практичний приклад
Після тесту регіонального фейловеру SDET помітив, що клієнти майже хвилину продовжували повторювати запити на IP уже мертвого регіону, бо TTL DNS-запису і тайм-аут повторних спроб були неузгоджені. Рішенням стало скоротити тайм-аут повторних спроб до значення, меншого за TTL DNS, і додати тест, який 'вбиває' інстанс просто під час трафіку та перевіряє, що трафік клієнтів переходить у справний регіон протягом 15 секунд.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoveryMiddleOccasionalRisk analysisЯкі ризики та тестові оракули найважливіші для тайм-аутів і повторів, коли черга завдань (backlog) росте швидше, ніж встигає розвантажуватися?
Відповідь
Визначте пріоритетність ризиків, здатних звести нанівець результат для користувача чи бізнесу, ще до перетворення бізнес-попиту та очікувань щодо надійності на репрезентативне навантаження і вимірювану гіпотезу. У фокусі — тайм-аути і повтори, коли черга завдань (backlog) росте швидше, ніж встигає розвантажуватися. Як оракул використовуйте service-level objectives (SLO), телеметрію ресурсів і коректність поведінки під навантаженням. Охопіть рівномірне навантаження, сплески (spike), стрес-тест, тривале навантаження (soak), деградацію та відновлення після збою. Тримайте дані та залежності під контролем настільки, щоб збої можна було відтворити. Випускайте реліз, лише коли порогові значення дотримано без прихованих помилок, втрати даних чи небезпечного лавиноподібного зростання повторних спроб.
Сильна відповідь включає
- явно визначені ризики та тестовий оракул для тайм-аутів і повторів
- моделює реалістичне навантаження
- пов'язує затримку з ресурсами та коректністю результату
- вимірювані докази та чітко сформульований залишковий ризик
Практичний приклад
У системі обробки замовлень агресивні повторні спроби для повільної downstream-перевірки залишків призводили до того, що кожен невдалий виклик породжував ще три, і черга росла вчетверо швидше, ніж воркери встигали її розвантажувати. Команда визначила неконтрольоване лавиноподібне зростання повторних спроб як головний ризик і зробила глибину черги та кількість повторів на повідомлення основним тестовим оракулом перед тим, як дозволити нову політику повторів у продакшн.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resilienceReliability & recoverySeniorOccasionalTest designЯк би ви розробили точкову тест-стратегію для патерна circuit breaker за звичайного та пікового навантаження?
Відповідь
Побудуйте найменшу корисну модель поведінки, почавши з перетворення бізнес-попиту та очікувань щодо надійності на репрезентативне навантаження і вимірювану гіпотезу. У фокусі — патерн circuit breaker, за звичайного та пікового навантаження. Як оракул використовуйте service-level objectives (SLO), телеметрію ресурсів і коректність поведінки під навантаженням. Охопіть рівномірне навантаження, сплески (spike), стрес-тест, тривале навантаження (soak), деградацію та відновлення після збою. Тримайте дані та залежності під контролем настільки, щоб збої можна було відтворити. Випускайте реліз, лише коли порогові значення дотримано без прихованих помилок, втрати даних чи небезпечного лавиноподібного зростання повторних спроб.
Сильна відповідь включає
- явно визначені ризики та тестовий оракул для патерна circuit breaker
- моделює реалістичне навантаження
- пов'язує затримку з ресурсами та коректністю результату
- вимірювані докази та чітко сформульований залишковий ризик
Практичний приклад
Команда розробила точкову тест-матрицю для circuit breaker на базі resilience4j для сервісу рекомендацій: за звичайного навантаження вона перевіряє, що вимикач лишається закритим при базовому рівні помилок 2%, а за 5-кратного пікового навантаження зі штучними 30% помилок — що вимикач відкривається в межах налаштованого вікна і запити 'падають швидко', а не накопичуються в черзі. Відновлення через напіввідкритий стан тестували окремо: залежність відновлювали і перевіряли, що вимикач закривається після потрібної кількості успішних пробних запитів.
Джерела
Grafana k6 documentationGrafana Labs · Performance test modelling, execution and metricsGoogle SRE booksGoogle · Reliability, SLOs, monitoring, incidents and resiliencePrometheus alerting practicesPrometheus · Symptom-based actionable alerts, metamonitoring and noise reductionReliability & recoverySeniorOccasionalTroubleshootingЯкі режими відмов ви б досліджували найпершими щодо патерна circuit breaker під час уповільнення низхідного (downstream) сервісу?
Відповідь
Зробіть розслідування відтворюваним, почавши з перетворення бізнес-попиту та очікувань щодо надійності на репрезентативне навантаження і вимірювану гіпотезу. У фокусі — патерн circuit breaker, під час уповільнення низхідного (downstream) сервісу. Як оракул використовуйте service-level objectives (SLO), телеметрію ресурсів і коректність поведінки під навантаженням. Охопіть рівномірне навантаження, сплески (spike), стрес-тест, тривале навантаження (soak), деградацію та відновлення після збою. Тримайте дані та залежності під контролем настільки, щоб збої можна було відтворити. Випускайте реліз, лише коли порогові значення дотримано без прихованих помилок, втрати даних чи небезпечного лавиноподібного зростання повторних спроб.
Сильна відповідь включає
- явно визначені ризики та тестовий оракул для патерна circuit breaker
- моделює реалістичне навантаження
- пов'язує затримку з ресурсами та коректністю результату
- вимірювані докази та чітко сформульований залишковий ризик
Практичний приклад
Коли downstream-сервіс перевірки на шахрайство почав відповідати за 8 секунд замість того, щоб просто падати з помилкою, circuit breaker так і не спрацював, бо рахував лише жорсткі помилки, а не повільні відповіді, тож увесь потік оформлення замовлення почав накопичуватися. Розслідування зосередилося на додаванні умови спрацювання за затримкою і тесту, що імітує повільну, але 'успішну' залежність, а не лише повністю відмовлену.