Статья подготовлена для студентов курса «Нагрузочное тестирование» в образовательном проекте OTUS.
Нагрузочное тестирование — важнейший процесс современной разработки ПО, позволяющий определить пределы работоспособности созданного проекта с учётом предъявляемых к этому проекту (системе) требований. Такой вид тестирования предполагает определение либо сбор показателей производительности и времени отклика, поэтому используемые инструменты играют немаловажную роль. Рассмотрим некоторые из них.
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, который считают одним из лучших в сфере тестирования производительности.
Верхний уровень управления представляет собой интернет-платформу, доступную из любого места, что упрощает тестирование и совместную работу на уровне всей организации. При этом решение доступно круглосуточно и обеспечивает одновременный доступ к средствам тестирования всем сотрудникам, работающим в разных уголках мира.
Большинство из вышеперечисленных инструментов подробно рассматриваются на курсе «Нагрузочное тестирование». Не пропустите!
Приглашаем 30 июня в 20:00 на День открытых дверей курса «Нагрузочное тестирование»
Первые 20 участников, зарегистрировавшихся на этот вебинар, получат Сертификат на скидку на электронную почту и еще 10 сертификатов на скидку распределим в прямом эфире между теми, кто записался на вебинар.