Препроцессор JMeter JSR223 — Моя случайная и текущая дата превращается во что-то в 1970 году

#groovy #jmeter

Вопрос:

Я пытаюсь создать случайную дату в течение двух предельных дат с помощью JSR223. И вот мой код:

 "import java.text.SimpleDateFormat;
import java.util.Date;



SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");



String formattedDate = df.format(${__RandomDate(,2021-10-20,2021-11-20,,)});
vars.put("myFutureDate",formattedDate);"
 

Но когда я форматирую дату и помещаю ее в переменную с именем myFutureDate, дата становится 01/01/1970. Не могли бы вы, пожалуйста, помочь мне с этим?

Ответ №1:

Не вставляйте функции или переменные JMeter в скрипты Groovy, потому что:

  1. Они конфликтуют с заводными струнами
  2. Они могут привести к чему-то, что вызовет сбой компиляции или неожиданное поведение во время выполнения
  3. Они компилируются и кэшируются, поэтому будет использоваться только первое вхождение, ваша ${myFutureDate} переменная будет одинаковой для всех итераций

Так

  1. Поместите свою функцию __RandomDate() в раздел «Параметры» тестового элемента JSR223
  2. Используйте следующий код для повторного форматирования случайной даты:
     vars.put('myFutureDate', Date.parse('yyyy-mm-dd', Parameters).format('dd/MM/yyyy'))
     

введите описание изображения здесь

Дополнительная информация:

Комментарии:

1. Большое спасибо, Дмитрий, ты только что спас меня!