Я создаю пробоотборщик HTTP-запросов в JMeter для автоматизации загрузки файла в службу http. Есть ли способ установить "Путь к файлу" в "Отправлять файлы с запросом" на относительный путь из местоположения файла jmx?
JMeter загружает файл с относительным путем из файла jmx
Ответ 1
Да. (Это было подтверждено в JMeter v2.9)
Вы можете использовать следующее выражение BeanShell в поле ввода имени файла:
${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}<YOUR FILENAME HERE>
Итак, если ваш файл " upload.jpg" был расположен в той же папке, что и ваш тестовый файл JMX, полное значение будет
${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}upload.jpg
Чтобы сохранить его немного чище, добавьте элемент конфигурации "Пользовательские переменные", в котором вы назначаете базу выражения переменной, например.
SCRIPT_PATH = ${__BeanShell( ...etc
Затем ваше входное значение пути к файлу будет читать более читаемое:
${SCRIPT_PATH}upload.jpg
Ответ 2
Я под версией 2.11, а BeanShell script не работал у меня, чтобы сделать файл CSV относительным, и поэтому для создания относительного пути вам просто нужно использовать этот ~/filename.csv
. Это означало бы, что файл CSV существует в том же каталоге, что и файл JMX. Но я думаю, вы можете изменить его на это, например, ~/../results_dir/filename.csv
и т.д.
Удачи.
Ответ 3
Я нашел ответ здесь http://kisbigger.blogspot.com/2013/09/pointing-to-files-with-relative-paths.html, который был...
- Шаг 1: Создайте элемент Config с пользовательской переменной для вашего проект.
- Шаг 2: добавьте новую переменную CONFIG_PATH
- шаг 3: в значении столбец разместите этот код: ${__ BeanShell (импорт org.apache.jmeter.services.FileServer; FileServer.getFileServer(). GetBaseDir();)}
- Шаг 4: используйте переменную имя, где угодно, как ${CONFIG_PATH}\config.xml
имеющий файл filename.csv в той же папке, что и jmx, и помещая ~/filename.csv с JMeter 2.11 и более новый JAVA не работал