如何使用groovy在soapui中创建日期时间字符串

时间:2010-04-16 04:40:48

标签: groovy soapui

您好我正在使用SoapUI来测试Web服务。我需要使用电子邮件地址和密码创建客户记录。创建客户记录服务包含emailid和密码,当我在SoapUI中创建客户记录时单击运行(提交请求)按钮时,我应该获得附加当前创建时间和任何密码的emailid。

如何用groovy做到这一点?

3 个答案:

答案 0 :(得分:38)

使用在soapUI中插入动态dateTime值有两种常见情况:

  1. 插入格式化的时间戳值。在这种情况下使用SimpleDateFormat:

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

  2. 将时间戳格式化为xsd:dateTime值。使用DatatypeFactory创建newXMLGregorianCalendar的实例:

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

  3. 我认为第一种情况适合你。在您的请求中插入代码并根据您的需要调整时间戳格式。顺便说一句,它也适用于模拟服务器的响应。

答案 1 :(得分:7)

这是一个快速的解决方案,无需拉入罐子,可以减轻日期操作的痛苦,如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已经进行了高级日期比较。

答案 2 :(得分:2)

评论使用纯Groovy SoapUI不使用println之类的常用语法 - 而是使用log.info

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