Блог перформанс-інженера Костянтина Шейдаєва
Smoke load тест - перший, обовʼязковий крок
Jul 01, 2025> Що таке Smoke load тест?
- це тест з мінімальним навантаженням, заради того щоб переконатись що твій скрипт працює і система може переварити хочаб одного юзера.
> Коли запускати Smoke load тест?
- Створюється/оновлюється тестовий скрипт
- Генератор навантаження або система для тестування переїхали на інші сервери
- Треба протестувати механізм збору базових метрик системи
- Треба виконати синтетичний тест для моніторингу продакшену
> Основні принципи
1. Швидкий і слабкий, як секс твоєї з колишнім Ваша задача - перевірити, що все працює. Ця перевірка повинна бути непомітною і швидкою. Навантаження: 3-5 rps або 1-2 VUs, саме то. Тривалість: від 30 секунд до 2 хвилин.
2. Не забувай про прелюдію Якщо при запуску на холодну систему потрібно розігрітися, запустити сервіси і завантажити буфери - ок, дай їй цю можливість. Зазвичай 1 rps/VU і 15-20 секунд - більш ніж достатньо.
Тобто ідеальний smoke тест має вигляд:
- 1 VU - 15 секунд - розігрів
- 2 VU - 1 хвилина - тест

> Smoke load тест для k6
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
stages: [
{ duration: '15s', target: 1 }, // Прогрів: 1 VU, 15 секунд (прибрати, якщо прогрів не потрібен)
{ duration: '1m', target: 2 }, // Тест: 2 VU, 1 хвилина
],
};
export default () => {
const urlRes = http.get('https://sheidaev.com/');
check(urlRes, { 'status returned 200': (r) => r.status == 200 });
};
> Аналіз результатів
- Шукай і виправляй помилки в скрипті
- Шукай і виправляй помилки в оточенні теста:
- Генератор навантаження
- Мережа
- Система, що тестується
- Переконайся, що твій скрипт справді створює навантаження:
- Залогуй запити і відповіді
- Провалідуй їх очима
Якщо твій smoke test показує нуль помилок і результати продуктивності здаються прийнятними, можна переходити до інших типів тестів.
> Висновок
Це обов’язковий перший крок у будь-якому процесі навантажувального тестування. Не пропускай цей етап - він заощадить тобі купу часу на налагодження скриптів пізніше.