Javascript ${uuuu RandomString(10195165984,)}放在Jmeter外部的脚本文件中,然后调用它时,它不工作

Javascript ${uuuu RandomString(10195165984,)}放在Jmeter外部的脚本文件中,然后调用它时,它不工作,javascript,java,groovy,jmeter,Javascript,Java,Groovy,Jmeter,我想要一个单独的脚本文件,在JMeter之外,它有一些JS函数,比如${{uuu RandomString(10195165984,)} 当我以.groovy格式保存文件,然后在脚本文件(文件名)中调用它时,我得到一个错误,如下所示: javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.jsr223.GroovyScriptEng

我想要一个单独的脚本文件,在JMeter之外,它有一些JS函数,比如
${{uuu RandomString(10195165984,)}

当我以.groovy格式保存文件,然后在脚本文件(文件名)中调用它时,我得到一个错误,如下所示:

javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.$() is applicable for argument types: (Script7$_run_closure1) values: [Script7$_run_closure1@1aa89172]
Possible solutions: is(java.lang.Object), any(), get(java.lang.String), any(groovy.lang.Closure), use([Ljava.lang.Object;), wait()
    at 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]
    at javax.script.CompiledScript.eval(CompiledScript.java:92) ~[?:1.8.0_201]
    at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:194) ~[ApacheJMeter_core.jar:5.0 r1840935]
    at org.apache.jmeter.assertions.JSR223Assertion.getResult(JSR223Assertion.java:49) [ApacheJMeter_components.jar:5.0 r1840935]
    at org.apache.jmeter.threads.JMeterThread.processAssertion(JMeterThread.java:901) [ApacheJMeter_core.jar:5.0 r1840935]
    at org.apache.jmeter.threads.JMeterThread.checkAssertions(JMeterThread.java:892) [ApacheJMeter_core.jar:5.0 r1840935]
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:565) [ApacheJMeter_core.jar:5.0 r1840935]
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486) [ApacheJMeter_core.jar:5.0 r1840935]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:253) [ApacheJMeter_core.jar:5.0 r1840935]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
Caused by: groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.$() is applicable for argument types: (Script7$_run_closure1) values: [Script7$_run_closure1@1aa89172]
Possible solutions: is(java.lang.Object), any(), get(java.lang.String), any(groovy.lang.Closure), use([Ljava.lang.Object;), wait()
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.callGlobal(GroovyScriptEngineImpl.java:403) ~[groovy-all-2.4.15.jar:2.4.15]
    at 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]
    at 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]
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157) ~[groovy-all-2.4.15.jar:2.4.15]
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:169) ~[groovy-all-2.4.15.jar:2.4.15]
    at Script7.run(Script7.groovy:2) ~[?:?]
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:321) ~[groovy-all-2.4.15.jar:2.4.15]
    ... 10 more

当我在JMeter脚本中编写这些函数时,它工作得很好。我有什么遗漏吗?或者我们不能在外部调用这些函数?

当您在jmeter内部调用它时,函数将被解释并替换为值

它不是在groovy外部文件中


但在这两种情况下都不要这样做,使用Parameters字段调用它,然后直接使用Parameters值。

在jmeter内部调用它时,函数将被解释并替换为值

它不是在groovy外部文件中

但在这两种情况下都不要这样做,使用Parameters字段调用它,然后直接使用Parameters value。

不要在Groovy脚本中内联,或者使用
Parameters
部分,如:

  • 使用以下内容在JMeter安装的“bin”文件夹中创建
    test.groovy
    文件:

    log.info("Random number: " + Parameters)
    
  • 将函数传递到“参数”部分:


  • 或者,您可以直接在groovy文件中调用函数,如:

    log.info("Random number: " + org.apache.commons.lang3.RandomUtils.nextInt(10, 195165984))
    
    更多信息:

    不要在Groovy脚本中内联,或者使用
    参数
    部分,如:

  • 使用以下内容在JMeter安装的“bin”文件夹中创建
    test.groovy
    文件:

    log.info("Random number: " + Parameters)
    
  • 将函数传递到“参数”部分:


  • 或者,您可以直接在groovy文件中调用函数,如:

    log.info("Random number: " + org.apache.commons.lang3.RandomUtils.nextInt(10, 195165984))
    

    更多信息:

    所以这是不可能的。按照你解释的方式,你能举个例子吗?所以这是不可能的。按照你解释的方式,你能举个例子吗?