Переменные в заголовке сообщения httprequest

Я пытаюсь создать jmeter script, где уникальная папка создается каждый раз при запуске script - добавление переменной какого-либо типа в имя папки, например имя пользователя + временная метка, должно быть достаточно чтобы гарантировать уникальность. Однако jmeter не решает переменную к ее значению - хотя это когда переменная считывается из файла csv (что не подходит).

В принципе, я редактирую PostBody в http-запросе следующим образом:

{ "alf_destination": "Рабочая область://SpacesStore/90368635-78a1-4dc5-be9e-33458f09c3f6", "prop_cm_name": "Тест Папка - ${variable}", "prop_cm_title": "Тест" Папка "," prop_cm_description ":" Папка для тестирования"}

где variable - это в основном любая переменная, которую я пробовал до сих пор (например, случайная строка, временная метка и т.д.).

Кто-нибудь может предложить, как получить эту переменную?

Ответ 1

Вы можете использовать функцию jmeter (начиная с версии 2.9) uuid → http://jmeter.apache.org/usermanual/functions.html#__UUID

${__UUID}

и

1) Если вы хотите всего 1 значение для всего теста, добавьте "Определенный пользователем Переменные" Config Element к вашему тесту. Это будет оцениваться, когда вы загружаете тест script в первый раз.

2) Если вы хотите изменить значение для каждого выполнения потока, но оставайтесь одинаковыми во время каждого экземпляра потока: под вашей "нитью" Group ', добавьте "Pre Processors → User Parameters" в вашу группу потоков - и добавьте туда переменную.

Кроме того, если вы хотите, чтобы значение изменялось каждый раз, когда поток начинался (каждая "итерация" script внутри группы потоков), вы можете установите флажок "Обновить один раз на итерацию" в параметрах пользователя - и он будет получать новое значение каждый раз, когда он запускает поток на начало теста script (внутри этой группы потоков).

http://mail-archives.apache.org/mod_mbox/jmeter-user/201208.mbox/%[email protected]%3E

Ответ 2

С JMeter 2.9 работает следующее:

В пробоотборнике HTTP-запроса вкладка "Почтовое тело" добавляет, например, ваши данные JSON и включает в себя переменные в ней:

{"uuid":"${new-uuid}"}

new-uuid - пользовательская переменная. Это отправит (из дерева результатов поиска, вкладки "Запрос" / "Сырье" ):

POST data:
{"uuid":"a1b2c3d4e5f6"}

Ответ 3

Я сделал это, указав переменную в теле сообщения запроса http - ${formvalues} - созданный с использованием препроцессора beanshell, который добавляется к пробоотборнику http-запроса.
Содержимое Beanshell:

double random = Math.random();    
String formvalues ="{\"alf_destination\":\"workspace://SpacesStore/90368635-78a1-4dc5-be9e-33458f09c3f6\",\"prop_cm_name\":\"Test Folder - ${uname}_" + random + "\",\"prop_cm_title\":\"Test Folder\",\"prop_cm_description\":\"Test Folder\"}";         
vars.put("formvalues",formvalues);

Таким образом, создается папка с именем пользователя (${uname}, взятая из csv) плюс случайное число - это грубо, поскольку потенциально могут быть случаи, когда script пытается создать папку с тем же именем, что и существующий, но он будет работать для моего случая.