2010-04-16 5 views
14

Salut J'utilise SoapUI pour tester les services Web. J'ai besoin de créer un enregistrement client avec adresse e-mail et mot de passe. Créer un service d'enregistrement client contient emailid et mot de passe, lorsque je clique sur le bouton Exécuter (demande de soumission) dans créer un enregistrement client dans SoapUI, je devrais ajouter le mailID avec l'heure actuelle de création et tout mot de passe.Comment créer une chaîne datetime dans soapui en utilisant groovy

Comment faire cela avec groovy?

Répondre

38

Il y a deux cas courants d'insertion valeur datetime dynamique soapUI utilisant :

  1. Insérer une valeur d'horodatage formatée. Utilisez SimpleDateFormat dans ce cas:

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

  2. horodatage Format comme valeur xsd: dateTime. Utilisez DatatypeFactory pour créer une instance de newXMLGregorianCalendar:

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

Je pense que le premier cas fonctionne pour vous. Insérez le code dans votre demande et réglez le format d'horodatage selon vos besoins. BTW, il fonctionne également dans les réponses pour les serveurs fictifs.

+1

Cela a fonctionné pour moi d'insérer un horodatage '$ {= new java.text.SimpleDateFormat ("yyyy-MM-jj'T'HH: mm: ss.SSSSSSSXXX"). Format (new Date())} ' –

7

Voici une solution rapide sans tirer dans des bocaux qui peuvent soulager la douleur de la manipulation Date comme Apache Commons, ou joda-time

Mode deux lignes pour comparer les dates (ex: avant/après des temps):

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

Ou un mode de doublure:

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

Si vous faites lourd toute manipulation de ce jour lourd je partirais avec une partie de l'API ci-dessus 's. Je ne pense pas hors de la boîte Groovy a encore avancé les comparaisons de date.

2

Les commentaires utilisent Groovy pur qui SoapUI n'utilise pas une partie de la syntaxe commune comme println - à la place, il prend log.info.

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