2010-04-16 6 views
14

erstellen Hallo ich verwende SoapUI zum Testen von Web-Services. Ich muss einen Kundendatensatz mit E-Mail-Adresse und Passwort erstellen. Create Customer Record Service enthält E-Mail-ID und Passwort, wenn ich auf die Schaltfläche "Ausführen (Anfrage senden)" klicken, um Kundendatensatz in SoapUI zu erstellen, sollte ich die E-Mail-Adresse mit der aktuellen Erstellungszeit und einem beliebigen Passwort versehen.Wie man Datetime String in Soapui mit groovy

Wie geht das mit groovy?

Antwort

38

Es gibt zwei gängige Fälle des Einsetzens dynamischen Datums- und Uhrzeitwert in soapUI mit :

  1. einfügen formatiert Zeitmarkenwert. Verwenden Sie Simple in diesem Fall:

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

  2. Format Zeitstempel als xsd: datetime-Wert. Verwenden Sie DatatypeFactory Instanz newXMLGregorianCalendar zu erstellen:

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

Ich denke, dass der erste Fall für Sie arbeitet. Fügen Sie den Code in Ihre Anfrage ein und passen Sie das Timestamp-Format an Ihre Bedürfnisse an. Übrigens funktioniert es auch in Antworten für Mock-Server.

+1

Dieser arbeitete für mich einen Zeitstempel '$ einfügen {= new java.text.SimpleDateFormat ("yyyy-MM-dd'T'HH: mm: ss.SSSSSSSXXX"). Format (new Date())} ' –

7

Hier ist eine schnelle Lösung ohne in Glas zu ziehen, die den Schmerz von Datum Manipulation wie Apache Commons oder joda-time

Zwei Zeilenmodus vergleichen Daten können erleichtern (zB: Vorher/Nachher-mal):

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

Oder einzeiler Modus:

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

Wenn Sie schwere keine schweren Datum Manipulation zu tun ich mit einigen der oben genannten API gehen würde ist es. Ich denke Out of Box hat Groovy noch keine erweiterten Datumsvergleiche.

2

Die Kommentare werden unter Verwendung von reinem Groovy die SoapUI nicht einige der gemeinsamen Syntax wie println nicht verwendet - statt es log.info nimmt.

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