Разделы портала

Онлайн-тренинги

.
Top 10 лучших инструментов для нагрузочного тестирования
10.08.2020 00:00

Оригинальная публикация
Автор: Перфоманс Лаб

Нагрузочное тестирование позволяет оценить производительность программного обеспечения при различных нагрузках от действий определенного количества пользователей. Бизнесу всегда важно знать производительность программного обеспечения в реальных условиях, выявить основные уязвимости и обеспечить высокое качество ПО. Нагрузочное тестирование позволяет снизить риск сбоя после запуска приложения в реальных условиях. Однако, если Вы хотите эффективно выполнить нагрузочное тестирование, Вам понадобятся инструменты тестирования эффективности нагрузки, которые помогут смоделировать виртуальных пользователей и выполнять тестовые сценарии.

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

Инструменты

Apache JMeter

Apache JMeter – на настоящий момент один из самых популярных инструментов с открытым исходным кодом для нагрузочного тестирования. Инструмент разрабатывается с 2003 года и за прошедшие десятилетия оброс богатой функциональностью и достаточно давно успел себя зарекомендовать, как прекрасную альтернативу платным аналогам для большинства решаемых задач.

Инструмент кроссплатформенный, так как разработан на Java. Доступна как работа из GUI, так и запуски в консольном режиме.

Apache JMeter поддерживает работу с различными сетевыми протоколами разных уровней HTTP, HTTPS, FTP, LDAP, SOAP, TCP, почтовых протоколов и shell-скриптов. Он, как java-based инструмент, предоставляет возможности по работе с JDBC, Message-oriented middleware (MOM) через JMS и Java Objects.

Если вам этого недостаточно и нужно решение какой-либо специфической задачи, то JMeter можно расширить, написав к нему своё расширение или используя существующие, доступные в менеджере плагинов. Например, можно из JMeter запускать даже .Net-код, используя jni4net, или проводить тестирование с помощью графического citrix-ica протокола.

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

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

Плюсы

  • Удобный интерфейс
  • Анализ результатов и кэширование
  • Базовую поставку легко расширить с помощью многочисленных плагинов
  • 100% на языке Java
  • Скрипт графически разделён на блоки-сэмплеры, что упрощает его разработку
  • Удобная работа с многопоточностью
  • Анализ и визуализация данных
  • Динамический ввод

Минусы

  • Не поддерживает JavaScript
  • Есть предел использования памяти, после которого появляются ошибки у  большого числа пользователей
  • Иногда бывает трудно протестировать сложные приложения с использованием JavaScript или динамического контента, такого как CSRF токены

Протоколы

  • HTTP
  • HTTPS
  • XML
  • SOAP
  • Java-протоколы
  • FTP

Ценообразование

  • Бесплатное приложение с открытым исходным кодом

Кому подходит

Apache Jmeter – это отличный инструмент нагрузочного тестирования с открытым исходным кодом для больших и малых компаний. Программа предоставляет бесплатно своим пользователям различные полезные инструменты тестирования, и пользователи могут настроить её в соответствии со своими потребностями.

LoadRunner

Micro-Focus Loadrunner (ранее известный как HP Loadrunner) – это довольно сложный инструмент нагрузочного тестирования программного обеспечения, который обнаруживает проблемы с производительностью, наверное, прежде всего в энтерпрайз-приложениях. LoadRunner может применяться для тестирования программного обеспечения ERP, устаревших системных приложений, а также технологий Web 2.0.

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

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

Плюсы

  • Четкое обнаружение проблемных мест на уровне системы, конечного пользователя и кода
  • Обнаруживает первопричину проблем  производительности приложений
  • Сокращает затраты на время простоя приложений, вызванного проблемами с производительностью
  • Позволяет проводить тестирование производительности существующих устаревших приложений
  • Позволяет тестировать мобильные приложения
  • Снижение затрат на программное и аппаратное обеспечение за счет прогнозирования производительности и масштабируемости ПО
  • Позволяет командам разработчиков программного обеспечения настраивать интеллектуальные соглашения об уровне услуг  до запуска их продукта в эксплуатацию
  • Сокращает циклы тестирования для ускорения доставки приложений пользователям?
  • Обеспечивает эффективное отслеживание использования инструмента
  • Браузерный интерфейс для доступа к распределённым тестовым ресурсам
  • Оптимальное использование генераторов нагрузки

Минусы

  • Очень дорогой
  • Использует много памяти и аварийно завершает работу, если система не отвечает своим  вычислительным требованиям
  • Стоимость лицензии на использование зависит от количества виртуальных пользователей

