Альтернатива k6: онлайн-проверка сайта без скриптов

k6 от Grafana Labs — удобный инструмент для разработчиков: сценарии на JavaScript, пороги в коде, запуск из системы сборки. Разберём, когда он лучше, а когда проще проверить сайт онлайн.

Проверить можно только свой сайт или сайт, владелец которого дал согласие.

Что такое k6 и за что его любят разработчики?

k6 — инструмент для нагрузочного тестирования с открытым кодом, который развивает компания Grafana Labs. Сам инструмент написан на Go, а сценарии для него пишут на JavaScript. Это делает k6 привычным для веб-разработчиков: тест — это обычный файл с кодом, который хранится рядом с проектом.

  • Бесплатный — открытый проект под лицензией AGPL-3.0, запускается на своих машинах.
  • Сценарии в коде. Авторизация, цепочки запросов, случайные данные, разные группы пользователей — всё описывается кодом и проходит проверку кода вместе с проектом.
  • Проверки и пороги. Можно задать условия вида «95 % запросов быстрее 500 мс» прямо в сценарии, и тест завершится с ошибкой, если они не выполнены. Это удобно для автоматической проверки после каждой выкладки.
  • Протоколы. HTTP/1.1 и HTTP/2, WebSocket, gRPC; есть модуль для тестов в настоящем браузере и расширения.
  • Экономный генератор. Одна машина с k6 способна создать заметную нагрузку.
  • Облачный вариант. У Grafana Labs есть платный облачный сервис для запуска тестов k6 с серверов в разных регионах.

Для команды разработчиков, которая хочет проверять производительность программного интерфейса (API) и сайта вместе с остальными автотестами, k6 — один из лучших вариантов.

Почему k6 подходит не всем?

Сильная сторона k6 — сценарии в коде — становится барьером, если в команде нет разработчика. Чтобы проверить обычный сайт, нужно:

  • написать сценарий: перечислить страницы, задать доли просмотров, паузы и загрузку стилей, скриптов и картинок (по умолчанию k6 запрашивает только то, что указано в сценарии);
  • подготовить машину для генерации нагрузки или оплатить облачный вариант;
  • разобраться в метриках и перевести их в понятный вывод: сколько посетителей сайт держит и что исправить.

Для владельца интернет-магазина, маркетолога или менеджера веб-студии это обычно слишком много работы ради одного ответа.

Чем LoadSure отличается от k6?

k6LoadSure
СценарийКод на JavaScript, любой сложностиСобирается сам по страницам сайта, можно поправить
Что можно проверитьСайты, API, WebSocket, gRPCТолько просмотр страниц сайта со стилями, скриптами и картинками
Генератор нагрузкиСвои машины или платное облакоСерверы сервиса
Запуск после выкладкиИз системы сборки, пороги в кодеЧерез API LoadSure на тарифах с API
РезультатМетрики в консоли, выгрузка в системы мониторингаВывод простыми словами, рекомендации, графики и PDF
Автоматическая остановкаНастраивается в сценарииВключена всегда
Подтверждение прав на сайтНе требуется — ответственность на том, кто запускаетОбязательно перед каждым запуском
СтоимостьБесплатно на своих машинах, облако платное[ВСТАВИТЬ: цены или «бесплатно во время беты»]

Когда выбрать k6, а когда — онлайн-проверку?

k6 подойдёт лучше, если в команде есть разработчики; если нужно нагрузить методы API, оформление заказа, личный кабинет или WebSocket; если тесты производительности должны жить в репозитории и запускаться с порогами после каждой выкладки. Для API это наш прямой совет — подробности на странице о нагрузочном тестировании API.

LoadSure подойдёт лучше, если нужен быстрый ответ «выдержит ли сайт распродажу или рекламу» без написания кода; если проверку запускает владелец сайта, маркетолог или менеджер; если нужен отчёт, который можно показать клиенту.

Если вы выбираете между инструментами для инженеров, посмотрите и сравнение с JMeter: там сценарии собираются в графическом интерфейсе, а не в коде. Разобраться в метриках поможет статья что такое RPS и время отклика.

Что важно в любом инструменте?

Тестировать можно только свои сайты и системы или системы, владелец которых дал согласие. k6 запустит нагрузку на любой адрес, поэтому ответственность целиком на том, кто запускает. В LoadSure права на домен проверяются перед каждым запуском. В обоих случаях повышайте нагрузку постепенно, выбирайте время с минимальным трафиком и заранее задайте условия остановки.

Частые вопросы

Бесплатен ли k6?

Сам k6 — открытый проект под лицензией AGPL-3.0, его можно запускать бесплатно на своих машинах. У Grafana Labs есть и платный облачный вариант с генерацией нагрузки из облака.

Нужно ли уметь программировать, чтобы работать с k6?

Да, хотя бы на базовом уровне: сценарии пишутся на JavaScript. Готовые примеры помогают, но разбираться с проверками, порогами и метриками придётся самому.

Можно ли запускать LoadSure из CI, как k6?

Да, через API LoadSure: запуск теста после выкладки, статус и отчёт в формате JSON. API доступен на тарифах, где он указан. Но сценарий в LoadSure — это просмотр страниц сайта, а не произвольные запросы, как в k6.

Что выбрать для проверки API?

k6. LoadSure проверяет сайт так, как его открывают посетители, и не отправляет POST-запросы и вызовы адресов с /api/ в пути.

Ещё по теме