non-functionaltoolsperformance

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.