k6 - лучший опыт разработчика для нагрузочного тестирования

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

С принятием гибких принципов среди групп разработчиков программного обеспечения тестирование производительности как действие начинается гораздо раньше в процессе разработки, так называемое сдвиг-влево тестирование . Вместо того, чтобы оставлять тестирование производительности отделу QA, команды разработчиков программного обеспечения теперь проводят тестирование независимо или в сотрудничестве с инженерами QA.

Еще одно преимущество смещения тестирования влево - это растущее распространение тестирования производительности в командах разработчиков программного обеспечения. Но многим из этих новых пользователей требуются инструменты, которые хорошо вписываются в их повседневный рабочий процесс , позволяя им регулярно проверяйте с минимальными усилиями. Традиционные инструменты, такие как JMeter и LoadRunner, не подходили для этого, и вместо этого они обращаются к инструментам нового поколения, таким как k6.

Представляем k6

k6 - это бесплатный и инструмент для нагрузочного тестирования с открытым исходным кодом стремясь сделать тестирование производительности продуктивным и приятным.

Инструмент поддерживает скрипты, а тесты k6 написаны на Javascript , давая возможность писать тесты на одном из самых известных языков программирования.

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



img / performance / 81 / k6-лучший-разработчик-опыт.png

k6 - это инструмент командной строки, доступный для Windows, Linux и Mac. В качестве альтернативы есть официальный образ Docker.

Выполнить тест производительности с помощью k6 так же просто, как запустить команду bash:

img / performance / 81 / k6-лучший-опыт-разработчик-2.png

Вот несколько примечательных функций сценариев:

  • Надежные и хорошо документированные API-интерфейсы Javascript для написания тестовых сценариев
  • Глубокая настройка с помощью нескольких вариантов конфигурации
  • Сценарии
  • Параметризация через переменные среды
  • Поддержка веб-сокетов
  • Хуки жизненного цикла для настройки и разборки
  • Проверки, показатели, теги, файлы cookie…

Регистраторы и конвертеры сеансов

Как наиболее сложные инструменты нагрузочного тестирования, k6 имеет регистратор сеансов, который упрощает создание нагрузочных тестов из пользовательского сеанса. Вам нужно только предоставить файл HAR из браузера или пользовательского сеанса, и регистратор создаст для вас тест k6. Это особенно полезно, если вы сайты нагрузочного тестирования .

Кроме того, другие инструменты могут помочь вам автоматически сгенерировать тесты k6 из разных технологий:

  • Конвертер JMeter: конвертируйте файл JMeter .jmx в скрипт k6.
  • Конвертер Postman: конвертируйте коллекцию Postman в сценарий k6.
  • Конвертер OpenAPI: преобразование спецификации Swagger / OpenAPI в скрипт k6.
  • Расширение браузера: сгенерируйте сценарий k6 из сеанса браузера. Доступно только для пользователей k6 Cloud.

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

Регистратор сессий и конвертер

Визуализация результата

По умолчанию k6 выводит результат на консоль. Кроме того, доступны несколько интеграций, которые помогут вам во время анализа и визуализации результатов тестирования:

  • Апач Кафка
  • k6 Облако
  • DataDog
  • InfluxDB + Графана
  • JSON
  • NewRelic
  • StatsD

img / performance / 81 / k6-лучший-опыт-разработчик-4.png

Непрерывное и автоматизированное тестирование

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

В документации представлены руководства по наиболее популярным инструментам CI / CD, позволяющие легко интегрировать k6 в ваши конвейеры CI.

  • Azure Pipelines
  • CircleCI
  • Действия GitHub
  • GitLab
  • Дженкинс
  • TeamCity

Команда k6 считает, что создание целенаправленное тестирование это незаменимое условие для автоматизации. При запуске автоматических тестов основная цель вашего теста должна состоять, во-первых, в проверке ожидаемой производительности вашей системы, а во-вторых, в предупреждении вас, если система не соответствует целям производительности. Например, подтверждение того, что:

  • Время ответа на 95% запросов не превышает 600 мс.
  • Система не выдает ошибок более 0,5%.

В k6 вы определяете эти ожидания с помощью Пороги в вашем тесте. Если ваша система не достигает их, k6 сообщит вам об ошибке, вернув ненулевой код выхода.

img / performance / 81 / k6-лучший-опыт-разработчик-5.png

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

k6 Облако

k6 Облако это коммерческий продукт SaaS, который прилагается к инструменту k6 с открытым исходным кодом. k6 OSS бесплатен и имеет несколько интеграции для управления нагрузочными тестами в вашей собственной инфраструктуре. K6 Cloud - это дополнительная услуга, которая предоставляет инфраструктуру и системы нагрузочного тестирования, которые помогут вам в ваших усилиях по тестированию производительности.

Чтобы лучше понять, что такое k6 Cloud, давайте перечислим несколько его функций:

  • Масштабируйте тесты по горизонтали и в разных географических точках.
  • Сохраняйте и визуализируйте результаты тестов.
  • Автоматическое обнаружение проблем с производительностью.
  • Сопоставьте результаты между различными тестами.
  • Подключите пользователей с помощью построителя тестов GUI.
  • Организуйте команды и тесты в одном месте.
  • Обеспечьте специальную поддержку.

k6 Облако

Сообщество

Сообщество k6 искренне поддерживает и помогает - это сила, стоящая за успехом проекта.

Если вы начинаете с k6, не забудьте добраться до них в Слабина или форум сообщества по любому типу вопросов. Есть несколько каналов и категорий для разных тем, таких как #grafana, #documentation, #feedback, #discussion и т. Д.

Для тех, кто интересуется внутренним устройством проекта, следите за проектом в GitHub .

Заключение

Этот пост представляет собой введение в k6 - один из самых захватывающих инструментов нагрузочного тестирования. Если вы хотите узнать, что еще предлагает k6, мы рекомендуем прочитать k6 Документы .

За четыре года существования k6 стал многофункциональным и конкурирует с хорошо зарекомендовавшими себя инструментами, получив звездное признание в сообществах разработчиков, DevOps и тестировщиков.

Команда и сообщество k6 создали ориентированный на разработчиков инструмент тестирования производительности, который отвечает требованиям и потребностям новой эры.