慕田峪4524236
2023-06-08 17:15:29
我想在 JMeter 之外單獨(dú)有一個(gè)腳本文件,它有一些 JS 功能,比如${__RandomString(10,195165984,)}.當(dāng)我以 .groovy 格式保存文件然后在腳本文件 (FileName) 中調(diào)用它時(shí),出現(xiàn)如下錯(cuò)誤: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]當(dāng)我在 JMeter 腳本中編寫這些函數(shù)時(shí),這很好用。有什么我想念的嗎?或者我們不能在外面調(diào)用這些函數(shù)?
2 回答

茅侃侃
TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊
不要在 Groovy 腳本中內(nèi)聯(lián)JMeter 函數(shù)或變量Parameters
,或者使用如下部分:
test.groovy
使用以下內(nèi)容在 JMeter 安裝的“bin”文件夾中創(chuàng)建文件:log.info("Random?number:?"?+?Parameters)
將函數(shù)傳遞到“參數(shù)”部分:
或者,您可以直接在 groovy 文件中調(diào)用RandomUtils.nextInt()函數(shù),例如:
log.info("Random?number:?"?+?org.apache.commons.lang3.RandomUtils.nextInt(10,?195165984))

湖上湖
TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
當(dāng)您在 jmeter 中調(diào)用它時(shí),該函數(shù)將被解釋并替換為該值。
它不是在常規(guī)外部文件中。
但在這兩種情況下都不要這樣做,使用參數(shù)字段調(diào)用它,然后直接使用參數(shù)值。
添加回答
舉報(bào)
0/150
提交
取消