JMeter - 仅通过 CLI 在命名空间中找不到 JSONObject 错误

问题描述 投票:0回答:1

在 Macbook 上通过 CLI 运行脚本时,我使用 Java/Beanshell 2.0b6 遇到错误,而通过 GUI 运行时不会出现此错误;

2023-12-04 16:52:47,858 ERROR o.a.j.m.JSR223PreProcessor: Problem in JSR223 script, JSR223 PreProcessor - Create tokenPayload
javax.script.ScriptException: Sourced file: inline evaluation of: ``import org.apache.jmeter.protocol.http.control.CookieManager;   import org.apach . . . '' : Typed variable declaration : Class: JSONObject not found in namespace : at Line: 10 : in file: inline evaluation of: ``import org.apache.jmeter.protocol.http.control.CookieManager;   import org.apach . . . '' : JSONObject 
 in inline evaluation of: ``import org.apache.jmeter.protocol.http.control.CookieManager;   import org.apach . . . '' at line number 10
    at bsh.engine.BshScriptEngine.evalSource(BshScriptEngine.java:93) ~[bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
    at bsh.engine.BshScriptEngine.eval(BshScriptEngine.java:46) ~[bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:231) ~[java.scripting:?]
    at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:219) ~[ApacheJMeter_core.jar:5.4.2]
    at org.apache.jmeter.modifiers.JSR223PreProcessor.process(JSR223PreProcessor.java:45) [ApacheJMeter_components.jar:5.4.2]
    at org.apache.jmeter.threads.JMeterThread.runPreProcessors(JMeterThread.java:965) [ApacheJMeter_core.jar:5.4.2]
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:549) [ApacheJMeter_core.jar:5.4.2]
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489) [ApacheJMeter_core.jar:5.4.2]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256) [ApacheJMeter_core.jar:5.4.2]
    at java.lang.Thread.run(Thread.java:1589) [?:?]

org.json .jar 文件存在于 /lib 中,并且 JMETER_HOME 类路径似乎已正确设置为安装目录。谁能告诉我可能是什么问题以及为什么在运行时找不到 jar 吗?

(注意 - 我应该使用 JSR223 / Groovy,但 Java 版本 (19) 和 JMeter 版本 (5.4.2) 之间存在一些脱节,阻止我对相关代码执行此操作)

只是想了解为什么 GUI 和 CLI 之间存在脱节

jmeter command-line-interface
1个回答
0
投票
  1. 不应该出现“断开连接”,很可能您正在为“CLI”和“GUI”模式运行不同的 JMeter 版本,比较两者的 jmeter.log 文件,您应该看到 JMeter 二进制文件的完整路径,Classpath 等等
  2. 如果您想使用 Groovy,您可以 更新 JMeter 安装的“lib”文件夹中的 Groovy 库,或降级到 Java 17
  3. 建议始终使用最新版本的 JMeter,因此请考虑升级到 JMeter 5.6.2 或在 JMeter 下载 页面上提供的最新稳定版本。
© www.soinside.com 2019 - 2024. All rights reserved.