Ценообразование

  • Community Edition / Можно получить лицензии на 50 виртуальных пользователей бессрочно / Бесплатно
  • Дни виртуальных пользователей / Дает вам возможность добавить больше виртуальных пользователей| начинается с $1,40 за день виртуального пользователя
  • Объемное ценообразование| Можно связаться с поставщиком для получения ценового предложения

Протоколы

  • Loadrunner поддерживает все виды протоколов, связанных с его услугами

Кому подходит

Micro Focus LoadRunner – это достаточно сложный и универсальный инструмент для нагрузочного тестирования, подходящий  для тестирования различных платформ. Однако из-за своей цены этот инструмент больше подходит для средних и крупных организаций.

Load Ninja

Load Ninja – это относительно несложный в использовании инструмент нагрузочного тестирования, который позволяет пользователям создавать сложные нагрузочные тесты без использования каких-либо скриптов. В результате пользователи могут сократить время тестирования на 50% и заменить эмуляторы нагрузки реальными браузерами.

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

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

Плюсы

  • Используется из облака
  • Все те действия, которые реальный пользователь производит в браузере, теперь выполняют сотни и тысячи виртуальных пользователей
  • Vu Debugger отладочные тесты в режиме реального времени
  • Vu Inspector управляет активностью виртуальных пользователей в режиме реального времени
  • Браузерные метрики с функциями аналитики и отчетности
  • Создание и проведение нагрузочного теста без написания скриптов

Минусы

  • Полностью зависит от AJAX, который в свою очередь полагается на JavaScript; таким образом, LoadNinja не работает, если JavaScript отключен или не поддерживается
  • Динамически отображаемые и загружаемые данные не являются частью страницы приложения
  • Асинхронные свойства Ajax вызывают задержки
  • Дороговизна

Протоколы

  • HTTP
  • HTTPS
  • SAP GUI Web
  • WebSocket
  • Протоколы на основе Java
  • Google Web Toolkit
  • Формы Oracle

Ценообразование

  • Есть бесплатная демонстрация
  • Базовый (годовой) | $1,799 / 1000 пользователей / 100 часов / Продолжительность: 1 час
  • Базовый (годовой) | $2,999 / 1000 пользователей / 2500 часов / Продолжительность: 1 час

Кому подходит

Load Ninja – это отличный инструмент тестирования программного обеспечения для веб-разработчиков и тестировщиков ПО, которые хотят реализовать процедуры тестирования без скриптов. Однако из-за цены наиболее подходит  для среднего и крупного бизнеса.

WebLOAD

WebLOAD – это инструмент корпоративного нагрузочного тестирования, который позволяет пользователям создавать надежные, реальные сценарии нагрузки. Это надежный инструмент тестирования, который работает для сложных систем и предоставляет пользователям расширенные функции, такие как анализ производительности и интеллектуальная аналитика. В то же время, инструмент основан на гибкой платформе, которая предлагает встроенную поддержку нескольких технологий, а также интеграцию с рядом инструментов, начиная от мониторинга производительности до конвейеров CI/CD.

Плюсы

  • Мощное средство для автоматической корреляции
  • Создание нагрузки на рабочих машинах или в облаке
  • Поддерживает все основные веб-технологии
  • Автоматическое обнаружение узких мест
  • Гибкое создание тестового сценария

Минусы

  • Сложный
  • По отзывам некоторых пользователей, относительно дорогой

Протоколы

  • Native JavaScript scripting HTTP
  • HTTPS
  • XML
  • Корпоративные приложения
  • Сетевые технологии
  • Серверные технологии

Ценообразование

  • Бесплатная пробная версия
  • По тарифному плану

Кому подходит

WebLOAD – это комплексный инструмент для нагрузочного тестирования, который позволяет компаниям любого размера тестировать веб-сайты, обычные и корпоративные приложения.

LoadUI Pro

LoadUI – это особенный инструмент для нагрузочного тестирования. В основном предназначен для веб-сервисов, работающих на Linux, Windows и Mac OS, и позволяет пользователям оценивать масштабируемость, скорость и производительность API. В результате пользователи могут просмотреть поведение производительности API, и уже после внедрять ПО в продуктив.

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

LoadUI Pro также позволяет пользователям запускать несколько сценариев нагрузочного тестирования одновременно. Это позволяет пользователям оценить, как различные условия тестирования взаимодействуют друг с другом и влияют на производительность API.

Плюсы

  • Нагрузочные тесты API в облаке
  • Можно использовать повторно существующие функциональные тесты
  • Параллельное нагрузочное тестирование API
  • Изоляционное нагрузочное тестирование
  • Мониторинг сервера для диагностики на предмет ресурсов, которые  вызывают задержки и снижают производительность

