Как создать строку 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