Альтернатива 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?
| k6 | LoadSure | |
|---|---|---|
| Сценарий | Код на 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/ в пути.