#jmeter
Вопрос:
С папкой, содержащей около 10 файлов (например, 1.csv, 2.csv….10.csv), И я загружаю их в свой http-запрос с помощью препроцессора beanshell, используя следующий скрипт,
File folder = new File("C:\User\SYSTEMTESTING\SAMPLENEWFILES\REUPLOADFILES");
File[] fileForUpload = folder.listFiles();
Random rnd = new Random();
vars.put("CURRENT_FILE", fileForUpload[rnd.nextInt(fileForUpload.length)].getAbsolutePath());
хотите получить имя файла, загруженного с помощью почтового обработчика JSR223
log.info("File Uploaded Is :" ${CURRENT_FILE});
Я получаю,
javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script8.groovy: 1: Missing ')' @ line 1, column 79.
"File Uploaded Is ------->" C:UsersSY
В теле запроса:
PUT data:
--RhvwJL7ZdnIMBIaE0CoKVhsE68UNUiH
Content-Disposition: form-data; name="file"; filename="CSV_10_MB.csv"
Content-Type: application/vnd.ms-excel
Content-Transfer-Encoding: binary
<actual file content, not shown here>
--RhvwJL7ZdnIMBIaE0CoKVhsE68UNUiH--
Мне нужно CSV_10_MB.csv
имя.
Ответ №1:
Воспользуйся vars.get
:
log.info("File Uploaded Is :" vars.get("CURRENT_FILE"));
Ответ №2:
Если вы хотите использовать GString Groovy, вам нужно объявить это CURRENT_FILE
свойство, если это то, что вы ищете, вам нужно изменить свой код следующим образом:
def CURRENT_FILE = vars.get("CURRENT_FILE")
log.info("File Uploaded Is: ${CURRENT_FILE}")
или используйте ту же vars
сокращенную форму для печати имени файла в журнале JMeter, например:
log.info("File Uploaded Is: " vars.get("CURRENT_FILE"))
Комментарии:
1. Большое спасибо, Дмитрий,
File Uploaded Is ------->C:\User\SYSTEMTESTING\SAMPLENEWFILES\REUPLOADFILESCSV_10_MB.csv
но я хочу получить CSV_10_MB.csv, как использовать подстроку2.
log.info("File Uploaded Is: " org.apache.commons.io.FilenameUtils.getName(vars.get("CURRENT_FILE")))