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, а не время начала теста. В основном они предназначены для использования в именах файлов и т. Д.