2017-04-16 62 views
1

我试图将soapui属性值(例如:2017/04/17 02:00:00)转换为毫秒。我必须将明天自定义的日期时间以毫秒的格式存储到soapui属性中。截至目前,我能够将自定义时间的日期存储到属性中。现在需要将其转换为毫秒。使用groovy将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 

错误:

不能空对象

请帮助的调用方法getTime()

+1

的【什么是一个NullPointerException,如何解决呢?(可能的复制http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do- i-fix-it) –

回答

1

如果你想明天的以毫秒时间:

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的评论说,不正确毫秒哪个是假的,从下面的代码 - try语句context...后加入以下两看。

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

'def DateMilli = Date.parse(明天+'02:00:00') def setTomorrow = testCase.testSuite.project.setPropertyValue(“Date”,DateMilli); **错误:No方法的签名:com.eviware.soapui.impl.wsdl.WsdlProject.setPropertyValue()适用于参数类型:(java.lang.String,java.lang.Long)values:[Date,1492461000000]可能的解决方案:setPropertyValue java.lang.String,java.lang.String),getPropertyValue(java.lang.String)** – rAJ

+0

为什么不尝试提供的解决方案,因为它是在修改之前 – Rao

+0

请在下面满足我的要求。我希望时间应该是硬代码,日期应该是明天。在第一种方法中没有自定义时间,在第二种方法中有硬性代码日期。 – rAJ