11 февраля состоялся релиз новой мажорной версии 4.0 Apache JMeter. Поскольку мы используем этот инструмент для нагрузочного тестирования на многих проектах, мы не могли оставить данное событие без внимания.
Предыдущий мажорный релиз (версия 3.0) был выпущен чуть меньше двух лет назад (для сравнения, версия 2.0 вышла аж в 2004-м!). Также за последние 2 года было выпущено несколько минорных релизов (версии 3.1-3.3). Это показывает нам, как JMeter развивается, чтобы шагать в ногу с новыми технологиями и соответствовать нуждам разработчиков.
Похоже, что в новой версии JMeter акцент прежде всего сделан на улучшении пользовательского интерфейса (UX). Процесс навигации и создания тестов стал проще, элементы — дружественней и удобней, а система оповещения пользователя о проблемах с тестами переработана.
Под катом самые важные изменения в JMeter 4.0, о которых вам нужно знать.
Улучшения в UX
Новая цветовая схема интерфейса по умолчанию
JMeter теперь выглядит по-новому! Добавлена тёмная цветовая схема (Dracula LAF), и она установлена по умолчанию. Если она вам не нравится, то вы всегда можете вернуться к старой теме через меню “Options->Look and Feel”.
Английский — язык по умолчанию
По причине того, что интерфейс JMeter переведён далеко не на все языки, было решено сделать английский языком по умолчанию. Вы можете выбрать любой другой язык интерфейса из доступных в меню “Options->Choose Language”.
Наиболее часто используемые элементы теперь показываются в первую очередь
В обновлённом JMeter при открытии списка элементов через меню наиболее часто используемые элементы будут находиться в верхней части списка, что делает создание новых тестовых сценариев быстрее и удобнее.
Новые элементы в JMeter 4.0
JSON Assertion
Артём Фёдоров из BlazeMeter создал компонент JSON Assertion для проверки JSON документов. Код данного компонента находится в открытом доступе, и если раньше его нужно было установить, как плагин, то теперь он является частью ядра JMeter. Это означает, что теперь JMeter обладает всеми необходимыми для работы с JSON функциями из коробки, и вам больше не нужно устанавливать для этого сторонние плагины. Проверки работают в три этапа: определяется, является ли документ JSON-ом, находятся необходимые пути и, наконец, находятся интересующие пользователя значения. Переход к следующему этапу осуществляется только после успешного прохождения предыдущего.
Boundary Extractor
Boundary Extractor — это постпроцессор, который позволяет извлекать из ответов сервера граничные значения в соответствии с правилами, определёнными пользователем. После того, как границы найдены, экстрактор извлечёт значения, создаст строку и сохранит результат в переменную, которая может быть настроена в одном из полей элемента.
Precise Throughput Timer
Precise Throughput Timer — это таймер, который позволяет пользователю задать нагрузку (количество сэмплов в секунду/минуту/час/и тд.), с которой он хочет запустить свои тесты. Данный таймер, в отличие от Constant Throughput Timer, позволяет пользователю более гибко настроить распределение сэмплов по времени. Кроме того, выполнение запланировано случайным образом, что позволяет создавать постоянную нагрузку. В дополнение к вышесказанному, данный таймер использует пуассоновский процесс для распределения пауз между запросами, что делает прогон тестов наиболее похожим на действия реального пользователя.
Улучшения в запуске тестов
Поддержка Java 9
JMeter теперь поддерживает Java 9. Вам больше не нужно использовать предыдущую версию Java, однако JMeter может работать как с Java 8, так и с Java 9.
Workbench удалён из JMeter
Благодаря изменениям, внесённым Артёмом Фёдоровым из BlazeMeter, вам больше не нужно использовать Workbench в своих скриптах. Пользователи часто писали, что после появления элемента Test Plan несколько версий назад назначение Workbench стало не ясным, и более того, сам элемент стал фактически бесполезным и только вносил путаницу в то, что нужно использовать в скриптах. Таким образом, удаление Workbench из интерфейса стало логичным шагом, и элементы, которые прежде могли быть размещены только в скоупе Workbench, теперь могут быть добавлены в Test Plan.
Test Plan теперь сохраняется автоматически
Больше никаких надоедливых всплывающих окон с напоминанием сохранить изменения в ваших тестах!
Улучшения для элементов
- Для семплера JMS point-to-point теперь доступны три новые опции: чтение (read), просмотр (browse) и очистка (clean).
- Проверка ответа сервера (Response Assertion) теперь включает в себя и проверку данных запроса.
- Для контроллера If опция «интерпретировать условие как выражение переменной» включена по умолчанию.
- Для элемента JSR223 кеширование скомпилированных скриптов теперь включено по умолчанию.
- Контроллер Loop и контроллер ForEach теперь сохраняют информацию о номере текущей итерации в переменной, которая имеет следующий формат: __jm __ <Имя вашего элемента> __ idx
Кроме того, был исправлен ряд багов, добавлены новые функции и ещё несколько новых элементов. Полный список изменений доступен на сайте JMeter.
Данная статья является переводом. Оригинал: Noga Cohen.
Автор: RainCoven