猿问

${__RandomString(10,195165984,)} 放在 Jmeter 外部的脚本文

我想在 JMeter 之外单独有一个脚本文件,它有一些 JS 功能,比如${__RandomString(10,195165984,)}.


当我以 .groovy 格式保存文件然后在脚本文件 (FileName) 中调用它时,出现如下错误:


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]


当我在 JMeter 脚本中编写这些函数时,这很好用。有什么我想念的吗?或者我们不能在外面调用这些函数?


慕田峪4524236
浏览 173回答 2
2回答

茅侃侃

不要在 Groovy 脚本中内联JMeter 函数或变量Parameters,或者使用如下部分:test.groovy使用以下内容在 JMeter 安装的“bin”文件夹中创建文件:log.info("Random number: " + Parameters)将函数传递到“参数”部分:或者,您可以直接在 groovy 文件中调用RandomUtils.nextInt()函数,例如:log.info("Random number: " + org.apache.commons.lang3.RandomUtils.nextInt(10, 195165984))

湖上湖

当您在 jmeter 中调用它时,该函数将被解释并替换为该值。它不是在常规外部文件中。但在这两种情况下都不要这样做,使用参数字段调用它,然后直接使用参数值。
随时随地看视频慕课网APP

相关分类

Java
我要回答