Установить значение свойства SoapUI на сегодня + 1 год - PullRequest
0 голосов
/ 10 октября 2018

Цель : назначить свойство SoapUI со значением сегодня + 1 год в формате yyyy-MM-dd (например, сегодня 2018-10-10, поэтому я хотел бы, чтобы свойство имело2019-10-10).

Что я пробовал:


Попытка # 1 (встроенное свойство):

Не работает, потому что JDK 8 не является частью пакета Soap UI по умолчанию:

${=LocalDate.now().plusYears(1).format(DateTimeFormatter.ISO_DATE)}

Попытка № 2 (скрипт groovy):

Возвращает ошибку, поскольку Date.format не принимает String и java.util.Date:

def today = Calendar.getInstance();
today.set(Calendar.HOUR_OF_DAY, 0);
today.set(Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);
today.set(Calendar.MILLISECOND, 0);
today.add(Calendar.YEAR, 1);
def nextYear = today.getTime();
def nextYear_formatted = Date.format("yyyy-MM-dd", nextYear);
testRunner.testCase.setPropertyValue( "nextYear", nextYear_formatted )

Ошибка:

groovy.lang.MissingMethodException: Нетподпись метода: static java.util.Date.format () применима для типов аргументов: (java.lang.String, java.util.Date) значения: [гггг-мм-дд, чт 10 октября 00:00:00EDT 2019] Возможные решения: формат (java.lang.String, java.util.TimeZone), формат (java.lang.String), ошибка с (java.time.Instant) в строке: 8


Попытка № 3 (Groovy скрипт):

Возвращает ошибкупотому что SimpleDateFormat не компилируется:

def today = Calendar.getInstance();
today.set(Calendar.HOUR_OF_DAY, 0);
today.set(Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);
today.set(Calendar.MILLISECOND, 0);
today.add(Calendar.YEAR, 1);
def nextYear = today.getTime();
def nextYear_formatted = new SimpleDateFormat("yyyy-MM-dd").format(nextYear);
testRunner.testCase.setPropertyValue( "nextYear", nextYear_formatted )

org.codehaus.groovy.control.MultipleCompilationErrorsException: сбой запуска: Script20.groovy: 8: невозможно разрешить класс SimpleDateFormat @ строка 8, столбец 27. def nextYear_formatted = new SimpleDateFormat ("гггг-ММ-дд"). формат (следующий год);^ org.codehaus.groovy.syntax.SyntaxException: невозможно разрешить класс SimpleDateFormat @ строка 8, столбец 27. at org.codehaus.groovy.ast.ClassCodeVisitorSupport.addError (ClassCodeVisitorSupport.java:149) в ...

(трассировка стека опущена для краткости)


Как добавить свойство, имеющее значение сегодня + 1 год в SoapUI?

Бонусный вопрос:как добавить JDK 8, чтобы использовать его в скриптах groovy?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

У вас есть в наличии Groovy?

def nextYear = use( groovy.time.TimeCategory ) { new Date() + 1.year }.format( 'yyyy-MM-dd' )
0 голосов
/ 10 октября 2018

Дальнейшие исследования дали ответ: SimpleDateFormat нужно java.text. перед ним.Так что

def today = Calendar.getInstance();
today.set(Calendar.HOUR_OF_DAY, 0);
today.set(Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);
today.set(Calendar.MILLISECOND, 0);
today.add(Calendar.YEAR, 1);
def nextYear = today.getTime();
def nextYear_formatted = new java.text.SimpleDateFormat("yyyy-MM-dd").format(nextYear);
testRunner.testCase.setPropertyValue( "nextYear", nextYear_formatted )

работает.

...