您好我正在使用 SoapUI 来测试 Web 服务。我需要使用电子邮件地址和密码创建客户记录。创建客户记录服务包含电子邮件 ID 和密码,当我在 SoapUI 中单击创建客户记录中的运行(提交请求)按钮时,我应该得到附加当前创建时间和任何密码的电子邮件 ID。
如何用 groovy 做到这一点?
使用groovy在 soapUI 中插入动态 dateTime 值有两种常见情况:
插入格式化的时间戳值。在这种情况下使用 SimpleDateFormat:
${=new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())}
将时间戳格式化为 xsd:dateTime 值。使用 DatatypeFactory 创建 newXMLGregorianCalendar 的实例:
${=javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar.getInstance())}
我认为第一个案例适合你。在您的请求中插入代码并根据需要调整时间戳格式。顺便说一句,它也适用于模拟服务器的响应。
这是一个无需拉入罐子的快速解决方案,可以减轻像 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 还没有开箱即用的高级日期比较功能。
注释使用的是 pure Groovy
,它SoapUI
不使用一些常见的语法,比如println
- 而是使用log.info
.
today = new Date().format("yyyy-MM-dd")
log.info today