2010-04-16 2 views
14

Ciao Sto usando SoapUI per testare i servizi web. Devo creare un record del cliente con indirizzo email e password. Creare un servizio record del cliente contiene email e password, quando faccio clic sul pulsante Esegui (invia richiesta) in Crea record cliente in SoapUI, dovrei ricevere l'e-mail con l'ora corrente di creazione e qualsiasi password.Come creare una stringa datetime in soapui utilizzando groovy

Come fare questo con groovy?

risposta

38

Ci sono due casi comuni di inserimento di valori dateTime dinamica soapUI utilizzando :

  1. Inserire valore di timestamp formattato. Utilizzare SimpleDateFormat in questo caso:

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

  2. Formato timestamp come xsd: dateTime valore. Utilizzare DatatypeFactory per creare un'istanza di newXMLGregorianCalendar:

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

Penso che il primo caso funziona per voi. Inserisci il codice nella richiesta e regola il formato della data/ora in base alle tue esigenze. A proposito, funziona anche nelle risposte per i server mock.

+1

questo ha lavorato per me per inserire un timestamp '$ {= new java.text.SimpleDateFormat ("AAAA-MM-dd'T'HH: mm: ss.SSSSSSSXXX"). Formato (new Date())} ' –

7

Ecco una soluzione rapida senza tirare in vasetti che possono alleviare il dolore di manipolazione Data come Apache Commons, o la modalità joda-time

due righe per confrontare date (es: prima/dopo volte):

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

Oppure uno di linea:

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

Se stai facendo pesante alcuna manipolazione data pesante mi piacerebbe andare con alcune delle API di cui sopra 'S. Non credo che finisca la scatola. Groovy ha ancora paragoni avanzati sulle date.

2

I commenti stanno utilizzando pura Groovy che SoapUI non usa alcune delle sintassi comune come println - invece ci vuole log.info.

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