В Jmeter и Beanshell, как я могу сделать переменную нижнюю часть регистра?

StackOverflow https://stackoverflow.com/questions/4755286

Вопрос

В пользовательских параметрах JMeter, как я могу сделать переменную нижнюю часть регистра?

Левый столбец

my_lowercase_variable

Правый столбец

${__BeanShell('${my_variable}'.toLowerCase())}  //fails

или же

${__javaScript('${my_variable}'.toLowerCase())}  //fails

Так что ${my_lowercase_variable} является строчным ${my_variable}. Анкет Попробовал с цитатой, без и сбежав и тому подобное. Неудачно. Любые уловки или советы приветствуются.

Это было полезно?

Решение

Примечание к себе.

Оказывается, это два лайнера в сэмплере Beanshell, а не команда __beanshell. Не совсем в примерах, к сожалению.

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

Сначала определите переменную в некоторых пользовательских параметрах или тому подобное:

Name: my_initial_reference 
Value: ITS IN CAPS

Добавить сэмплер с фасоли в списке пользовательских настройки или определения (только следующий, это не дочерний процесс)

Вставить:

String blah = "${my_initial_reference}"; // 
vars.put("blah", blah.toLowerCase());  //${blah} = "its in caps" now available

Теперь в соответствии с этим с парами имени/значения я могу нанести на карту $ {blah} в качестве значения любого имени процесса, требующего.

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

Другие советы

Хмммм, ваш код оболочки бобов не работал для меня. Сэмплер оболочки бобов вернулся:

Response code: 500
Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval  Sourced file: inline evaluation of: ``String blah = AAP;  vars.put("blah", blah.toLowerCase());  //${blah} now availab . . . '' : Typed variable declaration : Void initializer

Я добавил две двойные цитаты, чтобы решить это:

String blah = "${my_initial_reference}";
vars.put("blah", blah.toLowerCase());  //${blah} now available

Просто может добавить функцию

${__lowercase(${VAL},VALUE)}
${__uppercase(${VAL},VALUE)}

Примечание. Val может быть коррелированным или параметризованным значением (Er val = до нижнего или Val = до верхнего). Мы можем использовать эту функцию в Beanshell (предварительный процессор/постпроцессор/пробоотборник). Версия JMeter с использованием (2.6).

Может использовать его, где бы мы ни захотели в скрипте как $ {value}.

${__javaScript('${foobar}'.toLowerCase())} делает Работа. Если выход ${foobar} вместо desired value, это означает, что переменная не была объявлена

Обратите внимание, что переменные определены только после Компонент «Пользовательская переменная» была проанализировано. Анкет Переменные не могут быть использованы повторно в одном компоненте «Пользовательская переменная», например:

enter image description here

Вторая строка на этом изображении не сможет ссылаться на переменную my_variable в первом ряду. Иметь возможность ссылаться на первую переменную, два Необходимы компоненты «Пользовательская переменная». Первая переменная будет в первом компоненте, а вторая переменная во второй, например:

enter image description here

С этим, ${my_lower_case_variable} будет успешно преобразован в some value.


${__BeanShell("${my_variable}".toLowerCase())} работает тоже. (Обратите внимание, что оболочка бобов требует двойные кавычки. Код в вашем вопросе использует отдельные кавычки.)

Другой способ - использовать vars.get:

  • ${__javaScript(vars.get('my_variable').toLowerCase())}

  • ${__BeanShell(vars.get("my_variable").toLowerCase())}

Функции Beanshell и JavaScript в этом использовании не удастся, потому что они не импортируют необходимые пакеты для использования .toLowerCase.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top