使用 groovy 将 soapui 属性 值转换为毫秒

Convert soapui property value into miliseconds using groovy

我正在尝试将 soapui 属性 值(例如:2017/04/17 02:00:00)转换为毫秒。我必须将明天的自定义日期时间(以毫秒为单位)存储到 soapui 属性 中。截至目前,我可以将带有自定义时间的日期存储到 属性 中。现在需要将其转换为毫秒。

def date = new Date(); 
def nextDate = date + 1
tomorrow = nextDate.format("yyyy/MM/dd");
log.info tomorrow
def setTomorrow = testCase.testSuite.project.setPropertyValue("Date", tomorrow + ' 02:00:00' );

long millisecond = setTomorrow.getTime();
log.info millisecond

错误:

Cannot invoke method getTime() on null object

请帮忙。

如果你想要以毫秒为单位的明天时间:

def date = new Date() + 1
log.info "Tomorrow's time in millis : ${date.time}"
//Set it into project property
context.testCase.testSuite.project.setPropertyValue('DATE_TIME', date.time.toString())

希望您知道如何使用 属性 扩展访问上述 DATE_TIME 项目 属性,即 ${#Project#DATE_TIME}

如果您希望特定的日期字符串为毫秒,请使用以下内容:

def date2 = Date.parse('2017/04/17 02:00:00')
log.info date2

编辑:根据 OP 的评论,更新了下面的脚本 -

//Tomorrow date
def d = (new Date() +1).format('yyyy/MM/dd')
use(groovy.time.TimeCategory) {
    //Add fixed hours i.e., 2
    def tomorrow2hours = new Date(d) + 2.hours
    log.info "Tomorrow @ 2 hrs : ${tomorrow2hours}"
    log.info "In millis : ${tomorrow2hours.time}"
    context.testCase.testSuite.project.setPropertyValue('DATE_TIME', tomorrow2hours.time.toString())
}

EDIT2:根据 OP 的评论,错误的毫秒数在下面的代码中是错误的 - 尝试在语句 context... 之后添加下面两个并查看。

def dd = new Date(tomorrow2hours.time)
log.info dd.format('yyyy-MM-dd HH:mm:ss')