Минусы

  • Дорогой
  • Оптимизирован только для тестирования API и микросервисов

Протоколы

  • HTTP
  • REST
  • SOAP
  • JSON
  • API Blueprint
  • JSON Schema
  • XML Schema

Ценообразование

  • LoadUI Pro Small – Фиксированная лицензия: $ 4,999 / год
  • LoadUI Pro Medium – Фиксированная лицензия: $ 9,999 / год
  • ReadyAPI – Фиксированная или плавающая лицензия (детали запрашиваются у поставщика)

Кому подходит

LoadUI Pro отлично подходит для разработчиков ПО и ИТ-специалистов. LoadUI Pro предлагает облачное и локальное программное обеспечение API. Вы можете использовать этот инструмент автоматизации нагрузочного тестирования для создания, управления и выполнения нагрузочных тестов баз данных, микросервисов и API REST & SOAP.

BlazeMeter

BlazeMeter – компания-производитель одноимённого программного обеспечения для тестирования, предоставляющая пользователям тестирование производительности и нагрузочное тестирование как услугу. Служба содержит инновационную и всеобъемлющую платформу непрерывного тестирования. Веб-интерфейс приложения эффективен для создания статических нагрузочных тестов и использования сценариев JMeter для выполнения динамических нагрузочных тестов.

BlazeMeter известен широчайшим использованием одного из лучших инструментов нагрузочного тестирования с открытым исходным кодом – Apache Jmeter. Он предоставляет различные корпоративные функции для бесплатной платформы. То есть пользователи могут получить доступ ко многим расширенным функциям, таким как мониторинг производительности приложений (APM), создание отчетов в режиме реального времени, распределенное тестирование и интеграция с инструментами разработчика для непрерывной интеграции (CI).

Плюсы

  • 100% совместимость с Apache JMeter
  • Создание масштабных тестов – до 1 миллиона одновременно работающих пользователей.
  • Настройка тестов в течение нескольких минут
  • Запуск тестов без сценариев или загрузка списков URL
  • Запуск из облака или локально
  • Запуск тестов из нескольких географических местоположений
  • Имитация мобильного тестирования с реальных устройств
  • Облегчает командное сотрудничество с помощью сценариев и обмена отчетами
  • Поддержка нескольких инструментов
  • Интеграция с ведущими инструментами CI и APM
  • Поддержка и профессиональные услуги
  • Подробный отчет о результатах нагрузочных испытаний в режиме реального времени
  • Установка КПЭ поведения тестируемого приложения
  • Мониторинг собранного пользовательского опыта на компьютере и мобильных устройствах

Минусы

  • Отчеты Blazemeter довольно простые и не детализированные
  • Blazemeter дорог для нагрузочных тестов больше чем с 1000 пользователей.

Ценообразование (годовые планы)

  • Бесплатно (50 одновременных пользователей)
  • Базовый: $ 99 / мес (1000 одновременных пользователей)
  • Pro: $ 499 / мес (5000 одновременных пользователей)

Кому подходит

BlazeMeter – отличный инструмент для нагрузочного тестирования для организаций, которые уже используют Apache Jmeter.

K6

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

K6 написан разработчиками другого нагрузочного инструмента – loadimpact и служит прежде всего для проверки производительности сайтов. Backend инструмента написан на языке Go, а сами скрипты пишутся на JavaScript.

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

Запуск тестов происходит в консольном режиме, результаты тестирования по умолчанию также выводятся в консоль, однако доступна поддержка таких плагинов для вывода результатов, как Kafka, Datadog, InfluxDB, JSON и StatsD.

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

Плюсы

  • доступна интеграция с CI-инструментами;
  • возможность создания кастомных метрик;
  • ориентирован на разработчиков согласно концепции «everything is code»;

Минусы

  • нет возможности распределенного запуска;
  • поддерживает только тестирование веб-сайтов;
  • соединения websocket иногда зависают;
  • нет поддержки языка Go;
  • ориентирован на разработчиков.

Ценообразование

  • Open source версия бесплатна (мы не говорим про стоимость инфраструктуры);
  • Облачная версия имеет кастомное ценообразование, прайсы в открытом доступе отсутствуют.

Протоколы

  • Http(s) и на них основанные;
  • Websocket

Кому подходит

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

Яндекс.Танк

Не секрет, что в компании Яндекс имеется своя экосистема различных инструментов для абсолютно разных задач. Некоторые говорят, что если есть возможность написать свой инструмент, то Яндекс обязательно это сделает (иногда без оглядки на уже имеющиеся решения).  Не обошла стороной эта тема и инструменты для нагрузочного тестирования.

