jMeter - Функции

Функции и пользовательские переменные JMeter

Функции JMeter - это специальные значения, которые могут заполнять поля любого Sampler или другого элемента в тестовом дереве.

  • Вызов функции выглядит так -

${__functionName(var1,var2,var3)}
  • _functionName соответствует имени функции. Например${__threadNum}.

  • Если параметр функции содержит запятую, убедитесь, что вы экранировали это с помощью символа «\», как показано ниже -

${__time(EEE\, d MMM yyyy)}
  • Переменные обозначаются как -

${VARIABLE}

Список функций

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

Тип функции имя Комментарий
Информация threadNum Получите номер резьбы.
Информация samplerName Получите название (метку) сэмплера.
Информация машинаIP Получите IP-адрес локального компьютера.
Информация machineName Получите имя локальной машины.
Информация время Возвращает текущее время в различных форматах.
Информация журнал Зарегистрируйте (или отобразите) сообщение (и верните значение).
Информация войти Записать (или отобразить) сообщение (пустое возвращаемое значение).
Ввод StringFromFile Прочитать строку из файла.
Ввод FileToString Прочитать файл целиком.
Ввод CSVЧитать Читать из файла с разделителями CSV.
Ввод XPath Используйте выражение XPath для чтения из файла.
Расчет счетчик Создайте увеличивающееся число.
Расчет intSum Добавьте числа типа int.
Расчет longSum Добавьте длинные числа.
Расчет Случайный Сгенерируйте случайное число.
Расчет RandomString Создайте случайную строку.
Расчет UUID Создайте случайный UUID типа 4.
Сценарии BeanShell Запустите сценарий BeanShell.
Сценарии javaScript Обработка JavaScript (Mozilla Rhino).
Сценарии jexl, jexl2 Оцените выражение Commons Jexl.
Свойства свойство Прочтите свойство.
Свойства п Прочтите свойство (сокращенный метод).
Свойства setProperty Установите свойство JMeter.
Переменные Трещина Разделить строку на переменные.
Переменные V Оцените имя переменной.
Переменные оценка Оцените выражение переменной.
Переменные evalVar Оцените выражение, хранящееся в переменной.
Строка regexFunction Разберите предыдущий ответ с помощью регулярного выражения.
Строка escapeOroRegexpChars Цитировать мета-символы, используемые регулярным выражением ORO.
Строка char Сгенерируйте значения символов Unicode из списка чисел.
Строка unescape Строки процесса, содержащие escape-последовательности Java (например, \ n & \ t).
Строка unescapeHtml Декодируйте строки в кодировке HTML.
Строка escapeHtml Кодируйте строки, используя кодировку HTML.
Строка TestPlanName Вернуть имя текущего плана тестирования.
  • Есть два вида функций -

    • Пользовательские статические значения (или переменные)

    • Встроенные функции

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

  • Переменные не могут быть вложенными; т.е.${Var${N}} не работает.

  • Для этого можно использовать функцию __V (переменная) (версии после 2.2) - $ {__ V (Var $ {N})}.

  • Этот тип замены возможен без функций, но он менее удобен и менее интуитивно понятен.

Где использовать функции и переменные

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

Следующие функции должны хорошо работать в плане тестирования:

  • intSum
  • longSum
  • machineName
  • BeanShell
  • javaScript
  • jexl
  • random
  • time
  • функции собственности
  • функции журнала

Функции, которые используются в плане тестирования, имеют некоторые ограничения. Переменные потока JMeter не будут полностью настроены при обработке функций, поэтому имена переменных, переданные в качестве параметров, не будут установлены, а ссылки на переменные не будут работать. Следовательно, split () и regex (), а также функции оценки переменных работать не будут. Функция threadNum () не будет работать и не имеет смысла на уровне плана тестирования.

Ссылки на переменные и функции

  • Ссылка на переменную в тестовом элементе выполняется путем заключения имени переменной в квадратные скобки '$ {' и '}'.

  • На функции ссылаются таким же образом, но по соглашению имена функций начинаются с «__», чтобы избежать конфликта с именами пользовательских значений.

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

${__BeanShell(vars.put("name"\,"value"))}
  • В качестве альтернативы вы можете определить свой скрипт как переменную, например, в плане тестирования -

SCRIPT     vars.put("name","value")
  • Затем на сценарий можно ссылаться следующим образом -

${__BeanShell(${SCRIPT})}

Диалог помощника по функциям

Диалог помощника по функциям доступен из JMeter's Options таб.

  • Используя помощник по функциям, вы можете выбрать функцию из раскрывающегося списка и присвоить значения ее аргументам. В левом столбце таблицы приводится краткое описание аргумента, а в правом столбце указывается значение этого аргумента. Разные функции принимают разные аргументы.

  • Как только вы это сделаете, нажмите кнопку «Создать», и соответствующая строка будет сгенерирована, которую вы можете скопировать и вставить в план тестирования, где вам нужно.

Предопределенные переменные

Некоторые переменные определяются внутри JMeter. Они -

  • COOKIE_cookiename - содержит значение cookie.

  • JMeterThread.last_sample_ok - был ли последний образец в порядке - true / false. Примечание - это обновляется после запуска PostProcessors и Assertions.

  • Переменные START.

Предопределенные свойства

Некоторые встроенные свойства определены JMeter. Они перечислены ниже. Для удобства свойства START также копируются в переменные с такими же именами.

  • START.MS - время запуска JMeter в миллисекундах.

  • START.YMD - время начала JMeter в формате yyyyMMdd.

  • START.HMS - время запуска JMeter в формате HHmmss.

  • TESTSTART.MS - время начала теста в миллисекундах.

Обратите внимание, что переменные / свойства START представляют время запуска JMeter, а не время начала теста. В основном они предназначены для использования в именах файлов и т. Д.