Редактор групп#

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

_images/um_group_editor.ru.png

В редакторе можно сформировать логический сценарий эмуляции бизнес-процесса или отправки запросов RESTful API. С помощью Drag & Drop:

В запросах и логических элементах можно использовать базовые и дополнительные функции JMeter.

Для транзакций и логических элементов отображается количество вложенных элементов, например, tr_count_button.

При наведении курсора отображается информация для запросов:

Редактирование запросов#

  1. Перейдите в запрос или нажмите на кнопку edit_button.

  2. Отредактируйте HTTP-запрос или gRPC-запрос.

Если в запросе URL указан некорректно или не указан, то при сохранении группы запрос подсвечивается красным цветом.

Добавление логических элементов#

for each#

Элемент for each перебирает массив значений входной переменной и отправляет вложенные запросы. Каждое последующее значение входной переменной влияет на выходную переменную.

_images/um_for_each.png

Параметры элемента for each:

  • input variable. Наименование входной переменной. Указывается в формате myInputVariable, не используйте ${myInputVariable} и спецсимволы;

  • start index. Начальный индекс для цикла. Первый элемент цикла рассчитывается как start index +1;

  • end index. Конечный индекс для цикла;

  • output variable. Наименование выходной переменной. Указывается в формате myOutputVariable, не используйте ${myOutputVariable} и спецсимволы.

Пример использования элемента for each:

Обновить информацию о пользователях интернет-магазина:

  1. Первый запрос получает список пользователей:

    {
       "page": 1,
       "data": [
          {
             "id": 1,
             "email": "michael.lawson@mycompany.org",
             "first_name": "Michael",
             "last_name": "Lawson"
          },
          {
             "id": 2,
             "email": "lindsay.ferguson@mycompany.org",
             "first_name": "Lindsay",
             "last_name": "Ferguson"
          },
          {
             "id": 3,
             "email": "tobias.funke@mycompany.org",
             "first_name": "Tobias",
             "last_name": "Funke"
          }
       ]
    }
    
  2. Извлеките из ответа все номера вхождений для ID пользователя, например, с помощью границ:

    _images/um_for_each_example1.ru.png
  3. Элемент for each перебирает массив ID пользователей и обновляет информацию о каждом из них:

    _images/um_for_each_example2.ru.png

if#

Элемент if задает условия для выполнения вложенных запросов.

_images/um_if.png

Параметр элемента if:

  • condition. Проверяемое условие. Вложенные запросы будут отправлены, если условие истинно. Условием может быть переменная или функция, которая возвращает значение true или false. Используйте функции __groovy, например:

    ${__groovy(vars.get("myVar") != "Invalid" )}
    ${__groovy(vars.get("myInt").toInteger() <=4 )}
    ${__groovy(!${path}.equals("25"))}
    
Пример использования элемента if:

Получить данные о товарах, если ID категории товаров равна “25”:

_images/um_if_example1.png

loop#

Элемент loop выполняет вложенную логику указанное количество раз.

_images/um_loop.png

Параметр элемента loop:

  • loop count. Количество итераций цикла. Может быть статическим числом или переменной. Если указать значение -1, то цикл выполняется бесконечно в пределах, указанных в профиле нагрузки.

Пример использования элемента loop:

Отправить 5 HTTP-запросов для создания пользователей, а затем 1 раз отправить запрос для получения списка пользователей:

_images/um_loop_example.ru.png

while#

Элемент while отправляет вложенные запросы, пока проверяемое условие истинно. Условие проверяется до и после отправки вложенных запросов. Элемент while используется, когда невозможно определить точное количество итераций цикла.

_images/um_while.png

Параметры элемента while:

  • condition. Проверяемое условие цикла. Возможные значения:

    • Пустое значение. Цикл завершается, когда последний запрос завершается с ошибкой;

    • LAST. Цикл завершается, когда последний запрос завершается с ошибкой. Если последний запрос перед элементом while завершился ошибкой, то вложенные запросы не отправляются;

    • Условие. Вложенные запросы будут отправлены, если условие истинно. Условием может быть переменная или функция, которая возвращает значение false. Используйте функции __groovy, например:

      ${__groovy(!"${myvariable}".equals("FINISHED"))}
      ${__groovy(${counter}<=5)}
      ${__V(login_${count})} != "NotFound"
      
Пример использования элемента while:

Удалять товары из корзины, пока корзина не станет пустой:

_images/um_while_example.ru.png

Переименование элементов#

Чтобы переименовать группу или транзакцию, нажмите на название элемента и измените его.

Удаление элементов#

Чтобы удалить группу, транзакцию или запрос, нажмите на кнопку delete_button.

Чтобы удалить все группы:

  1. Вернитесь на вкладку Thread groups.

  2. Нажмите на кнопку Действия ⋮ и выберите пункт Удалить все тред группы.