k6 vs JMeter: что выбрать для нагрузочного тестирования в 2026
JMeter держит рынок нагрузочного тестирования с 2002 года. k6 от Grafana — современный претендент с 2017-го. Если выбираешь стек сейчас — посмотри на оба.
k6
Подход: тесты на JavaScript, single-binary CLI, Go под капотом.
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
stages: [
{ duration: '30s', target: 50 },
{ duration: '1m', target: 50 },
{ duration: '30s', target: 0 },
],
};
export default function () {
const res = http.get('https://api.example.com/users/1');
check(res, { 'status is 200': (r) => r.status === 200 });
sleep(1);
}
Плюсы:
- Тесты — код в git, не XML.
- Производительность: 1 машина = 30-40k req/s (JMeter — единицы тысяч).
- CI-friendly: запуск через CLI, отчёт в JSON, интеграция с Grafana.
- Современный JS, async/await, ES modules.
Минусы:
- Нет GUI для записи сценария (как JMeter Proxy Recorder).
- Меньше плагинов и распределённой инфры в коробке.
- Скриптинг — это +1 навык если QA не умеет код.
JMeter
Плюсы:
- GUI для построения теста, можно без кода.
- Огромная экосистема плагинов (20+ лет).
- Distributed mode из коробки для масштабирования на много машин.
- Большое сообщество, много примеров.
Минусы:
- Конфиг — XML (
.jmx). Diff’ы плохо читаемы. - Resource-hungry (Java, Swing GUI).
- Производительность ниже k6.
- JS-скрипты через BeanShell — старая школа.
Что выбрать
k6 если:
- Команда работает с кодом, не боится JS.
- Тесты должны жить в git вместе с разработкой.
- Высокая нагрузка (10k+ RPS).
- Уже есть Grafana для мониторинга.
JMeter если:
- В команде мануалы, которым легче через GUI.
- Корпоратив с legacy-инфраструктурой.
- Нужны нишевые плагины (LDAP, JMS, FTP testing).
- Уже есть Jenkins с JMeter-плагином, не хочется переделывать.
Гибрид
Не редкость — команды используют оба:
- JMeter для разовых сложных сценариев и legacy-проектов.
- k6 для непрерывного нагрузочного в CI на каждый PR.
Что я бы порекомендовал в 2026
Если стартуешь с нуля — k6. Современнее, дружелюбнее CI, тесты в git, лучшая производительность. Кривая обучения — пара дней для QA с базовым JS.
Если JMeter уже стоит и работает — не мигрируй ради миграции. Добавь k6 для новых сценариев.
Подробнее: k6 docs, JMeter docs.