После своего создания в 2006 году, Танк прошёл длинный путь своего развития и сейчас позволяет использовать разные типы генераторов нагрузки. Если нужно протестировать http-сервис на высокую нагрузку, то используется Phantom (C++). Интеграция Танка с JMeter в свою очередь позволяет реализовать сценарный тип тестирования со всеми протоколами, которые поддерживаются JMeter.

Кроме того, можно использовать BFG-Python-генератор и написанный на Go Pandora.

Сам Танк реализован на Python и может использоваться только в Unix-системах.

Плюсы

  • функция автоматической остановки теста;
  • встроенный мониторинг серверов по ssh-протоколу;
  • открытая конфигурация для создания собственных модулей;
  • доступна интеграция с Graphite.

Минусы

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

Ценообразование

  • инструмент бесплатно распространяется по лицензии LGPL

Протоколы

  • Зависят от используемого генератора нагрузки.

Кому подходит

Яндекс.Танк хорошо подходит в сочетании с phantom, если отсутствует необходимость в сценарном тестировании и требуется высокая производительность.

Gatling

Gatling – это ещё один популярный инструмент для проведения нагрузочного тестирования с открытым исходным кодом. Он написан на языке Scala с использованием технологий Netty и Akka.

Если Вы – разработчик, знакомый со Scala и Вам нужно провести нагрузочное тестирование, то Gatling – идеально вам подойдёт.

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

Удобство gatling для разработчика также состоит в том, что по завершении тестирования отчёт создаётся автоматически, его остаётся только проанализировать.

Что касается поддержки протоколов, то согласно официальной документации поддерживаются HTTP(s)/1, websocket, JMS, MQTT. Протокол HTTP 2.0 имеет ограниченную поддержку.

Плюсы

  • при высоких нагрузках может быть более производительным, чем другие бесплатные инструменты, особенно при тестировании вебсокетов;
  • подойдёт, если вы разрабатываете на Scala;
  • имеются официальные и неофициальные плагины для тестирования Kafka, RabbitMQ, JDBC и др.

Минусы

  • проще создавать скрипт вручную, чем пользоваться имеющимся рекордером;
  • отсутствие распределённого запуска из коробки;
  • если у вас нет опыта работы со Scala, порог вхождения для полноценного использования gatling будет выше, чем для других инструментов нагрузочного тестирования.

Протоколы

  • HTTP(s)/1
  • JMS
  • SOAP
  • MQTT

Ценообразование

  • Бесплатное приложение с открытым исходным кодом
  • Имеется Enterprise-версия с расширенной функциональностью

Кому подходит

Gatling – это хороший бесплатный инструмент нагрузочного тестирования с открытым исходным кодом, который лучше всего подойдёт для проектов, связанных с языком Scala.

Boomq.io

Boomq.io – это продукт нового поколения, который позволяет проводить тесты в облаке для любой аудитории, которая занимается нагрузочным тестированием. Маркетологи, менеджеры по продукту и  руководители проектов, разработчики и инженеры – все могут использовать boomq.io для своих целей.

Для маркетологов boomq.io предоставляет простой в использовании инструмент, который интегрируется с Google Analytics и Яндекс.Метрикой для получения статистической информации и выполнения тестов производительности без какого-либо программирования или других технических разработок.

Разработчики и инженеры могут использовать boomq.io для удобного проведения тестов производительности в облаке. У них появляется полный набор инструментов тестирования  (работающих в облаке в качестве службы SaaS), таких как импорт HAR/Insomnia, определение запросов, параметризация и корреляция.

У boomq.io  есть удобный анализ результатов повторяющихся онлайн тестов с помощью графических панелей. В целом, boomq.io представляет новое поколение продуктов для тестирования производительности, которое позволяет легко создавать, планировать, запускать и выполнять тесты в облаке, используя простой и понятный веб-интерфейс.

Плюсы

  • Удобный и понятный веб интерфейс
  • Простота использования
  • Интеграция с Google Analytics и Яндекс Метрикой
  • Импорт из HAR и Insomnia
  • Облачное развертывание

Минусы

  • В настоящее время boomq.io поддерживает тестирование производительности HTTP-приложений, таких как веб-сайты, API и приложения
  • У Boomq.io нет толстого клиента, но это решается экспортом в обычный скрипт JMeter

Протоколы

  • HTTP
  • REST
  • SOAP

Ценообразование

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

Кому подходит

Вы тестируете сайт, API или приложение? Используйте boomq.io и максимально ускоряйте циклы тестирования. Если у Вас нет опыта в тестировании производительности – boomq.io – это Ваш лучший выбор.

Вывод

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

Обсудить в форуме