14

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

如何用 groovy 做到这一点?

4

3 回答 3

39

在 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())}

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

于 2011-04-01T20:31:49.007 回答
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 还没有开箱即用的高级日期比较功能。

于 2011-12-29T19:34:53.187 回答
2

注释使用的是 pure Groovy,它SoapUI不使用一些常见的语法,比如println- 而是使用log.info.

today = new Date().format("yyyy-MM-dd")
log.info today
于 2015-05-04T16:14:31.833 回答