将SoapUI属性值设置为今天+ 1年

时间:2018-10-10 18:57:34

标签: java groovy soapui

目标:以yyyy-MM-dd格式(例如,今天是2018年10月10日)分配一个值为今天+ 1年的SoapUI属性(例如,今天是2018年10月10日,物业有2019-10-10)。

我尝试过的事情:


尝试#1(在线属性):

不起作用,因为JDK 8似乎不是默认的Soap UI软件包的一部分:

${=LocalDate.now().plusYears(1).format(DateTimeFormatter.ISO_DATE)}

尝试#2(常规脚本):

返回错误,因为Date.format不使用Stringjava.util.Date

def today = Calendar.getInstance();
today.set(Calendar.HOUR_OF_DAY, 0);
today.set(Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);
today.set(Calendar.MILLISECOND, 0);
today.add(Calendar.YEAR, 1);
def nextYear = today.getTime();
def nextYear_formatted = Date.format("yyyy-MM-dd", nextYear);
testRunner.testCase.setPropertyValue( "nextYear", nextYear_formatted )

错误:

  

groovy.lang.MissingMethodException:方法的无签名:static java.util.Date.format()适用于参数类型:(java.lang.String,java.util.Date)值:[yyyy-MM- dd,星期四10月10日00:00:00 EDT 2019]可能的解决方案:format(java.lang.String,java.util.TimeZone),format(java.lang.String),from(java.time.Instant)错误行:8


尝试#3(常规脚本):

返回错误,因为SimpleDateFormat似乎没有编译:

def today = Calendar.getInstance();
today.set(Calendar.HOUR_OF_DAY, 0);
today.set(Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);
today.set(Calendar.MILLISECOND, 0);
today.add(Calendar.YEAR, 1);
def nextYear = today.getTime();
def nextYear_formatted = new SimpleDateFormat("yyyy-MM-dd").format(nextYear);
testRunner.testCase.setPropertyValue( "nextYear", nextYear_formatted )
  

org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:Script20.groovy:8:无法解析类SimpleDateFormat @第8行,第27列。def nextYear_formatted = new SimpleDateFormat(“ yyyy-MM-dd”)。format (明年); ^ org.codehaus.groovy.syntax.SyntaxException:无法解析类SimpleDateFormat @第8行,第27列。位于org.codehaus.groovy.ast.ClassCodeVisitorSupport.addError(ClassCodeVisitorSupport.java:149)在...

(为简便起见,省略了堆栈跟踪的其余部分)


如何在SoapUI中添加具有今天+ 1年价值的属性?

奖金问题:如何添加JDK 8,以便可以在groovy脚本中使用它?

2 个答案:

答案 0 :(得分:2)

您有可用的常规功能吗?

def nextYear = use( groovy.time.TimeCategory ) { new Date() + 1.year }.format( 'yyyy-MM-dd' )

答案 1 :(得分:1)

进一步的研究得出了答案:-之前需要SimpleDateFormat。所以

java.text.

有效。