Как создать строку datetime в soapui с помощью groovy

Привет, я использую SoapUI для тестирования веб-сервисов. Мне нужно создать запись клиента с адресом электронной почты и паролем. Создание службы записи клиентов содержит адрес электронной почты и пароль, когда я нажимаю кнопку запуска (отправить запрос) в записи клиента в SoapUI, я должен получить адрес электронной почты, добавленный с текущим временем создания и любым паролем.

Как это сделать с помощью groovy?

Ответы

Ответ 1

Есть два распространенных случая вставки динамического значения dateTime в soapUI, используя groovy:

  • Вставить форматированное значение временной метки. В этом случае используйте SimpleDateFormat:

    ${=new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())}

  • Отметьте временную метку как xsd: значение dateTime. Используйте DatatypeFactory для создания экземпляра newXMLGregorianCalendar:

    ${=javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar.getInstance())}

Я думаю, что первый случай работает на вас. Вставьте код в свой запрос и настройте формат timestamp для ваших нужд. BTW, он также работает в ответах на макет серверов.

Ответ 2

Здесь быстрое решение, не втягивающее банки, которые могут облегчить боль манипуляции Date, например Apache Commons, или joda-time

Двухстрочный режим для сравнения дат (пример: до/после):

def startDate = new Date() 
println(startDate.format("yyyy-MM-dd'T'HH:mm:ss SSS"))

Или один режим лайнера:

println(new Date().format("yyyy-MM-dd'T'HH:mm:ss SSS"))

Если вы делаете тяжелую манипуляцию с тяжелыми датами, я бы пошел с некоторыми из вышеперечисленных API. Я не думаю, что из коробки Groovy еще есть расширенные сравнения дат.

Ответ 3

В комментариях используется чистый Groovy, который SoapUI не использует какой-либо общий синтаксис, например println - вместо этого он принимает log.info.

today = new Date().format("yyyy-MM-dd")
log.info today