5 инструментов нагрузочного тестирования
Нагрузочное тестирование — важнейший процесс современной разработки ПО, позволяющий определить пределы работоспособности созданного проекта с учётом предъявляемых к этому проекту (системе) требований. Такой вид тестирования предполагает определение либо сбор показателей производительности и времени отклика, поэтому используемые инструменты играют немаловажную роль. Рассмотрим некоторые из них.
JMeter
Старый добрый Apache JMeter, который до сих пор считается одним из наиболее популярных бесплатных инструментов.
Преимущества: • запускается на разных платформах (является Java-продуктом); • инсталляция и запуск отличаются простотой; • интерфейс интуитивно понятен; • результаты работы наглядно отображаются; • можно писать свои кейсы; • поддерживаются протоколы HTTP, LDAP, JDBC, SOAP, JMS и FTP; • есть возможность интеграции с Selenium и Bean Shell для автоматизированного тестирования; • можно записывать все активности в веб-браузере.
Минусы: • нет функция для записи HTTPS-связи; • трафик AJAX не перехватывается; • при формировании отчетов расширенные возможности не предоставляются.
Galting
Достаточно мощный инструмент для выполнения нагрузочных тестов, поддерживающий язык программирования Scalа. В программе 2 файла: один обеспечивает запись тестовых сценариев, второй – их выполнение.
Плюсы Galting: • гибкость в процессе взаимодействия с различными браузерами и ОС; • отчёты визуализируются в виде графических таблиц; • обеспечивается простота взаимодействия с Jenkins, есть возможность тестирования через Gradle и Maven (используются соответствующие плагины); • отладка тест-кейсов упрощена; • есть возможность простого поиска недостатков ПО ещё на первых этапах разработки.
Минусы: • при изменении API возможно появление проблем запуска тестовых сценариев прежних версий; • нельзя распределить нагрузку между устройствами; • отсутствует горизонтальное масштабирование.
The Grinder
Очередная программа для нагрузочного тестирования, которая основана на Java. При написании скриптов применяется язык Jython (реализация Java в Python). The Grinder предоставляет достаточно мощный движок сценариев с функцией их записи.
Плюсы: • для работы подходит любая платформа, где запускается JVM; • поддерживается большинство протоколов; • разработка тестовых сценариев выполняется легко и быстро; • можно создавать свои плагины для интерфейса; • настройка параметров упрощена; • обеспечивается гибкость при работе со сторонними библиотеками; • поддерживается Jira.
Минусы: • периодически возникают неполадки во время загрузки крупных файлов; • уровни нагрузки нельзя регулировать с помощью консоли; • нет возможности расширенного анализа; • для работы потребуются знания Jython либо Clojure.
Яндекс.Танк
Инструмент для выполнения нагрузочного тестирования и анализа производительности приложений и web-сервисов. Был разработан в Яндексе в 2006 году и является сегодня основным инструментом Яндекса, используемым для измерения производительности сервисов.
Модульная архитектура даёт возможность использовать разные генераторы нагрузок, включая высокопроизводительный асинхронный hit-based-генератор HTTP-запросов Phantom и сценарный инструмент jMeter, подающий нагрузку для разных протоколов.
Другие возможности: • встроен мониторинг ресурсов тестируемого сервера по SSH-протоколу; • возможна автоматическая остановка теста по заданным условиям; • вывод результатов осуществляется как в консоль, так и в виде графиков; • можно подключать собственные модули для достижения нужной функциональности.
HP Performance Center
Программное обеспечения для тестирования производительности, с помощью которого вы сможете создать единый стандартизированный центр тестирования, имеющий глобальный доступ. В основе — инструмент HP LoadRunner, который считают одним из лучших в сфере тестирования производительности.
Верхний уровень управления представляет собой интернет-платформу, доступную из любого места, что упрощает тестирование и совместную работу на уровне всей организации. При этом решение доступно круглосуточно и обеспечивает одновременный доступ к средствам тестирования всем сотрудникам, работающим в разных уголках мира.
Большинство из вышеперечисленных инструментов подробно рассматриваются на курсе «Нагрузочное тестирование». Не пропустите!