0

我是 Jmeter 的新手。我试图从一个 groovy 脚本中获取格林威治标准时间上午 12:00 的时间戳,并将其转换为 Epoc 计时器

代码片段

use(groovy.time.TimeCategory) {
    daytime = new Date()
    daytime.set(hourOfDay: 0, minute: 0, second: 0)
    time=daytime.getTime()
    log.info(time)

}

当我在 groovy Editor 上在线运行此代码时,我得到了我期望的响应来自上述脚本的响应:1554249600472

当我在 Jmeter 中使用 JSR223 采样器运行相同的脚本时,得到以下错误响应

2019-04-03 10:54:06,597 错误 oajmJSR223PreProcessor:JSR223 脚本中的问题,JSR223 PreProcessor javax.script.ScriptException:groovy.lang.MissingMethodException:没有方法签名:org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.use()适用于参数类型:(java.lang.Class, Script20$_run_closure1) 值:[class groovy.time.TimeCategory, Script20$_run_closure1@6aaee2b9] 可能的解决方案:使用(java.lang.Class, groovy.lang.Closure) ,使用(java.util.List,groovy.lang.Closure),使用([Ljava.lang.Object;),grep(),any(),dump()在org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval (GroovyScriptEngineImpl.java:324)~[groovy-all-2.4.15.jar:2.4.15] at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:72)~[groovy-all-2.4。 15.jar:2.4.15] 在 javax.script.CompiledScript。评估(未知来源)~[?:1.8.0_201] at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:221)~[ApacheJMeter_core.jar:5.0 r1840935] at org.apache.jmeter.modifiers。 JSR223PreProcessor.process(JSR223PreProcessor.java:44) [ApacheJMeter_components.jar:5.0 r1840935] 在 org.apache.jmeter.threads.JMeterThread.runPreProcessors(JMeterThread.java:935) [ApacheJMeter_core.jar:5.0 r1840935] 在 org.apache。 jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:537) [ApacheJMeter_core.jar:5.0 r1840935] 在 org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486) [ApacheJMeter_core.jar:5.0 r1840935] 在org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:253) [ApacheJMeter_core.jar:5.0 r1840935] at java.lang.Thread.run(Unknown Source) [?:1.8.0_201] 由:groovy。lang.MissingMethodException:没有方法签名:org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.use() 适用于参数类型:(java.lang.Class, Script20$_run_closure1) 值:[class groovy.time.TimeCategory, Script20 $_run_closure1@6aaee2b9] 可能的解决方案:use(java.lang.Class, groovy.lang.Closure), use(java.util.List, groovy.lang.Closure), use([Ljava.lang.Object;), grep (), any(), dump() 在 org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.callGlobal(GroovyScriptEngineImpl.java:403) ~[groovy-all-2.4.15.jar:2.4.15] 在 org.codehaus。 groovy.jsr223.GroovyScriptEngineImpl.access$100(GroovyScriptEngineImpl.java:94) ~[groovy-all-2.4.15.jar:2.4.15] at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl$3.invokeMethod(GroovyScriptEngineImpl.java:307 ) ~[groovy-all-2.4.15.jar:2.4.15] 在 org.codehaus.groovy.runtime.callsite。PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68) ~[groovy-all-2.4.15.jar:2.4.15] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51) ~[groovy -all-2.4.15.jar:2.4.15] 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157) ~[groovy-all-2.4.15.jar:2.4.15]在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:177) ~[groovy-all-2.4.15.jar:2.4.15] 在 Script20.run(Script20.groovy:1) ~[ ?:?] 在 org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:321) ~[groovy-all-2.4.15.jar:2.4.15]4.15.jar:2.4.15] 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157) ~[groovy-all-2.4.15.jar:2.4.15] 在 org.codehaus。 groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:177) ~[groovy-all-2.4.15.jar:2.4.15] at Script20.run(Script20.groovy:1) ~[?:?] at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:321) ~[groovy-all-2.4.15.jar:2.4.15]4.15.jar:2.4.15] 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157) ~[groovy-all-2.4.15.jar:2.4.15] 在 org.codehaus。 groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:177) ~[groovy-all-2.4.15.jar:2.4.15] at Script20.run(Script20.groovy:1) ~[?:?] at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:321) ~[groovy-all-2.4.15.jar:2.4.15]评估(GroovyScriptEngineImpl.java:321)~[groovy-all-2.4.15.jar:2.4.15]评估(GroovyScriptEngineImpl.java:321)~[groovy-all-2.4.15.jar:2.4.15]

... 9 更多

4

2 回答 2

0

我不知道为什么use不适合你(可能是 groovy 版本或其他)

但是您不需要它来清除时间:

def daytime = new Date()
daytime.clearTime()                     //clear the time
log.info( daytime.getTime() as String ) //print time as milliseconds
于 2019-04-04T06:21:15.337 回答
0

谢谢你,人们,你的友好和快速的反应,输出的类型转换工作。下面是给我成功响应的代码片段

use(groovy.time.TimeCategory) {
   def  daytime = new Date()
    daytime.set(hourOfDay: 0, minute: 0, second: 0)
    starttime=daytime+5.hour+30.minute
    time=starttime.getTime()
    log.info(time as String) 
   }
于 2019-04-05T05:10:19.537 回答