如何使用Groovy在SoapUI中创建日期时间字符串

15

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

如何使用Groovy实现这一点?

3个回答

41

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

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


1
这个对我很有用,可以插入一个时间戳${=new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSXXX").format(new Date())} - Siya Sosibo
如何在SOAP字符串中转义" - inetphantom
这个可以运行,但是如何在上面的脚本中设置下一个日期? - Suyash Nande

7

以下是一种快速解决方案,不需要引入可能会使日期操作变得容易的jar包,例如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默认情况下还没有高级的日期比较功能。

3

这些注释使用了纯 Groovy 语言编写,而 SoapUI 并没有使用一些常见的语法,如 println,而是采用了 log.info

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接